Mercurial > hg > may
changeset 237:601dbfcf949d sparse
A few fixes
author | Chris Cannam |
---|---|
date | Sun, 19 May 2013 22:21:47 +0100 |
parents | ccca84efa36a |
children | 0c86d9284f20 |
files | yetilab/matrix/matrix.yeti |
diffstat | 1 files changed, 10 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/yetilab/matrix/matrix.yeti Sun May 19 22:16:02 2013 +0100 +++ b/yetilab/matrix/matrix.yeti Sun May 19 22:21:47 2013 +0100 @@ -31,14 +31,14 @@ rows = if major > 0 then vec.length c[0] else 0 fi, columns = major, }; - SparseCSR { values, indices, pointers, cols }: + SparseCSR { values, indices, pointers, extent }: { rows = (length pointers) - 1, - columns = cols + columns = extent }; - SparseCSC { values, indices, pointers, rows }: + SparseCSC { values, indices, pointers, extent }: { - rows, + rows = extent, columns = (length pointers) - 1 }; esac; @@ -151,19 +151,21 @@ _: []; esac; case m of - SparseCSC { values, indices, pointers, rows }: + SparseCSC { values, indices, pointers, extent }: enumerate (vec.list values) indices (list pointers) 0 0; - SparseCSR { values, indices, pointers, rows }: + SparseCSR { values, indices, pointers, extent }: map do { i, j, v }: { i = j, j = i, v } done (enumerate (vec.list values) indices (list pointers) 0 0); + _: []; esac); makeSparse type data = +//!!! not implemented case type of RowMajor (): - SparseCSR { values = vec.zeros 0, indices = array [], pointers = array [] }; + SparseCSR { values = vec.zeros 0, indices = array [], pointers = array [], extent = 0 }; ColMajor (): - SparseCSC { values = vec.zeros 0, indices = array [], pointers = array [] }; + SparseCSC { values = vec.zeros 0, indices = array [], pointers = array [], extent = 0 }; esac; constMatrix n = generate do row col: n done;