You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mahout.apache.org by "Jake Mannix (JIRA)" <ji...@apache.org> on 2010/01/14 07:11:54 UTC

[jira] Updated: (MAHOUT-206) Separate and clearly label different SparseVector implementations

     [ https://issues.apache.org/jira/browse/MAHOUT-206?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jake Mannix updated MAHOUT-206:
-------------------------------

    Attachment: MAHOUT-206.patch

Patch brought up to date with trunk, again fairly invasive, because it kills SparseVector, replaces with the two subclasses optimized for different use cases.  In basically all cases, SparseVector -> RandomAccessSparseVector throughout user code, but this is probably *not* optimal.  Cases where the vector being used is treated in a read-only way, it is more efficient to use SequentialAccessSparseVector, but I did not hunt down all those situations.

> Separate and clearly label different SparseVector implementations
> -----------------------------------------------------------------
>
>                 Key: MAHOUT-206
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-206
>             Project: Mahout
>          Issue Type: Improvement
>          Components: Math
>    Affects Versions: 0.2
>         Environment: all
>            Reporter: Jake Mannix
>            Assignee: Jake Mannix
>             Fix For: 0.3
>
>         Attachments: MAHOUT-206.patch, MAHOUT-206.patch, MAHOUT-206.patch
>
>
> Shashi's last patch on MAHOUT-165 swapped out the int/double parallel array impl of SparseVector for an OpenIntDoubleMap (hash-based) one.  We actually need both, as I think I've mentioned a gazillion times.
> There was a patch, long ago, on MAHOUT-165, in which Ted had OrderedIntDoubleVector, and OpenIntDoubleHashVector (or something to that effect), and neither of them are called SparseVector.  I like this, because it forces people to choose what kind of SparseVector they want (and they should: sparse is an optimization, and the client should make a conscious decision what they're optimizing for).  
> We could call them RandomAccessSparseVector and SequentialAccessSparseVector, to be really obvious.
> But really, the important part is we have both.

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