[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: ode csets
From: |
Rik |
Subject: |
Re: ode csets |
Date: |
Sat, 22 Oct 2016 13:18:58 -0700 |
On 10/22/2016 12:48 PM, c. wrote:
> On 22 Oct 2016, at 21:42, c. <address@hidden> wrote:
>
>> On 19 Oct 2016, at 21:01, Rik <address@hidden> wrote:
>>
>>> The issue is made worse by the fact that there are no BIST tests for
>>> "InitialSlope", "MvPattern", and "MaxOrder" which might have caught this.
>> Rik,
>>
>> The options "InitialSlope" and "MaxOrder" cannot be tested either in
>> ode45 or in ode23 as they make no sense for either of the two solvers
>> and are actually removed completely from the option structure before
>> invoking odemergeopts that is responsible of cecking option consistency.
>>
>> This is consistent with Matlab as also there no consistency check
>> is made for options that are not relevant for the specific solver
>> being used.
>>
>> The option "MvPattern", on the other hand, would make sense for the
>> explicit Runge-Kutta solvers, but it is also not used right now
>> and I would not know how to take advantage of the knowledge of the
>> sparsity path either.
>>
>> I think the comment you added to both solvers
>>
>> ## FIXME: Missing tests.
>> ## test for InitialSlope option is missing
>> ## test for MaxOrder option is missing
>> ## test for MvPattern option is missing
>>
>> should be removed.
>>
>> If you want you can add instead a reminder that these options are not
>> tested in ode{45,23}.m as they are ignored and have no effect anyway.
>>
>> c.
> The complete list of options that are treated similarly is
> at line 151 of ode45.m:
>
> {"Jacobian", "JPattern", "Vectorized", ...
> "MvPattern", "MassSingular", ...
> "InitialSlope", "MaxOrder", "BDF"}
>
> c.
>
Seems fine to remove. We don't need BIST tests if there is no underlying
code to test. Can you prepare a changeset to remove the FIXME note as well
as this code BIST code below which is never used:
%!function jac = fjac (t, y, varargin) # its Jacobian
%! jac = [0, 1; -1 - 2 * y(1) * y(2), 1 - y(1)^2];
%!endfunction
%!function jac = fjcc (t, y, varargin) # sparse type
%! jac = sparse ([0, 1; -1 - 2 * y(1) * y(2), 1 - y(1)^2]);
%!endfunction
--Rik