[
https://issues.apache.org/jira/browse/MAHOUT-1691?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14496987#comment-14496987
]
Dmitriy Lyubimov edited comment on MAHOUT-1691 at 4/15/15 9:03 PM:
-------------------------------------------------------------------
well here's the thing (at least the way i read in w.r.t. R ):
{code}
val a = dense((0,0),(1,1))
val b = a
b(0,0) = 5 // clone on write
a(0,0)==0 // must still be true
{code}
problem the way i see it is that I don't know how to instrument the reference
assignment so that it knows a difference between operations invoked on
reference a vs. b
was (Author: dlyubimov):
well here's the thing (at least the way i read in w.r.t. R ):
{code}
val a = dense((0,0),(1,1))
val b = a
b(0,0) = 5 // clone on write
a(0,0)==0 // must still be true
{code}
problem the way i see it is that I don't know to instrument the assignment so
that it knows a difference on reference a vs. b
> iterable of vectors to matrix
> ------------------------------
>
> Key: MAHOUT-1691
> URL: https://issues.apache.org/jira/browse/MAHOUT-1691
> Project: Mahout
> Issue Type: Improvement
> Components: Math
> Affects Versions: 0.10.1
> Reporter: Alexey Grigorev
> Priority: Minor
> Labels: math, scala
>
> In Mahout scala bindings, instead of writing
> {code}
> val res = drmX.mapBlock(drmX.ncol) {
> case (keys, block) => {
> val copy = block.like
> copy := block.map(row => (row - mean) / std)
> (keys, copy)
> }
> }
> {code}
> I would like to be able to write
> {code}
> val res = drmX.mapBlock(drmX.ncol) {
> case (keys, block) => {
> keys -> block.map(row => (row - mean) / std)
> }
> }
> {code}
> Solution: add a method for implicit conversion from iterable to Matrix:
> {code}
> implicit def iterable2Matrix(that: Iterable[Vector]): Matrix = {
> val first = that.head
> val nrow = that.size
> val ncol = first.size
> val m = if (first.isDense) {
> new DenseMatrix(nrow, ncol)
> } else {
> new SparseRowMatrix(nrow, ncol)
> }
> that.zipWithIndex.foreach { case (row, idx) =>
> m.assignRow(idx.toInt, row)
> }
> m
> }
> {code}
> If it sounds nice, I can send a pull request with this implemented
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)