mahout-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jason Rennie" <>
Subject Re: sparse matrix library
Date Wed, 30 Jan 2008 22:23:03 GMT
On Jan 30, 2008 2:49 PM, Ted Dunning <> wrote:

> For efficient row and column access, I built a hybrid that has both CSR
> and
> CSC represenations under the hood.  I also don't care much about mutation.

Cool :)  OS?  Or, something you built for VEOH?  Probably best to move
off-list, but what are you responsible for there?

>   A * v
>   v * A
>   A * A
>   A' * A
>   rowSum(A)
>   columnSum(A)
>   sum(A)

No matrix/vector norms?  'course, not necessary, but probably worth throwing
in :)

  forEachNonZero, forEachNonZeroRow, forEachNonZeroColumn
>   reduceNonZero, reduceNonZeroRow, reduceNonZeroColumn
>   many kinds of views

Otherwise sounds great.

The way that Colt does (most of) this is to use a higher-order API.  Most
> users I have talked to were completely confused by this.  I think the
> right
> answer is to require a small set of primitives for each implementation and
> inherit nice API much like AbstractMap provides lots of sugar over a
> spartan
> Map implementation.

Not sure what you mean by "higher-order"... but agreed that Colt leave
something to be desired.  Are there any interfaces or abstract classes
written up?

> I also think it would help us to have a nice syntax for some algorithms.
>  I
> have lately been working with groovy and almost have some support for very
> simple map-reduce programming.  Since Groovy supports infix overloading,
> that would allow us to have a very simple language for writing matrix like
> code that inter-operates very well with the Java side.  I will write more
> as
> that becomes available.

Didn't know about groovy.  Looks interesting.  Thanks for the pointer.  Will
be interested to hear where you go with it.


  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message