Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mikolalysenko/csr-matrix
Compressed sparse row matrix for node.js
https://github.com/mikolalysenko/csr-matrix
Last synced: about 2 months ago
JSON representation
Compressed sparse row matrix for node.js
- Host: GitHub
- URL: https://github.com/mikolalysenko/csr-matrix
- Owner: mikolalysenko
- Created: 2013-03-13T18:29:55.000Z (almost 12 years ago)
- Default Branch: master
- Last Pushed: 2016-05-13T23:58:07.000Z (over 8 years ago)
- Last Synced: 2024-10-20T14:27:40.047Z (2 months ago)
- Language: JavaScript
- Size: 9.77 KB
- Stars: 19
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
csr-matrix
===========
A very minimal [incremental compressed sparse row](http://en.wikipedia.org/wiki/Sparse_matrix#Compressed_sparse_row_.28CSR_or_CRS.29) matrix library for JavaScript.# Install
```
npm i csr-matrix
```# Example
```javascript
var dict = {}
dict[[1,2]] = 1
dict[[0,0]] = 2.5
dict[[3,4]] = 5var CSRMatrix = require("csr-matrix")
var M = CSRMatrix.fromDictionary(dict, 4, 5)
console.log(M.apply([1,2,3,4,5], []))
```# API
CSRMatrices are optimized for exactly one thing: fast matrix-vector multiplies. The way you do this is by calling the following method:## Constructors
There are several ways to create csr-matrices. The most direct way to do this is to just call the constructor yourself:#### `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](https://github.com/scijs/ndarray) into a csr matrix## 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 multiplied
* `result` is an optional array which gets the result. If not specified, a new vector gets allocatedReturns the resulting product
#### `matrix.transpose()`
Returns the transpose of the matrix#### `matrix.rowCount`
Returns the number of rows#### `matrix.columnCount`
Returns the number of columns#### `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(out)`
Converts matrix into ndarray* `out` is the output ndarray
# Credits
(c) 2013-2015 Mikola Lysenko. BSD