csr-matrix
Compressed sparse row matrix class
npm install csr-matrix
Want to see pretty graphs? Log in now!
13 | downloads in the last week |
28 | downloads in the last month |
Last Published By | |
---|---|
Version | 0.1.4 last updated a year ago |
License | BSD |
Keywords | matrix, sparse, compressed, sparse, row, incremental, vector, multiply, linear, algebra, math |
Repository | git://github.com/mikolalysenko/csr-matrix.git (git) |
Dependencies | cwise, numeric, ndarray, lower-bound, almost-equal |
Dependents | differential, mikolalysenko-hoarders |
csr-matrix
A very minimal incremental compressed sparse row matrix library for JavaScript.
Usage
First install using npm:
npm install csr-matrix
Then you can create a matrix and apply it to a vector like this:
var dict = {}
dict[[1,2]] = 1
dict[[0,0]] = 2.5
dict[[3,4]] = 5
var CSRMatrix = require("csr-matrix")
var M = CSRMatrix.fromDictionary(dict, 4, 5)
console.log(M.apply([1,2,3,4,5]))
CSRMatrix
CSRMatrices are optimized for exactly one thing: fast matrix-vector multiplies. The way you do this is by calling the following method:
matrix.apply(vector[, result])
This computes the normal matrix-vector product, but is often much faster than a dense multiply since the matrix is stored in a compressed sparse format.
vector
is the vector to be multipliedresult
is an optional array which gets the result. If not specified, a new vector gets allocated
Returns the resulting product
matrix.transpose()
Returns the transpose of the matrix
matrix.get(i,j)
Returns the i,j-th entry of the matrix
matrix.rowCount
Returns the number of rows
matrix.columnCount
matrix.toList()
Converts matrix into a list format
matrix.toDictionary()
Converts matrix into hash table
matrix.toDense()
Converts matrix into array of arrays
matrix.toNDArray()
Converts matrix into ndarray
Constructors
There are several ways to create csr-matrices. The most direct way to do this is to just call the constructor yourself:
CSRMatrix(rows, row_ptrs, columns, column_ptrs, data)
Where:
rows
is an array of row indicesrow_ptrs
is an array of pointers to the start of each rowcolumns
is an array of column namescolumn_data
is a pointer to the start of each column's rundata
is an array of all the entries of the matrix stored left-to-right and top-to-bottom
Calling this method directly is not advised. Instead, you should use one of the more user-friendly constructors:
CSRMatrix.fromList(items[, nrows, ncols])
Turns an array of entries of the form [row, column, value]
into a sparse matrix. Note that if there are some zero rows or columns at the end of the matrix, you need to specify the number of rows/columns in the optional nrows/ncols arguments.
CSRMatrix.fromDictionary(dict[, nrows, ncols])
Converts a JavaScript object with entries for the form "row,column"
into a sparse matrix.
CSRMatrix.fromDense(mat)
Turns an array-of-arrays into a csr matrix
CSRMatrix.fromNDArray(ndarr)
Turns a 2D dimensional ndarray into a csr matrix
Credits
(c) 2013 Mikola Lysenko. BSD