annotate scripts/ode/private/odepkg_structure_check.m @ 20830:b65888ec820e draft default tip gccjit

dmalcom gcc jit import
author Stefan Mahr <dac922@gmx.de>
date Fri, 27 Feb 2015 16:59:36 +0100
parents b7ac1e94266e
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
20761
b7ac1e94266e maint: Further clean up of functions in ode/private dir.
Rik <rik@octave.org>
parents: 20759
diff changeset
1 ## Copyright (C) 2013, Roberto Porcu' <roberto.porcu@polimi.it>
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
2 ## Copyright (C) 2006-2012, Thomas Treichl <treichl@users.sourceforge.net>
20761
b7ac1e94266e maint: Further clean up of functions in ode/private dir.
Rik <rik@octave.org>
parents: 20759
diff changeset
3 ##
b7ac1e94266e maint: Further clean up of functions in ode/private dir.
Rik <rik@octave.org>
parents: 20759
diff changeset
4 ## This file is part of Octave.
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
5 ##
20761
b7ac1e94266e maint: Further clean up of functions in ode/private dir.
Rik <rik@octave.org>
parents: 20759
diff changeset
6 ## Octave is free software; you can redistribute it and/or modify it
b7ac1e94266e maint: Further clean up of functions in ode/private dir.
Rik <rik@octave.org>
parents: 20759
diff changeset
7 ## under the terms of the GNU General Public License as published by
b7ac1e94266e maint: Further clean up of functions in ode/private dir.
Rik <rik@octave.org>
parents: 20759
diff changeset
8 ## the Free Software Foundation; either version 3 of the License, or (at
b7ac1e94266e maint: Further clean up of functions in ode/private dir.
Rik <rik@octave.org>
parents: 20759
diff changeset
9 ## your option) any later version.
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
10 ##
20761
b7ac1e94266e maint: Further clean up of functions in ode/private dir.
Rik <rik@octave.org>
parents: 20759
diff changeset
11 ## Octave is distributed in the hope that it will be useful, but
b7ac1e94266e maint: Further clean up of functions in ode/private dir.
Rik <rik@octave.org>
parents: 20759
diff changeset
12 ## WITHOUT ANY WARRANTY; without even the implied warranty of
b7ac1e94266e maint: Further clean up of functions in ode/private dir.
Rik <rik@octave.org>
parents: 20759
diff changeset
13 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
b7ac1e94266e maint: Further clean up of functions in ode/private dir.
Rik <rik@octave.org>
parents: 20759
diff changeset
14 ## General Public License for more details.
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
15 ##
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
16 ## You should have received a copy of the GNU General Public License
20761
b7ac1e94266e maint: Further clean up of functions in ode/private dir.
Rik <rik@octave.org>
parents: 20759
diff changeset
17 ## along with Octave; see the file COPYING. If not, see
b7ac1e94266e maint: Further clean up of functions in ode/private dir.
Rik <rik@octave.org>
parents: 20759
diff changeset
18 ## <http://www.gnu.org/licenses/>.
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
19
20755
25623ef2ff4f doc: Rewrite docstrings for ode* family of functions.
Rik <rik@octave.org>
parents: 20743
diff changeset
20 ## -*- texinfo -*-
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
21 ## @deftypefn {Function File} {@var{newstruct} =} odepkg_structure_check (@var{oldstruct})
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
22 ## @deftypefnx {Function File} {@var{newstruct} =} odepkg_structure_check (@var{oldstruct}, @var{"solver"})
20755
25623ef2ff4f doc: Rewrite docstrings for ode* family of functions.
Rik <rik@octave.org>
parents: 20743
diff changeset
23 ##
25623ef2ff4f doc: Rewrite docstrings for ode* family of functions.
Rik <rik@octave.org>
parents: 20743
diff changeset
24 ## If this function is called with one input argument of type structure array
25623ef2ff4f doc: Rewrite docstrings for ode* family of functions.
Rik <rik@octave.org>
parents: 20743
diff changeset
25 ## then check the field names and the field values of the OdePkg structure
25623ef2ff4f doc: Rewrite docstrings for ode* family of functions.
Rik <rik@octave.org>
parents: 20743
diff changeset
26 ## @var{oldstruct} and return the structure as @var{newstruct} if no error is
25623ef2ff4f doc: Rewrite docstrings for ode* family of functions.
Rik <rik@octave.org>
parents: 20743
diff changeset
27 ## found.
25623ef2ff4f doc: Rewrite docstrings for ode* family of functions.
Rik <rik@octave.org>
parents: 20743
diff changeset
28 ##
25623ef2ff4f doc: Rewrite docstrings for ode* family of functions.
Rik <rik@octave.org>
parents: 20743
diff changeset
29 ## Optionally if this function is called with a second input argument
25623ef2ff4f doc: Rewrite docstrings for ode* family of functions.
Rik <rik@octave.org>
parents: 20743
diff changeset
30 ## @var{"solver"} of type string taht specifies the name of a valid OdePkg
25623ef2ff4f doc: Rewrite docstrings for ode* family of functions.
Rik <rik@octave.org>
parents: 20743
diff changeset
31 ## solver then a higher level error detection is performed. The function
25623ef2ff4f doc: Rewrite docstrings for ode* family of functions.
Rik <rik@octave.org>
parents: 20743
diff changeset
32 ## does not modify any of the field names or field values but terminates with
25623ef2ff4f doc: Rewrite docstrings for ode* family of functions.
Rik <rik@octave.org>
parents: 20743
diff changeset
33 ## an error if an invalid option or value is found.
25623ef2ff4f doc: Rewrite docstrings for ode* family of functions.
Rik <rik@octave.org>
parents: 20743
diff changeset
34 ##
25623ef2ff4f doc: Rewrite docstrings for ode* family of functions.
Rik <rik@octave.org>
parents: 20743
diff changeset
35 ## This function is an OdePkg internal helper function therefore it should
25623ef2ff4f doc: Rewrite docstrings for ode* family of functions.
Rik <rik@octave.org>
parents: 20743
diff changeset
36 ## never be necessary that this function is called directly by a user. There
25623ef2ff4f doc: Rewrite docstrings for ode* family of functions.
Rik <rik@octave.org>
parents: 20743
diff changeset
37 ## is only little error detection implemented in this function file to
25623ef2ff4f doc: Rewrite docstrings for ode* family of functions.
Rik <rik@octave.org>
parents: 20743
diff changeset
38 ## achieve the highest performance.
25623ef2ff4f doc: Rewrite docstrings for ode* family of functions.
Rik <rik@octave.org>
parents: 20743
diff changeset
39 ##
25623ef2ff4f doc: Rewrite docstrings for ode* family of functions.
Rik <rik@octave.org>
parents: 20743
diff changeset
40 ## Run examples with the command
25623ef2ff4f doc: Rewrite docstrings for ode* family of functions.
Rik <rik@octave.org>
parents: 20743
diff changeset
41 ##
25623ef2ff4f doc: Rewrite docstrings for ode* family of functions.
Rik <rik@octave.org>
parents: 20743
diff changeset
42 ## @example
25623ef2ff4f doc: Rewrite docstrings for ode* family of functions.
Rik <rik@octave.org>
parents: 20743
diff changeset
43 ## demo odepkg_structure_check
25623ef2ff4f doc: Rewrite docstrings for ode* family of functions.
Rik <rik@octave.org>
parents: 20743
diff changeset
44 ## @end example
25623ef2ff4f doc: Rewrite docstrings for ode* family of functions.
Rik <rik@octave.org>
parents: 20743
diff changeset
45 ## @end deftypefn
25623ef2ff4f doc: Rewrite docstrings for ode* family of functions.
Rik <rik@octave.org>
parents: 20743
diff changeset
46 ##
25623ef2ff4f doc: Rewrite docstrings for ode* family of functions.
Rik <rik@octave.org>
parents: 20743
diff changeset
47 ## @seealso{odepkg}
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
48
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
49 function vret = odepkg_structure_check (varargin)
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
50
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
51 ## Check the number of input arguments
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
52 if (nargin == 0)
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
53 help ("odepkg_structure_check");
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
54 error ("OdePkg:InvalidArgument",
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
55 "Number of input arguments must be greater than zero");
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
56 elseif (nargin > 2)
20761
b7ac1e94266e maint: Further clean up of functions in ode/private dir.
Rik <rik@octave.org>
parents: 20759
diff changeset
57 print_usage ();
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
58 elseif (nargin == 1 && isstruct (varargin{1}))
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
59 vret = varargin{1};
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
60 vsol = "";
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
61 vfld = fieldnames (vret);
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
62 vlen = length (vfld);
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
63 elseif (nargin == 2 && isstruct (varargin{1}) && ischar (varargin{2}))
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
64 vret = varargin{1};
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
65 vsol = varargin{2};
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
66 vfld = fieldnames (vret);
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
67 vlen = length (vfld);
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
68 endif
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
69
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
70 for vcntarg = 1:vlen # Run through the number of given structure field names
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
71
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
72 switch (vfld{vcntarg})
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
73
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
74 case "RelTol"
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
75 if (isempty (vret.(vfld{vcntarg})) || ...
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
76 (isnumeric (vret.(vfld{vcntarg})) && ...
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
77 isreal (vret.(vfld{vcntarg})) && ...
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
78 all (vret.(vfld{vcntarg}) > 0))) # "all" is a MatLab need
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
79 else
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
80 error ("OdePkg:InvalidParameter",
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
81 'Unknown parameter name "%s" or no valid parameter value',
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
82 vfld{vcntarg});
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
83 endif
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
84
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
85 if (any (strcmp (vsol, {"ode23", "ode45", "ode54", "ode78",
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
86 "ode23d", "ode45d", "ode54d", "ode78d"})))
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
87 if (! isscalar (vret.(vfld{vcntarg}))
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
88 && ! isempty (vret.(vfld{vcntarg})))
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
89 error ("OdePkg:InvalidParameter",
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
90 'Value of option "RelTol" must be a scalar');
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
91 endif
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
92 endif
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
93
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
94 case "AbsTol"
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
95 if (isempty (vret.(vfld{vcntarg})) || ...
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
96 (isnumeric (vret.(vfld{vcntarg})) && ...
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
97 isreal (vret.(vfld{vcntarg})) && ...
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
98 all (vret.(vfld{vcntarg}) > 0)))
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
99 else
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
100 error ("OdePkg:InvalidParameter",
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
101 'Unknown parameter name "%s" or no valid parameter value',
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
102 vfld{vcntarg});
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
103 endif
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
104
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
105 case "NormControl"
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
106 if (isempty (vret.(vfld{vcntarg})) || ...
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
107 (strcmp (vret.(vfld{vcntarg}), "on") || ...
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
108 strcmp (vret.(vfld{vcntarg}), "off")))
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
109 else
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
110 error ("OdePkg:InvalidParameter",
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
111 'Unknown parameter name "%s" or no valid parameter value',
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
112 vfld{vcntarg});
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
113 endif
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
114
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
115 case "NonNegative"
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
116 if (isempty (vret.(vfld{vcntarg})) || ...
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
117 (isnumeric (vret.(vfld{vcntarg}))
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
118 && isvector (vret.(vfld{vcntarg}))))
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
119 else
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
120 error ("OdePkg:InvalidParameter",
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
121 'Unknown parameter name "%s" or no valid parameter value',
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
122 vfld{vcntarg});
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
123 endif
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
124
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
125 case "OutputFcn"
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
126 if (isempty (vret.(vfld{vcntarg})) || ...
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
127 isa (vret.(vfld{vcntarg}), "function_handle"))
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
128 else
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
129 error ("OdePkg:InvalidParameter",
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
130 'Unknown parameter name "%s" or no valid parameter value',
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
131 vfld{vcntarg});
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
132 endif
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
133
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
134 case "OutputSel"
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
135 if (isempty (vret.(vfld{vcntarg})) || ...
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
136 (isnumeric (vret.(vfld{vcntarg}))
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
137 && isvector (vret.(vfld{vcntarg}))) || ...
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
138 isscalar (vret.(vfld{vcntarg})))
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
139 else
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
140 error ("OdePkg:InvalidParameter",
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
141 'Unknown parameter name "%s" or no valid parameter value',
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
142 vfld{vcntarg});
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
143 endif
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
144
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
145 case "OutputSave"
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
146 if (isempty (vret.(vfld{vcntarg})) || ...
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
147 (isscalar (vret.(vfld{vcntarg})) && ...
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
148 mod (vret.(vfld{vcntarg}), 1) == 0 && ...
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
149 vret.(vfld{vcntarg}) > 0) || ...
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
150 vret.(vfld{vcntarg}) == Inf)
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
151 else
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
152 error ("OdePkg:InvalidParameter",
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
153 'Unknown parameter name "%s" or no valid parameter value',
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
154 vfld{vcntarg});
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
155 endif
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
156
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
157 case "Refine"
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
158 if (isempty (vret.(vfld{vcntarg})) || ...
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
159 (isscalar (vret.(vfld{vcntarg})) && ...
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
160 mod (vret.(vfld{vcntarg}), 1) == 0 && ...
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
161 vret.(vfld{vcntarg}) >= 0 && ...
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
162 vret.(vfld{vcntarg}) <= 5))
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
163 else
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
164 error ("OdePkg:InvalidParameter",
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
165 'Unknown parameter name "%s" or no valid parameter value',
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
166 vfld{vcntarg});
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
167 endif
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
168
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
169 case "Stats"
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
170 if (isempty (vret.(vfld{vcntarg})) || ...
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
171 (strcmp (vret.(vfld{vcntarg}), "on") || ...
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
172 strcmp (vret.(vfld{vcntarg}), "off")))
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
173 else
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
174 error ("OdePkg:InvalidParameter",
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
175 'Unknown parameter name "%s" or no valid parameter value',
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
176 vfld{vcntarg});
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
177 endif
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
178
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
179 case "InitialStep"
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
180 if (isempty (vret.(vfld{vcntarg})) || ...
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
181 (isscalar (vret.(vfld{vcntarg})) && ...
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
182 isreal (vret.(vfld{vcntarg}))))
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
183 else
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
184 error ("OdePkg:InvalidParameter",
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
185 'Unknown parameter name "%s" or no valid parameter value',
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
186 vfld{vcntarg});
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
187 endif
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
188
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
189 case "MaxStep"
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
190 if (isempty (vret.(vfld{vcntarg})) || ...
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
191 (isscalar (vret.(vfld{vcntarg})) && ...
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
192 vret.(vfld{vcntarg}) > 0) )
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
193 else
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
194 error ("OdePkg:InvalidParameter",
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
195 'Unknown parameter name "%s" or no valid parameter value',
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
196 vfld{vcntarg});
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
197 endif
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
198
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
199 case "Events"
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
200 if (isempty (vret.(vfld{vcntarg})) || ...
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
201 isa (vret.(vfld{vcntarg}), "function_handle"))
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
202 else
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
203 error ("OdePkg:InvalidParameter",
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
204 'Unknown parameter name "%s" or no valid parameter value',
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
205 vfld{vcntarg});
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
206 endif
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
207
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
208 case "Jacobian"
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
209 if (isempty (vret.(vfld{vcntarg})) || ...
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
210 isnumeric (vret.(vfld{vcntarg})) || ...
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
211 isa (vret.(vfld{vcntarg}), "function_handle") || ...
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
212 iscell (vret.(vfld{vcntarg})))
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
213 else
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
214 error ("OdePkg:InvalidParameter",
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
215 'Unknown parameter name "%s" or no valid parameter value',
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
216 vfld{vcntarg});
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
217 endif
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
218
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
219 case "JPattern"
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
220 if (isempty (vret.(vfld{vcntarg})) || ...
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
221 isvector (vret.(vfld{vcntarg})) || ...
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
222 isnumeric (vret.(vfld{vcntarg})))
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
223 else
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
224 error ("OdePkg:InvalidParameter",
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
225 'Unknown parameter name "%s" or no valid parameter value',
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
226 vfld{vcntarg});
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
227 endif
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
228
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
229 case "Vectorized"
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
230 if (isempty (vret.(vfld{vcntarg})) || ...
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
231 (strcmp (vret.(vfld{vcntarg}), "on") || ...
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
232 strcmp (vret.(vfld{vcntarg}), "off")))
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
233 else
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
234 error ("OdePkg:InvalidParameter",
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
235 'Unknown parameter name "%s" or no valid parameter value',
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
236 vfld{vcntarg});
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
237 endif
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
238
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
239 case "Mass"
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
240 if (isempty (vret.(vfld{vcntarg})) || ...
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
241 (isnumeric (vret.(vfld{vcntarg})) || ...
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
242 isa (vret.(vfld{vcntarg}), "function_handle")))
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
243 else
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
244 error ("OdePkg:InvalidParameter",
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
245 'Unknown parameter name "%s" or no valid parameter value',
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
246 vfld{vcntarg});
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
247 endif
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
248
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
249 case "MStateDependence"
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
250 if (isempty (vret.(vfld{vcntarg})) || ...
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
251 (strcmp (vret.(vfld{vcntarg}), "none") || ...
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
252 strcmp (vret.(vfld{vcntarg}), "weak") || ...
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
253 strcmp (vret.(vfld{vcntarg}), "strong")))
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
254 else
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
255 error ("OdePkg:InvalidParameter",
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
256 'Unknown parameter name "%s" or no valid parameter value',
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
257 vfld{vcntarg});
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
258 endif
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
259
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
260 case "MvPattern"
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
261 if (isempty (vret.(vfld{vcntarg})) || ...
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
262 (isvector (vret.(vfld{vcntarg})) || ...
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
263 isnumeric (vret.(vfld{vcntarg}))))
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
264 else
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
265 error ("OdePkg:InvalidParameter",
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
266 'Unknown parameter name "%s" or no valid parameter value',
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
267 vfld{vcntarg});
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
268 endif
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
269
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
270 case "MassSingular"
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
271 if (isempty (vret.(vfld{vcntarg})) || ...
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
272 (strcmp (vret.(vfld{vcntarg}), "yes") || ...
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
273 strcmp (vret.(vfld{vcntarg}), "no") || ...
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
274 strcmp (vret.(vfld{vcntarg}), "maybe")))
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
275 else
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
276 error ("OdePkg:InvalidParameter",
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
277 'Unknown parameter name "%s" or no valid parameter value',
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
278 vfld{vcntarg});
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
279 endif
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
280
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
281 case "InitialSlope"
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
282 if (isempty (vret.(vfld{vcntarg})) || ...
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
283 isvector (vret.(vfld{vcntarg})))
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
284 else
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
285 error ("OdePkg:InvalidParameter",
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
286 'Unknown parameter name "%s" or no valid parameter value',
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
287 vfld{vcntarg});
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
288 endif
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
289
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
290 case "MaxOrder"
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
291 if (isempty (vret.(vfld{vcntarg})) || ...
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
292 (mod (vret.(vfld{vcntarg}), 1) == 0 && ...
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
293 vret.(vfld{vcntarg}) > 0 && ...
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
294 vret.(vfld{vcntarg}) < 8))
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
295 else
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
296 error ("OdePkg:InvalidParameter",
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
297 'Unknown parameter name "%s" or no valid parameter value',
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
298 vfld{vcntarg});
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
299 endif
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
300
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
301 case "BDF"
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
302 if (isempty (vret.(vfld{vcntarg})) || ...
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
303 (strcmp (vret.(vfld{vcntarg}), "on") || ...
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
304 strcmp (vret.(vfld{vcntarg}), "off")))
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
305 else
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
306 error ("OdePkg:InvalidParameter",
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
307 'Unknown parameter name "%s" or no valid parameter value',
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
308 vfld{vcntarg});
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
309 endif
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
310
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
311 case "NewtonTol"
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
312 if (isempty (vret.(vfld{vcntarg})) || ...
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
313 (isnumeric (vret.(vfld{vcntarg})) && ...
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
314 isreal (vret.(vfld{vcntarg})) && ...
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
315 all (vret.(vfld{vcntarg}) > 0))) # "all" is a MatLab need
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
316 else
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
317 error ("OdePkg:InvalidParameter",
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
318 'Unknown parameter name "%s" or no valid parameter value',
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
319 vfld{vcntarg});
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
320 endif
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
321
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
322 case "MaxNewtonIterations"
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
323 if (isempty (vret.(vfld{vcntarg})) || ...
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
324 (mod (vret.(vfld{vcntarg}), 1) == 0 && ...
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
325 vret.(vfld{vcntarg}) > 0))
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
326 else
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
327 error ("OdePkg:InvalidParameter",
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
328 'Unknown parameter name "%s" or no valid parameter value',
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
329 vfld{vcntarg});
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
330 endif
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
331
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
332 ## new fields added
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
333 case "Algorithm"
20761
b7ac1e94266e maint: Further clean up of functions in ode/private dir.
Rik <rik@octave.org>
parents: 20759
diff changeset
334 if ( isempty (vret.(vfld{vcntarg})) || ischar (vret.(vfld{vcntarg})) )
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
335 else
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
336 error ("OdePkg:InvalidParameter",
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
337 'Unknown parameter name "%s" or no valid parameter value',
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
338 vfld{vcntarg});
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
339 endif
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
340
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
341 case "Choice"
20761
b7ac1e94266e maint: Further clean up of functions in ode/private dir.
Rik <rik@octave.org>
parents: 20759
diff changeset
342 if ( isempty (vret.(vfld{vcntarg}))
b7ac1e94266e maint: Further clean up of functions in ode/private dir.
Rik <rik@octave.org>
parents: 20759
diff changeset
343 || (isnumeric (vret.(vfld{vcntarg})) && (vret.(vfld{vcntarg})==1)
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
344 || vret.(vfld{vcntarg})==2 ) )
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
345 else
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
346 error ("OdePkg:InvalidParameter",
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
347 'Unknown parameter name "%s" or no valid parameter value',
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
348 vfld{vcntarg});
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
349 endif
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
350
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
351 case "Eta"
20761
b7ac1e94266e maint: Further clean up of functions in ode/private dir.
Rik <rik@octave.org>
parents: 20759
diff changeset
352 if ( isempty (vret.(vfld{vcntarg}))
b7ac1e94266e maint: Further clean up of functions in ode/private dir.
Rik <rik@octave.org>
parents: 20759
diff changeset
353 || ( isreal (vret.(vfld{vcntarg}))
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
354 && vret.(vfld{vcntarg})>=0 && vret.(vfld{vcntarg})<1) )
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
355 else
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
356 error ("OdePkg:InvalidParameter",
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
357 'Unknown parameter name "%s" or no valid parameter value',
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
358 vfld{vcntarg});
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
359 endif
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
360
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
361 case "Explicit"
20761
b7ac1e94266e maint: Further clean up of functions in ode/private dir.
Rik <rik@octave.org>
parents: 20759
diff changeset
362 if ( isempty (vret.(vfld{vcntarg}))
b7ac1e94266e maint: Further clean up of functions in ode/private dir.
Rik <rik@octave.org>
parents: 20759
diff changeset
363 || (ischar (vret.(vfld{vcntarg}))
b7ac1e94266e maint: Further clean up of functions in ode/private dir.
Rik <rik@octave.org>
parents: 20759
diff changeset
364 && (strcmp (vret.(vfld{vcntarg}),"yes")
b7ac1e94266e maint: Further clean up of functions in ode/private dir.
Rik <rik@octave.org>
parents: 20759
diff changeset
365 || strcmp (vret.(vfld{vcntarg}),"no"))) )
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
366 else
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
367 error ("OdePkg:InvalidParameter",
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
368 'Unknown parameter name "%s" or no valid parameter value',
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
369 vfld{vcntarg});
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
370 endif
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
371
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
372 case "InexactSolver"
20761
b7ac1e94266e maint: Further clean up of functions in ode/private dir.
Rik <rik@octave.org>
parents: 20759
diff changeset
373 if ( isempty (vret.(vfld{vcntarg})) || ischar (vret.(vfld{vcntarg})) )
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
374 else
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
375 error ("OdePkg:InvalidParameter",
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
376 'Unknown parameter name "%s" or no valid parameter value',
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
377 vfld{vcntarg});
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
378 endif
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
379
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
380 case "InitialSlope"
20761
b7ac1e94266e maint: Further clean up of functions in ode/private dir.
Rik <rik@octave.org>
parents: 20759
diff changeset
381 if ( isempty (vret.(vfld{vcntarg}))
b7ac1e94266e maint: Further clean up of functions in ode/private dir.
Rik <rik@octave.org>
parents: 20759
diff changeset
382 || ( ischar (vret.(vfld{vcntarg}))
b7ac1e94266e maint: Further clean up of functions in ode/private dir.
Rik <rik@octave.org>
parents: 20759
diff changeset
383 || (isnumeric (vret.(vfld{vcntarg}))
b7ac1e94266e maint: Further clean up of functions in ode/private dir.
Rik <rik@octave.org>
parents: 20759
diff changeset
384 && (isvector (vret.(vfld{vcntarg}))
b7ac1e94266e maint: Further clean up of functions in ode/private dir.
Rik <rik@octave.org>
parents: 20759
diff changeset
385 || isreal (vret.(vfld{vcntarg}))))) )
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
386 else
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
387 error ("OdePkg:InvalidParameter",
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
388 'Unknown parameter name "%s" or no valid parameter value',
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
389 vfld{vcntarg});
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
390 endif
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
391
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
392 case "JConstant"
20761
b7ac1e94266e maint: Further clean up of functions in ode/private dir.
Rik <rik@octave.org>
parents: 20759
diff changeset
393 if ( isempty (vret.(vfld{vcntarg}))
b7ac1e94266e maint: Further clean up of functions in ode/private dir.
Rik <rik@octave.org>
parents: 20759
diff changeset
394 || (ischar (vret.(vfld{vcntarg}))
b7ac1e94266e maint: Further clean up of functions in ode/private dir.
Rik <rik@octave.org>
parents: 20759
diff changeset
395 && (strcmp (vret.(vfld{vcntarg}),"yes")
b7ac1e94266e maint: Further clean up of functions in ode/private dir.
Rik <rik@octave.org>
parents: 20759
diff changeset
396 || strcmp (vret.(vfld{vcntarg}),"no"))) )
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
397 else
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
398 error ("OdePkg:InvalidParameter",
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
399 'Unknown parameter name "%s" or no valid parameter value',
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
400 vfld{vcntarg});
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
401 endif
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
402
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
403 case "MassConstant"
20761
b7ac1e94266e maint: Further clean up of functions in ode/private dir.
Rik <rik@octave.org>
parents: 20759
diff changeset
404 if ( isempty (vret.(vfld{vcntarg}))
b7ac1e94266e maint: Further clean up of functions in ode/private dir.
Rik <rik@octave.org>
parents: 20759
diff changeset
405 || (strcmp (vret.(vfld{vcntarg}),"on")
b7ac1e94266e maint: Further clean up of functions in ode/private dir.
Rik <rik@octave.org>
parents: 20759
diff changeset
406 || strcmp (vret.(vfld{vcntarg}),"off")) )
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
407 else
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
408 error ("OdePkg:InvalidParameter",
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
409 'Unknown parameter name "%s" or no valid parameter value',
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
410 vfld{vcntarg});
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
411 endif
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
412
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
413 case "PolynomialDegree"
20761
b7ac1e94266e maint: Further clean up of functions in ode/private dir.
Rik <rik@octave.org>
parents: 20759
diff changeset
414 if ( isempty (vret.(vfld{vcntarg}))
b7ac1e94266e maint: Further clean up of functions in ode/private dir.
Rik <rik@octave.org>
parents: 20759
diff changeset
415 || (isnumeric (vret.(vfld{vcntarg}))
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
416 && mod(vret.(vfld{vcntarg}),1)==0 && vret.(vfld{vcntarg})>0) )
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
417 else
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
418 error ("OdePkg:InvalidParameter",
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
419 'Unknown parameter name "%s" or no valid parameter value',
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
420 vfld{vcntarg});
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
421 endif
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
422
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
423 case "QuadratureOrder"
20761
b7ac1e94266e maint: Further clean up of functions in ode/private dir.
Rik <rik@octave.org>
parents: 20759
diff changeset
424 if ( isempty (vret.(vfld{vcntarg}))
b7ac1e94266e maint: Further clean up of functions in ode/private dir.
Rik <rik@octave.org>
parents: 20759
diff changeset
425 || (isnumeric (vret.(vfld{vcntarg}))
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
426 && mod(vret.(vfld{vcntarg}),1)==0 && vret.(vfld{vcntarg})>0) )
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
427 else
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
428 error ("OdePkg:InvalidParameter",
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
429 'Unknown parameter name "%s" or no valid parameter value',
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
430 vfld{vcntarg});
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
431 endif
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
432
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
433 case "Restart"
20761
b7ac1e94266e maint: Further clean up of functions in ode/private dir.
Rik <rik@octave.org>
parents: 20759
diff changeset
434 if ( isempty (vret.(vfld{vcntarg}))
b7ac1e94266e maint: Further clean up of functions in ode/private dir.
Rik <rik@octave.org>
parents: 20759
diff changeset
435 || (isnumeric (vret.(vfld{vcntarg}))
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
436 && mod(vret.(vfld{vcntarg}),1)==0 && vret.(vfld{vcntarg})>0) )
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
437 else
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
438 error ("OdePkg:InvalidParameter",
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
439 'Unknown parameter name "%s" or no valid parameter value',
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
440 vfld{vcntarg});
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
441 endif
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
442
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
443 case "TimeStepNumber"
20761
b7ac1e94266e maint: Further clean up of functions in ode/private dir.
Rik <rik@octave.org>
parents: 20759
diff changeset
444 if ( isempty (vret.(vfld{vcntarg}))
b7ac1e94266e maint: Further clean up of functions in ode/private dir.
Rik <rik@octave.org>
parents: 20759
diff changeset
445 || (isnumeric (vret.(vfld{vcntarg}))
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
446 && mod(vret.(vfld{vcntarg}),1)==0 && vret.(vfld{vcntarg})>0) )
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
447 else
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
448 error ("OdePkg:InvalidParameter",
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
449 'Unknown parameter name "%s" or no valid parameter value',
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
450 vfld{vcntarg});
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
451 endif
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
452
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
453 case "TimeStepSize"
20761
b7ac1e94266e maint: Further clean up of functions in ode/private dir.
Rik <rik@octave.org>
parents: 20759
diff changeset
454 if ( isempty (vret.(vfld{vcntarg}))
b7ac1e94266e maint: Further clean up of functions in ode/private dir.
Rik <rik@octave.org>
parents: 20759
diff changeset
455 || ( isreal (vret.(vfld{vcntarg})) && vret.(vfld{vcntarg})!=0) )
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
456 else
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
457 error ("OdePkg:InvalidParameter",
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
458 'Unknown parameter name "%s" or no valid parameter value',
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
459 vfld{vcntarg});
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
460 endif
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
461
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
462 case "UseJacobian"
20761
b7ac1e94266e maint: Further clean up of functions in ode/private dir.
Rik <rik@octave.org>
parents: 20759
diff changeset
463 if ( isempty (vret.(vfld{vcntarg}))
b7ac1e94266e maint: Further clean up of functions in ode/private dir.
Rik <rik@octave.org>
parents: 20759
diff changeset
464 || (ischar (vret.(vfld{vcntarg}))
b7ac1e94266e maint: Further clean up of functions in ode/private dir.
Rik <rik@octave.org>
parents: 20759
diff changeset
465 && (strcmp (vret.(vfld{vcntarg}),"yes")
b7ac1e94266e maint: Further clean up of functions in ode/private dir.
Rik <rik@octave.org>
parents: 20759
diff changeset
466 || strcmp (vret.(vfld{vcntarg}),"no"))) )
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
467 else
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
468 error ("OdePkg:InvalidParameter",
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
469 'Unknown parameter name "%s" or no valid parameter value',
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
470 vfld{vcntarg});
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
471 endif
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
472
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
473 otherwise
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
474 error ("OdePkg:InvalidParameter",
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
475 'Unknown parameter name "%s"',
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
476 vfld{vcntarg});
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
477
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
478 endswitch
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
479
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
480 endfor
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
481
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
482 endfunction
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
483
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
484
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
485 %!demo
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
486 %! # Return the checked OdePkg options structure that is created by
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
487 %! # the command odeset.
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
488 %!
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
489 %! odepkg_structure_check (odeset);
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
490
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
491 %!demo
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
492 %! # Create the OdePkg options structure A with odeset and check it
20759
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
493 %! # with odepkg_structure_check. This actually is unnecessary
eb9e2d187ed2 maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents: 20755
diff changeset
494 %! # because odeset automatically calls odepkg_structure_check before
20743
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
495 %! # returning.
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
496 %!
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
497 %! A = odeset (); odepkg_structure_check (A);
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
498