[
https://issues.apache.org/jira/browse/MAHOUT-1691?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14496913#comment-14496913
]
Anand Avati commented on MAHOUT-1691:
-------------------------------------
[~dlyubimov] can you provide some more details on what you were referring to
when you mentioned "instrument any writing code, such as setQuick()"?
COW in theory can be backed by anything, including hardware
acceleration/CUDA/whatever. I like COW for the fact that we can give
consistency in expectations / side-effects on what a user can / cannot do in a
mapBlock.
> 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)