Vector has both dot() and cross() products. Are you looking at the
latest .diff?

I can easily move the vector package stuff back into matrix. It used to
be there and I moved it into its own package just to "organize" it
better. You are correct; however, that having them in the same package
would allow protected methods to be shared between the implementations.

Moving all the matrix and vector operations into
org.apache.mahout.matrix is also worth discussing. I can see its
importance is, perhaps, more than just as a utility.

Jeff



-----Original Message-----
From: Jason Rennie (JIRA) [mailto:[EMAIL PROTECTED] 
Sent: Friday, March 07, 2008 1:00 PM
To: mahout-dev@lucene.apache.org
Subject: [jira] Commented: (MAHOUT-6) Need a matrix implementation


    [
https://issues.apache.org/jira/browse/MAHOUT-6?page=com.atlassian.jira.p
lugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12576371#a
ction_12576371 ] 

Jason Rennie commented on MAHOUT-6:
-----------------------------------

Re: Jeff

Sounds good.  It think I might actually have some time to do this.  One
thing I didn't see when looking through the last patch was basic
matrix/vector operations.  I'll go ahead and include a dot-product
method to exhibit how it'd work and do some speed comparisons vs. a
HashMap impl.

Yeah, would definitely be good to get this stuff in trunk, if only to
make it easier to read/access! :)

Re: Ted

Didn't realize HashMaps were so fast.  Will be good to revisit the
testing I did earlier.  Agreed on the CRS benefits.

One way I get around the sorted constraint while constructing a sparse
vector is a SparseVectorBuilder class.  It basically has two methods:
void add(int _idx, double _val), and SparseVector build().  Avoids
having to keep state within the SparseVector.


> Need a matrix implementation
> ----------------------------
>
>                 Key: MAHOUT-6
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-6
>             Project: Mahout
>          Issue Type: New Feature
>            Reporter: Ted Dunning
>         Attachments: MAHOUT-6a.diff, MAHOUT-6b.diff, MAHOUT-6c.diff,
MAHOUT-6d.diff, MAHOUT-6e.diff, MAHOUT-6f.diff, MAHOUT-6g.diff,
MAHOUT-6h.patch, MAHOUT-6i.diff, MAHOUT-6j.diff
>
>
> We need matrices for Mahout.
> An initial set of basic requirements includes:
> a) sparse and dense support are required
> b) row and column labels are important
> c) serialization for hadoop use is required
> d) reasonable floating point performance is required, but awesome FP
is not
> e) the API should be simple enough to understand
> f) it should be easy to carve out sub-matrices for sending to
different reducers
> g) a reasonable set of matrix operations should be supported, these
should eventually include:
>     simple matrix-matrix and matrix-vector and matrix-scalar linear
algebra operations, A B, A + B, A v, A + x, v + x, u + v, dot(u, v)
>     row and column sums  
>     generalized level 2 and 3 BLAS primitives, alpha A B + beta C and
A u + beta v
> h) easy and efficient iteration constructs, especially for sparse
matrices
> i) easy to extend with new implementations

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

Reply via email to