You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mahout.apache.org by "Ted Dunning (JIRA)" <ji...@apache.org> on 2010/06/11 23:12:31 UTC

[jira] Created: (MAHOUT-413) Sequential access vector has a bug in dot

Sequential access vector has a bug in dot
-----------------------------------------

                 Key: MAHOUT-413
                 URL: https://issues.apache.org/jira/browse/MAHOUT-413
             Project: Mahout
          Issue Type: Bug
            Reporter: Ted Dunning


Zhao wrote:

{quote}

Hi,

One strange thing, SequentialAccessSparseVector.dot() seems does NOT work
correctly. When I change the Vector w = new
RandomAccessSparseVector(Integer.MAX_VALUE, 12); Then the code works well.

I check the source code of SequentialAccessSparseVector.dot(), it checks the
index of two Vectors(if both of them are instance of
SequentialAccessSparseVector), once they mis-match, it will return 0.0.

*Why do we need such constrain?
*
In this case, what's the best way to get dot product between two mis-matched
SequentialAccessSparseVector instances?

Code:
 Vector w = new SequentialAccessSparseVector(Integer.MAX_VALUE, 12);
 w.set(1, 0.4);
 w.set(2, 0.4);
 w.set(3, -0.666666667);

 Vector v = new SequentialAccessSparseVector(Integer.MAX_VALUE, 12);
 v.set(3, 1);
 System.out.println(datastore.getFeatureRow(2).dot(w));

 The result is 0.0 (should be -0.666666667).
{quote}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (MAHOUT-413) Sequential access vector has a bug in dot

Posted by "Ted Dunning (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/MAHOUT-413?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ted Dunning resolved MAHOUT-413.
--------------------------------

    Resolution: Fixed

Sean committed a fix already.

Here is a test case to avoid regression.

> Sequential access vector has a bug in dot
> -----------------------------------------
>
>                 Key: MAHOUT-413
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-413
>             Project: Mahout
>          Issue Type: Bug
>            Reporter: Ted Dunning
>
> Zhao wrote:
> {quote}
> Hi,
> One strange thing, SequentialAccessSparseVector.dot() seems does NOT work
> correctly. When I change the Vector w = new
> RandomAccessSparseVector(Integer.MAX_VALUE, 12); Then the code works well.
> I check the source code of SequentialAccessSparseVector.dot(), it checks the
> index of two Vectors(if both of them are instance of
> SequentialAccessSparseVector), once they mis-match, it will return 0.0.
> *Why do we need such constrain?
> *
> In this case, what's the best way to get dot product between two mis-matched
> SequentialAccessSparseVector instances?
> Code:
>  Vector w = new SequentialAccessSparseVector(Integer.MAX_VALUE, 12);
>  w.set(1, 0.4);
>  w.set(2, 0.4);
>  w.set(3, -0.666666667);
>  Vector v = new SequentialAccessSparseVector(Integer.MAX_VALUE, 12);
>  v.set(3, 1);
>  System.out.println(datastore.getFeatureRow(2).dot(w));
>  The result is 0.0 (should be -0.666666667).
> {quote}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.