commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sébastien Brisard (JIRA) <j...@apache.org>
Subject [jira] [Created] (MATH-803) Bugs in OpenMapRealVector.ebeMultiply(RealVector) and ebeDivide(RealVector)
Date Sat, 09 Jun 2012 18:51:42 GMT
Sébastien Brisard created MATH-803:
--------------------------------------

             Summary: Bugs in OpenMapRealVector.ebeMultiply(RealVector) and ebeDivide(RealVector)
                 Key: MATH-803
                 URL: https://issues.apache.org/jira/browse/MATH-803
             Project: Commons Math
          Issue Type: Bug
    Affects Versions: 3.0
            Reporter: Sébastien Brisard
            Assignee: Sébastien Brisard


{{OpenMapRealVector.ebeMultiply(RealVector)}} and {{OpenMapRealVector.ebeDivide(RealVector)}}
return wrong values when one entry of the specified {{RealVector}} is nan or infinity. The
bug is easy to understand. Here is the current implementation of {{ebeMultiply}}

{code:java}
    public OpenMapRealVector ebeMultiply(RealVector v) {
        checkVectorDimensions(v.getDimension());
        OpenMapRealVector res = new OpenMapRealVector(this);
        Iterator iter = entries.iterator();
        while (iter.hasNext()) {
            iter.advance();
            res.setEntry(iter.key(), iter.value() * v.getEntry(iter.key()));
        }
        return res;
    }
{code}

The assumption is that for any double {{x}}, {{x * 0d == 0d}} holds, which is not true. The
bug is easy enough to identify, but more complex to solve. The only solution I can come up
with is to loop through *all* entries of v (instead of those entries which correspond to non-zero
entries of this). I'm afraid about performance losses.



--
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

       

Mime
View raw message