octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: inexact property match in odeset()


From: Rik
Subject: Re: inexact property match in odeset()
Date: Sun, 16 Oct 2016 10:57:54 -0700

On 10/16/2016 10:48 AM, Carlo de Falco wrote:

Il 16 ott 2016 7:37 PM, "Carlo de Falco" <address@hidden> ha scritto:
>
> Il 16 ott 2016 7:29 PM, "Rik" <address@hidden> ha scritto:
> >
> > On 10/16/2016 08:56 AM, Matteo Frigo wrote:
> >>
> >> These are the outputs on r2016a: x = odeset ('reltol', 1e-1) x = AbsTol: [] BDF: [] Events: [] InitialStep: [] Jacobian: [] JConstant: [] JPattern: [] Mass: [] MassSingular: [] MaxOrder: [] MaxStep: [] NonNegative: [] NormControl: [] OutputFcn: [] OutputSel: [] Refine: [] RelTol: 0.1000 Stats: [] Vectorized: [] MStateDependence: [] MvPattern: [] InitialSlope: [] ___________________ y = odeset ('RelTal', 1e-2) Error using odeset (line 225) Unrecognized property name 'RelTal'. __________________ z = odeset ('Rel', 1e-3) z = AbsTol: [] BDF: [] Events: [] InitialStep: [] Jacobian: [] JConstant: [] JPattern: [] Mass: []
> >>
> >>  MassSingular: [] MaxOrder: [] MaxStep: [] NonNegative: [] NormControl: [] OutputFcn: [] OutputSel: [] Refine: [] RelTol: 1.0000e-03 Stats: [] Vectorized: [] MStateDependence: [] MvPattern: [] InitialSlope: [] _______________________ w = odeset ('MyCustomProperty', 1) Error using odeset (line 225) Unrecognized property name 'MyCustomProperty'.
> >
> > Thanks Matteo and Parsiad for testing this code.
> >
> > I filed a bug report about Octave  not implementing non-exact match to property names (https://savannah.gnu.org/bugs/index.php?49364).   Quoting from that report,
> >
> > ---- Quote ---
> >
> > In Matlab, odeset will match a partial property name to the exact property name. Octave does not do this. Instead, it creates a new property under the abbreviated name.
> >
> > This is a problem. Code on Matlab which makes use of this feature does not generate any warning, therefore, there is no indication that the option should be written more specifically. When this code is ported to Octave, it will run, but different results will be obtained because some options have not been set identically. As an example,
> >
> > will set RelTol to a very strict 1e-12 in Matlab, but leave it at the default value in Octave.
> >
> > --- End Quote ---
> >
> > --Rik
>
> Hi,
>
> The new odeset relies entirely on inputParser for parameter parsing.
>
> In order to get this working it is therefore required/sufficient to implement the PartialMatching option in inputParser which is currently unimplemented.
>
> I plan to do this, but if anyone wants to help it will happen faster.
>
> It shouldn't be difficult to do as we had an even more powerful method for computing string distance in odeset that we had to strip when moving into core ...
>
> c.

Here's the thread about removing fuzzy_compare:

http://octave.1599824.n4.nabble.com/Updated-odeset-odeget-in-core-tp4672847.html

It seems the main reason was performance ...


Since I can't imagine making a big change to inputParser and fitting it in to the 4.2.0 release, maybe the best strategy is to issue a warning when Octave encounters an unrecognized property?  This will at least help to prevent the scenario I outlined from occurring.

--Rik


reply via email to

[Prev in Thread] Current Thread [Next in Thread]