Mercurial > octave
view scripts/ode/private/check_default_input.m @ 31548:c8ad083a5802 stable
maint: Clean up m-files before Octave 8.1 release.
* external.txi, oop.txi, Table.h, documentation.cc, gui-preferences-ed.h,
lo-specfun.cc, range.tst : Eliminate triple newlines.
* Map.m, MemoizedFunction.m, delaunayn.m, inputParser.m,
__publish_latex_output__.m, publish.m, unpack.m, fminbnd.m,
__add_default_menu__.m, gammainc.m, gallery.m, hadamard.m, weboptions.m:
Add newline after keyword "function" or before keyword "endfunction" for
readability.
* getaudiodata.m, pkg.m : Add semicolon to end of line for error() statement.
* movegui.m: Combine mutliple calls to set() into one for performance.
* __unimplemented__.m (missing_functions): Remove missing functions that have
been implemented.
* __vectorize__.m, check_default_input.m, betaincinv.m, gammaincinv.m:
Remove semicolon at end of line with "function" declaration.
* weboptions.m: Remove semicolon at end of line with "if" keyword.
* integrate_adaptive.m, factor.m: Use keyword "endif" rather than bare "end".
author | Rik <rik@octave.org> |
---|---|
date | Fri, 25 Nov 2022 21:23:54 -0800 |
parents | e1788b1a315f |
children | 505ed551e366 |
line wrap: on
line source
######################################################################## ## ## Copyright (C) 2016-2022 The Octave Project Developers ## ## See the file COPYRIGHT.md in the top-level directory of this ## distribution or <https://octave.org/copyright/>. ## ## This file is part of Octave. ## ## Octave is free software: you can redistribute it and/or modify it ## under the terms of the GNU General Public License as published by ## the Free Software Foundation, either version 3 of the License, or ## (at your option) any later version. ## ## Octave is distributed in the hope that it will be useful, but ## WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with Octave; see the file COPYING. If not, see ## <https://www.gnu.org/licenses/>. ## ######################################################################## function fcn = check_default_input (fcn, trange, solver, y0, yp0) if (nargin < 4) print_usage (); endif ## Check fcn validateattributes (fcn, {"function_handle", "char"}, {}, solver, "fcn"); if (! (nargin (fcn) == nargin - 2)) error ("Octave:invalid-input-arg", [solver ": invalid value assigned to field 'fcn'"]); endif if (ischar (fcn)) if (! exist (fcn)) error ("Octave:invalid-input-arg", [solver ": function '" fcn "' not found"]); endif fcn = str2func (fcn); endif if (! is_function_handle (fcn)) error ("Octave:invalid-input-arg", [solver ": invalid value assigned to field '" fcn "'"]); endif ## Check trange validateattributes (trange, {"float"}, {"vector", "real"}, solver, "trange"); if (numel (trange) < 2) error ("Octave:invalid-input-arg", [solver ": invalid value assigned to field 'trange'"]); elseif (! ((all (diff (trange) > 0)) || all (diff (-trange) > 0))) error ("Octave:invalid-input-arg", [solver ": invalid value assigned to field 'trange'"]); endif ## Check y0 and yp0 if (! isnumeric (y0) || ! isvector (y0)) error ("Octave:invalid-input-arg", [solver ": Y0 must be a numeric vector"]); endif y0 = y0(:); if (nargin == 5) if (! isnumeric (yp0) || ! isvector (yp0)) error ("Octave:invalid-input-arg", [solver ": YP0 must be a numeric vector"]); endif yp0 = yp0(:); n = numel (feval (fcn, trange(1), y0, yp0)); validateattributes (yp0, {"float"}, {"numel", n}, solver, "yp0"); else n = numel (feval (fcn, trange(1), y0)); endif validateattributes (y0, {"float"}, {"numel", n}, solver, "y0"); endfunction