[
https://issues.apache.org/jira/browse/MAHOUT-300?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12836457#action_12836457
]
Jake Mannix commented on MAHOUT-300:
------------------------------------
Interestingly, for SquaredEuclideanDistanceMeasure (and
EuclideanDistanceMeasure), since vectors are caching their lengthSquareds, the
only computation going on in the distance measure is a dot() :
{code}
// if this and v has a cached lengthSquared, dot product is quickest way to
compute this.
if(lengthSquared >= 0 && v instanceof AbstractVector &&
((AbstractVector)v).lengthSquared >= 0) {
return lengthSquared + v.getLengthSquared() - 2 * this.dot(v);
}
{code}
So the time should be nearly exactly the same for all three, in the case where
it's cached.
> Solve performance issues with Vector Implementations
> ----------------------------------------------------
>
> Key: MAHOUT-300
> URL: https://issues.apache.org/jira/browse/MAHOUT-300
> Project: Mahout
> Issue Type: Improvement
> Affects Versions: 0.3
> Reporter: Robin Anil
> Fix For: 0.3
>
> Attachments: MAHOUT-300.patch, MAHOUT-300.patch, MAHOUT-300.patch,
> MAHOUT-300.patch, MAHOUT-300.patch
>
>
> AbstractVector operations like times
> public Vector times(double x) {
> Vector result = clone();
> Iterator<Element> iter = iterateNonZero();
> while (iter.hasNext()) {
> Element element = iter.next();
> int index = element.index();
> result.setQuick(index, element.get() * x);
> }
> return result;
> }
> should be implemented as follows
> public Vector times(double x) {
> Vector result = clone();
> Iterator<Element> iter = result.iterateNonZero();
> while (iter.hasNext()) {
> Element element = iter.next();
> element.set(element.get() * x);
> }
> return result;
> }
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.