[ https://issues.apache.org/jira/browse/MAHOUT-208?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12805408#action_12805408 ]
Jake Mannix commented on MAHOUT-208: ------------------------------------ Hmm... I'm getting bitten by this again: setQuick() mutates, but only calls "lengthSquared = -1.0" in DenseVector. The sparse vectors don't do this, and nasty things happen. Will check in fix. > Vector.getLengthSquared() is dangerously optimized > -------------------------------------------------- > > Key: MAHOUT-208 > URL: https://issues.apache.org/jira/browse/MAHOUT-208 > Project: Mahout > Issue Type: Bug > Components: Math > Affects Versions: 0.1 > Environment: all > Reporter: Jake Mannix > Assignee: Sean Owen > Fix For: 0.3 > > > SparseVector and DenseVector both cache the value of lengthSquared, so that > subsequent calls to it get the cached value. Great, except the cache is > never cleared - calls to set/setQuick or assign or anything, all leave the > cached value unchanged. > Mutating method calls should set lengthNorm to -1 so that the cache is > cleared. > This could be a really nasty bug if hit. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.