[
https://issues.apache.org/jira/browse/MATH-812?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Sébastien Brisard resolved MATH-812.
------------------------------------
Resolution: Fixed
Unit tests now pass, at the price of a performance loss.
> In RealVector, dotProduct and outerProduct return wrong results due to misuse
> of sparse iterators
> -------------------------------------------------------------------------------------------------
>
> Key: MATH-812
> URL: https://issues.apache.org/jira/browse/MATH-812
> Project: Commons Math
> Issue Type: Bug
> Affects Versions: 3.0
> Reporter: Sébastien Brisard
> Assignee: Sébastien Brisard
> Labels: linear, sparse
> Fix For: 3.1
>
>
> In class {{RealVector}}, the default implementation of {{RealMatrix
> outerProduct(RealVector)}} uses sparse iterators on the entries of the two
> vectors. The rationale behind this is that {{0d * x == 0d}} is {{true}} for
> all {{double x}}. This assumption is in fact false, since {{0d * NaN == NaN}}.
> Proposed fix is to loop through *all* entries of both vectors. This can have
> a significant impact on the CPU cost, but robustness should probably be
> preferred over speed in default implementations.
> Same issue occurs with {{double dotProduct(RealVector)}}, which uses sparse
> iterators for {{this}} only.
> Another option would be to through an exception if {{isNaN()}} is {{true}},
> in which case caching could be used for both {{isNaN()}} and {{isInfinite()}}.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira