Woohoo! Awesome, I've forked you, and I'll start digging in soon. At a high level, this looks great. Not so sure about so many operators - I don't know that we really need to have such a weighty syntax (a %*% b), java devs are going to be much more familiar with simply doing a.times(b), and I don't think we should keep them from that.
Quick question: I had a build error on your branch: [INFO] --- maven-scala-plugin:2.15.2:compile (default) @ mahout-math-scala --- [INFO] Checking for multiple versions of scala [WARNING] Expected all dependencies to require Scala version: 2.9.3 [WARNING] org.apache.mahout:mahout-math-scala:0.9-SNAPSHOT requires scala version: 2.9.3 [WARNING] org.scalatest:scalatest_2.9.2:1.9.1 requires scala version: 2.9.2 [WARNING] Multiple versions of scala libraries detected! [INFO] includes = [**/*.scala,**/*.java,] [INFO] excludes = [] [INFO] /Users/jake/open_src/gitrepo/mahout-twitter/math-scala/src/main/scala:-1: info: compiling [INFO] Compiling 5 source files to /Users/jake/open_src/gitrepo/mahout-twitter/math-scala/target/classes at 1374825106823 Downloading: http://artifactory.local.twitter.com/repo/org/scala-lang/scala-compiler/2.9.3/scala-compiler-2.9.3.jar Downloaded: http://artifactory.local.twitter.com/repo/org/scala-lang/scala-compiler/2.9.3/scala-compiler-2.9.3.jar(11260 KB at 216.2 KB/sec) Downloading: http://artifactory.local.twitter.com/repo/org/scala-lang/scala-compiler/2.9.3/scala-compiler-2.9.3.pom Downloaded: http://artifactory.local.twitter.com/repo/org/scala-lang/scala-compiler/2.9.3/scala-compiler-2.9.3.pom(2 KB at 1.6 KB/sec) [ERROR] /Users/jake/open_src/gitrepo/mahout-twitter/math-scala/src/main/scala/mahout/math/DiagonalOps.scala:14: error: value rightMult is not a member of org.apache.mahout.math.DiagonalMatrix [INFO] def :%*%(that: Matrix) = m.rightMult(that) [INFO] ^ [ERROR] /Users/jake/open_src/gitrepo/mahout-twitter/math-scala/src/main/scala/mahout/math/DiagonalOps.scala:16: error: value leftMult is not a member of org.apache.mahout.math.DiagonalMatrix [INFO] def %*%:(that: Matrix) = m.leftMult(that) [INFO] ^ [ERROR] two errors found [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ On Fri, Jul 26, 2013 at 12:07 AM, Dmitriy Lyubimov <[email protected]>wrote: > Hello, > > i would like to put for discussion a proposal of adding a module > mathout-math-scala to Mahout containing various scala DSLs for Mahout > project. > > Here is what i have got so far : > > http://weatheringthrutechdays.blogspot.com/2013/07/scala-dsl-for-mahout-in-core-linear.html > > for now it is in-core stuff only, but it can also be used to script out > driver pipelines for Mahout DRM and solvers. (Some code, in particular, > tests may look ugly at the moment). > > By proposing it as a part of Mahout, I of course pursue some selfish goals: > since the stuff covers a lot of Mahout matrix APIs, if I have it away from > Mahout, i would be having hard time maintaining it in sync with Mahout as > the project morphs its apis. So I want to make sure that committers run my > tests too before committing new changes. > > (I am actually using this for spark-based solvers bsed on Mahout DRMs and > to make it more accessible to our data scientists to work with -- at some > point I hope to contribute spark ports of some Mahout work too). > > Respectfully, > -Dmitriy > -- -jake
