[ 
https://issues.apache.org/jira/browse/MATH-659?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13100603#comment-13100603
 ] 

Luc Maisonobe commented on MATH-659:
------------------------------------

ODE code is one of the places where a lot of medium size data sets are changed 
all the time.
This means that allocating/deallocating is not negligible with respect to data 
overwriting. Also as is is a domain where the time to live of data is small 
(duration of one of few steps).

These two features implied that we selected to do overwriting and reuse of the 
same arrays and avoided reallocation for the sake of performance. In this 
specific case, the transformer also acts on matrices that are used by other 
classes (see both the parameters and the return type of the update 
updateHighOrderDerivativesPhase{1,2} methods) and in fact the layout of these 
arrays is used by the above classes to avoid both reallocation and copies.

This design in the general case was done several years ago, and the specific 
case for MultistepIntegrator is more recent. MultistepIntegrator is the base 
class of both Adams integrator and also the base class of another integrator I 
want to include, namely the BDFIntegrator).

This design may well not be adapted anymore to current processors and JVM. The 
multistep integrators are also quite in a flux, there are other JIRA issues 
about them. So I would really much like to have some benchmarks against real 
problems before changing this (i.e. state vector between 2 and 50 elements, 
integrations of several thousand steps, both very simple and very costly 
differential equations, a small set of events detectors ...). It may also be 
wise to wait a little on this class as work is done on it for the other issues



> Remove solve(double[][]) from DecompositionSolver
> -------------------------------------------------
>
>                 Key: MATH-659
>                 URL: https://issues.apache.org/jira/browse/MATH-659
>             Project: Commons Math
>          Issue Type: Task
>    Affects Versions: 3.0
>            Reporter: Sébastien Brisard
>            Assignee: Sébastien Brisard
>            Priority: Trivial
>              Labels: linear
>
> Following MATH-653, where {{double[]}} were removed from {{RealVector}}, and 
> {{double[] solve(double[])}} was removed from {{DecompositionSolver}}, the 
> method {{double[][] solve(double[][])}} should be removed from 
> {{DecompositionSolver}}. {{RealMatrix solve(RealMatrix)}} should be called 
> instead.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira


Reply via email to