On Mon, Feb 24, 2014 at 10:23 AM, Gilles <gil...@harfang.homelinux.org>wrote:

> One way to improve performance would be to provide pre-allocated space
>> for the Jacobian and reuse it for each evaluation.
>>
>
> Do you have actual data to back this statement?
>
>
>  The
>> LeastSquaresProblem interface would then be:
>>
>> void evaluate(RealVector point, RealVector resultResiduals, RealVector
>> resultJacobian);
>>
>> I'm interested in hearing your ideas on other approaches to solve this
>> issue. Or even if this is an issue worth solving.
>>
>
> Not before we can be sure that in-place modification (rather than
> reallocation) always provides a performance benefit.


Allocation is rarely the problem in these situations.  The implied copying
of data is.

And even the copying isn't always a problem.  For instance, it often pays
off big to copy data to column (or row) major representation to improve
cache coherency.  The result is that a large fraction of the time is spent
copying, but without the copying, the remaining time would take 10x longer.
 The net time taken is 3x faster with the copy.

Reply via email to