Mercurial > octave-nkf
view liboctave/numeric/LSODE-opts.in @ 20263:00cf2847355d
Deprecate Array::nelem() and Range::nelem() in favour of ::numel().
* liboctave/array/Array.h (Array::nelem) deprecate in favour of numel().
(Array::capacity, Array:: length): change to call numel() directly. These
methods will be deprecated soon.
* liboctave/array/PermMatrix.h (PermMatrix::nelem): deprecate in favour of
numel().
* liboctave/array/Range.h (Range::numel) new method to replace nelem().
(Range::nelem) deprecate in favour of the new method numel.
* liboctave/array/Sparse.h (Sparse::nelem) deprecate in favour of nzmax().
This one is secially bad because unlike the other classes, it is different
from numel().
* libinterp/corefcn/debug.cc, libinterp/corefcn/jit-typeinfo.cc,
libinterp/corefcn/ls-mat4.cc, libinterp/corefcn/lu.cc,
libinterp/corefcn/luinc.cc, libinterp/corefcn/max.cc,
libinterp/corefcn/pr-output.cc, libinterp/corefcn/rand.cc,
libinterp/corefcn/xpow.cc, libinterp/dldfcn/__magick_read__.cc,
libinterp/dldfcn/audioread.cc, libinterp/octave-value/ov-base-int.cc,
libinterp/octave-value/ov-bool-mat.cc, libinterp/octave-value/ov-flt-re-mat.cc,
libinterp/octave-value/ov-perm.cc, libinterp/octave-value/ov-range.cc,
libinterp/octave-value/ov-range.h, libinterp/octave-value/ov-re-mat.cc,
libinterp/parse-tree/pt-eval.cc, liboctave/array/Array.cc,
liboctave/array/CNDArray.cc, liboctave/array/Range.cc,
liboctave/array/dNDArray.cc, liboctave/array/fCNDArray.cc,
liboctave/array/fNDArray.cc, liboctave/array/idx-vector.cc,
liboctave/array/intNDArray.cc, liboctave/numeric/SparseCmplxLU.cc,
liboctave/numeric/SparsedbleLU.cc: replace use of nelem() with numel().
author | Carnë Draug <carandraug@octave.org> |
---|---|
date | Sun, 24 May 2015 02:41:37 +0100 |
parents | 4197fc428c7d |
children |
line wrap: on
line source
# Copyright (C) 2002-2015 John W. Eaton # # 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 # <http://www.gnu.org/licenses/>. CLASS = "LSODE" INCLUDE = "ODE.h" OPTION NAME = "absolute tolerance" DOC_ITEM Absolute tolerance. May be either vector or scalar. If a vector, it must match the dimension of the state vector. END_DOC_ITEM TYPE = "Array<double>" SET_ARG_TYPE = "const $TYPE&" INIT_BODY $OPTVAR.resize (dim_vector (1, 1)); $OPTVAR(0) = ::sqrt (std::numeric_limits<double>::epsilon ()); END_INIT_BODY SET_CODE void set_$OPT (double val) { $OPTVAR.resize (dim_vector (1, 1)); $OPTVAR(0) = (val > 0.0) ? val : ::sqrt (std::numeric_limits<double>::epsilon ()); reset = true; } void set_$OPT (const $TYPE& val) { $OPTVAR = val; reset = true; } END_SET_CODE END_OPTION OPTION NAME = "relative tolerance" DOC_ITEM Relative tolerance parameter. Unlike the absolute tolerance, this parameter may only be a scalar. The local error test applied at each integration step is @example @group abs (local error in x(i)) <= ... rtol * abs (y(i)) + atol(i) @end group @end example END_DOC_ITEM TYPE = "double" INIT_VALUE = "::sqrt (std::numeric_limits<double>::epsilon ())" SET_EXPR = "(val > 0.0) ? val : ::sqrt (std::numeric_limits<double>::epsilon ())" END_OPTION OPTION NAME = "integration method" DOC_ITEM A string specifying the method of integration to use to solve the ODE system. Valid values are @table @asis @item @qcode{\"adams\"} @itemx @qcode{\"non-stiff\"} No Jacobian used (even if it is available). @item @qcode{\"bdf\"} @itemx @qcode{\"stiff\"} Use stiff backward differentiation formula (BDF) method. If a function to compute the Jacobian is not supplied, @code{lsode} will compute a finite difference approximation of the Jacobian matrix. @end table END_DOC_ITEM TYPE = "std::string" SET_ARG_TYPE = "const $TYPE&" INIT_VALUE = ""stiff"" SET_BODY if (val == "stiff" || val == "bdf") $OPTVAR = "stiff"; else if (val == "non-stiff" || val == "adams") $OPTVAR = "non-stiff"; else (*current_liboctave_error_handler) ("lsode_options: method must be \"stiff\", \"bdf\", \"non-stiff\", or \"adams\""); END_SET_BODY END_OPTION OPTION NAME = "initial step size" DOC_ITEM The step size to be attempted on the first step (default is determined automatically). END_DOC_ITEM TYPE = "double" INIT_VALUE = "-1.0" SET_EXPR = "(val >= 0.0) ? val : -1.0" END_OPTION OPTION NAME = "maximum order" DOC_ITEM Restrict the maximum order of the solution method. If using the Adams method, this option must be between 1 and 12. Otherwise, it must be between 1 and 5, inclusive. END_DOC_ITEM TYPE = "octave_idx_type" INIT_VALUE = "-1" SET_EXPR = "val" END_OPTION OPTION NAME = "maximum step size" DOC_ITEM Setting the maximum stepsize will avoid passing over very large regions (default is not specified). END_DOC_ITEM TYPE = "double" INIT_VALUE = "-1.0" SET_EXPR = "(val >= 0.0) ? val : -1.0" END_OPTION OPTION NAME = "minimum step size" DOC_ITEM The minimum absolute step size allowed (default is 0). END_DOC_ITEM TYPE = "double" INIT_VALUE = "0.0" SET_EXPR = "(val >= 0.0) ? val : 0.0" END_OPTION OPTION NAME = "step limit" DOC_ITEM Maximum number of steps allowed (default is 100000). END_DOC_ITEM TYPE = "octave_idx_type" INIT_VALUE = "100000" SET_EXPR = "val" END_OPTION