1 | <a name="SparseMatrix"></a>
|
2 | ## SparseMatrix
|
3 | Sparse Matrix implementation. This type implements a Compressed Column Storage format
|
4 | for sparse matrices.
|
5 |
|
6 | * _instance_
|
7 | * [.storage()](#SparseMatrix+storage) ⇒ <code>string</code>
|
8 | * [.datatype()](#SparseMatrix+datatype) ⇒ <code>string</code>
|
9 | * [.create(data, [datatype])](#SparseMatrix+create)
|
10 | * [.density()](#SparseMatrix+density) ⇒ <code>number</code>
|
11 | * [.subset(index, [replacement], [defaultValue])](#SparseMatrix+subset)
|
12 | * [.get(index)](#SparseMatrix+get) ⇒ <code>\*</code>
|
13 | * [.set(index, value, [defaultValue])](#SparseMatrix+set) ⇒ <code>[SparseMatrix](#SparseMatrix)</code>
|
14 | * [.resize(size, [defaultValue], [copy])](#SparseMatrix+resize) ⇒ <code>Matrix</code>
|
15 | * [.clone()](#SparseMatrix+clone) ⇒ <code>[SparseMatrix](#SparseMatrix)</code>
|
16 | * [.size()](#SparseMatrix+size) ⇒ <code>Array.<number></code>
|
17 | * [.map(callback, [skipZeros])](#SparseMatrix+map) ⇒ <code>[SparseMatrix](#SparseMatrix)</code>
|
18 | * [.forEach(callback, [skipZeros])](#SparseMatrix+forEach)
|
19 | * [.toArray()](#SparseMatrix+toArray) ⇒ <code>Array</code>
|
20 | * [.valueOf()](#SparseMatrix+valueOf) ⇒ <code>Array</code>
|
21 | * [.format([options])](#SparseMatrix+format) ⇒ <code>string</code>
|
22 | * [.toString()](#SparseMatrix+toString) ⇒ <code>string</code>
|
23 | * [.toJSON()](#SparseMatrix+toJSON) ⇒ <code>Object</code>
|
24 | * [.diagonal([k])](#SparseMatrix+diagonal) ⇒ <code>Matrix</code>
|
25 | * [.swapRows(i, j)](#SparseMatrix+swapRows) ⇒ <code>Matrix</code>
|
26 | * _static_
|
27 | * [.fromJSON(json)](#SparseMatrix.fromJSON) ⇒ <code>[SparseMatrix](#SparseMatrix)</code>
|
28 | * [.diagonal(size, value, [k], [datatype])](#SparseMatrix.diagonal) ⇒ <code>[SparseMatrix](#SparseMatrix)</code>
|
29 |
|
30 | <a name="SparseMatrix+storage"></a>
|
31 | ### sparseMatrix.storage() ⇒ <code>string</code>
|
32 | Get the storage format used by the matrix.
|
33 |
|
34 | Usage:
|
35 | ```js
|
36 | const format = matrix.storage() // retrieve storage format
|
37 | ```
|
38 |
|
39 | **Kind**: instance method of <code>[SparseMatrix](#SparseMatrix)</code>
|
40 | **Returns**: <code>string</code> - The storage format.
|
41 | <a name="SparseMatrix+datatype"></a>
|
42 | ### sparseMatrix.datatype() ⇒ <code>string</code>
|
43 | Get the datatype of the data stored in the matrix.
|
44 |
|
45 | Usage:
|
46 | ```js
|
47 | const format = matrix.datatype() // retrieve matrix datatype
|
48 | ```
|
49 |
|
50 | **Kind**: instance method of <code>[SparseMatrix](#SparseMatrix)</code>
|
51 | **Returns**: <code>string</code> - The datatype.
|
52 | <a name="SparseMatrix+create"></a>
|
53 | ### sparseMatrix.create(data, [datatype])
|
54 | Create a new SparseMatrix
|
55 |
|
56 | **Kind**: instance method of <code>[SparseMatrix](#SparseMatrix)</code>
|
57 |
|
58 | | Param | Type |
|
59 | | --- | --- |
|
60 | | data | <code>Array</code> |
|
61 | | [datatype] | <code>string</code> |
|
62 |
|
63 | <a name="SparseMatrix+density"></a>
|
64 | ### sparseMatrix.density() ⇒ <code>number</code>
|
65 | Get the matrix density.
|
66 |
|
67 | Usage:
|
68 | ```js
|
69 | const density = matrix.density() // retrieve matrix density
|
70 | ```
|
71 |
|
72 | **Kind**: instance method of <code>[SparseMatrix](#SparseMatrix)</code>
|
73 | **Returns**: <code>number</code> - The matrix density.
|
74 | <a name="SparseMatrix+subset"></a>
|
75 | ### sparseMatrix.subset(index, [replacement], [defaultValue])
|
76 | Get a subset of the matrix, or replace a subset of the matrix.
|
77 |
|
78 | Usage:
|
79 | ```js
|
80 | const subset = matrix.subset(index) // retrieve subset
|
81 | const value = matrix.subset(index, replacement) // replace subset
|
82 | ```
|
83 |
|
84 | **Kind**: instance method of <code>[SparseMatrix](#SparseMatrix)</code>
|
85 |
|
86 | | Param | Type | Default | Description |
|
87 | | --- | --- | --- | --- |
|
88 | | index | <code>Index</code> | | |
|
89 | | [replacement] | <code>Array</code> | <code>Maytrix</code> | <code>\*</code> | | |
|
90 | | [defaultValue] | <code>\*</code> | <code>0</code> | Default value, filled in on new entries when the matrix is resized. If not provided, new matrix elements will be filled with zeros. |
|
91 |
|
92 | <a name="SparseMatrix+get"></a>
|
93 | ### sparseMatrix.get(index) ⇒ <code>\*</code>
|
94 | Get a single element from the matrix.
|
95 |
|
96 | **Kind**: instance method of <code>[SparseMatrix](#SparseMatrix)</code>
|
97 | **Returns**: <code>\*</code> - value
|
98 |
|
99 | | Param | Type | Description |
|
100 | | --- | --- | --- |
|
101 | | index | <code>Array.<number></code> | Zero-based index |
|
102 |
|
103 | <a name="SparseMatrix+set"></a>
|
104 | ### sparseMatrix.set(index, value, [defaultValue]) ⇒ <code>[SparseMatrix](#SparseMatrix)</code>
|
105 | Replace a single element in the matrix.
|
106 |
|
107 | **Kind**: instance method of <code>[SparseMatrix](#SparseMatrix)</code>
|
108 | **Returns**: <code>[SparseMatrix](#SparseMatrix)</code> - self
|
109 |
|
110 | | Param | Type | Description |
|
111 | | --- | --- | --- |
|
112 | | index | <code>Array.<number></code> | Zero-based index |
|
113 | | value | <code>\*</code> | |
|
114 | | [defaultValue] | <code>\*</code> | Default value, filled in on new entries when the matrix is resized. If not provided, new matrix elements will be set to zero. |
|
115 |
|
116 | <a name="SparseMatrix+resize"></a>
|
117 | ### sparseMatrix.resize(size, [defaultValue], [copy]) ⇒ <code>Matrix</code>
|
118 | Resize the matrix to the given size. Returns a copy of the matrix when
|
119 | `copy=true`, otherwise return the matrix itself (resize in place).
|
120 |
|
121 | **Kind**: instance method of <code>[SparseMatrix](#SparseMatrix)</code>
|
122 | **Returns**: <code>Matrix</code> - The resized matrix
|
123 |
|
124 | | Param | Type | Default | Description |
|
125 | | --- | --- | --- | --- |
|
126 | | size | <code>Array.<number></code> | | The new size the matrix should have. |
|
127 | | [defaultValue] | <code>\*</code> | <code>0</code> | Default value, filled in on new entries. If not provided, the matrix elements will be filled with zeros. |
|
128 | | [copy] | <code>boolean</code> | | Return a resized copy of the matrix |
|
129 |
|
130 | <a name="SparseMatrix+clone"></a>
|
131 | ### sparseMatrix.clone() ⇒ <code>[SparseMatrix](#SparseMatrix)</code>
|
132 | Create a clone of the matrix
|
133 |
|
134 | **Kind**: instance method of <code>[SparseMatrix](#SparseMatrix)</code>
|
135 | **Returns**: <code>[SparseMatrix](#SparseMatrix)</code> - clone
|
136 | <a name="SparseMatrix+size"></a>
|
137 | ### sparseMatrix.size() ⇒ <code>Array.<number></code>
|
138 | Retrieve the size of the matrix.
|
139 |
|
140 | **Kind**: instance method of <code>[SparseMatrix](#SparseMatrix)</code>
|
141 | **Returns**: <code>Array.<number></code> - size
|
142 | <a name="SparseMatrix+map"></a>
|
143 | ### sparseMatrix.map(callback, [skipZeros]) ⇒ <code>[SparseMatrix](#SparseMatrix)</code>
|
144 | Create a new matrix with the results of the callback function executed on
|
145 | each entry of the matrix.
|
146 |
|
147 | **Kind**: instance method of <code>[SparseMatrix](#SparseMatrix)</code>
|
148 | **Returns**: <code>[SparseMatrix](#SparseMatrix)</code> - matrix
|
149 |
|
150 | | Param | Type | Description |
|
151 | | --- | --- | --- |
|
152 | | callback | <code>function</code> | The callback function is invoked with three parameters: the value of the element, the index of the element, and the Matrix being traversed. |
|
153 | | [skipZeros] | <code>boolean</code> | Invoke callback function for non-zero values only. |
|
154 |
|
155 | <a name="SparseMatrix+forEach"></a>
|
156 | ### sparseMatrix.forEach(callback, [skipZeros])
|
157 | Execute a callback function on each entry of the matrix.
|
158 |
|
159 | **Kind**: instance method of <code>[SparseMatrix](#SparseMatrix)</code>
|
160 |
|
161 | | Param | Type | Description |
|
162 | | --- | --- | --- |
|
163 | | callback | <code>function</code> | The callback function is invoked with three parameters: the value of the element, the index of the element, and the Matrix being traversed. |
|
164 | | [skipZeros] | <code>boolean</code> | Invoke callback function for non-zero values only. |
|
165 |
|
166 | <a name="SparseMatrix+toArray"></a>
|
167 | ### sparseMatrix.toArray() ⇒ <code>Array</code>
|
168 | Create an Array with a copy of the data of the SparseMatrix
|
169 |
|
170 | **Kind**: instance method of <code>[SparseMatrix](#SparseMatrix)</code>
|
171 | **Returns**: <code>Array</code> - array
|
172 | <a name="SparseMatrix+valueOf"></a>
|
173 | ### sparseMatrix.valueOf() ⇒ <code>Array</code>
|
174 | Get the primitive value of the SparseMatrix: a two dimensions array
|
175 |
|
176 | **Kind**: instance method of <code>[SparseMatrix](#SparseMatrix)</code>
|
177 | **Returns**: <code>Array</code> - array
|
178 | <a name="SparseMatrix+format"></a>
|
179 | ### sparseMatrix.format([options]) ⇒ <code>string</code>
|
180 | Get a string representation of the matrix, with optional formatting options.
|
181 |
|
182 | **Kind**: instance method of <code>[SparseMatrix](#SparseMatrix)</code>
|
183 | **Returns**: <code>string</code> - str
|
184 |
|
185 | | Param | Type | Description |
|
186 | | --- | --- | --- |
|
187 | | [options] | <code>Object</code> | <code>number</code> | <code>function</code> | Formatting options. See lib/utils/number:format for a description of the available options. |
|
188 |
|
189 | <a name="SparseMatrix+toString"></a>
|
190 | ### sparseMatrix.toString() ⇒ <code>string</code>
|
191 | Get a string representation of the matrix
|
192 |
|
193 | **Kind**: instance method of <code>[SparseMatrix](#SparseMatrix)</code>
|
194 | **Returns**: <code>string</code> - str
|
195 | <a name="SparseMatrix+toJSON"></a>
|
196 | ### sparseMatrix.toJSON() ⇒ <code>Object</code>
|
197 | Get a JSON representation of the matrix
|
198 |
|
199 | **Kind**: instance method of <code>[SparseMatrix](#SparseMatrix)</code>
|
200 | <a name="SparseMatrix+diagonal"></a>
|
201 | ### sparseMatrix.diagonal([k]) ⇒ <code>Matrix</code>
|
202 | Get the kth Matrix diagonal.
|
203 |
|
204 | **Kind**: instance method of <code>[SparseMatrix](#SparseMatrix)</code>
|
205 | **Returns**: <code>Matrix</code> - The matrix vector with the diagonal values.
|
206 |
|
207 | | Param | Type | Default | Description |
|
208 | | --- | --- | --- | --- |
|
209 | | [k] | <code>number</code> | <code>BigNumber</code> | <code>0</code> | The kth diagonal where the vector will retrieved. |
|
210 |
|
211 | <a name="SparseMatrix+swapRows"></a>
|
212 | ### sparseMatrix.swapRows(i, j) ⇒ <code>Matrix</code>
|
213 | Swap rows i and j in Matrix.
|
214 |
|
215 | **Kind**: instance method of <code>[SparseMatrix](#SparseMatrix)</code>
|
216 | **Returns**: <code>Matrix</code> - The matrix reference
|
217 |
|
218 | | Param | Type | Description |
|
219 | | --- | --- | --- |
|
220 | | i | <code>number</code> | Matrix row index 1 |
|
221 | | j | <code>number</code> | Matrix row index 2 |
|
222 |
|
223 | <a name="SparseMatrix.fromJSON"></a>
|
224 | ### SparseMatrix.fromJSON(json) ⇒ <code>[SparseMatrix](#SparseMatrix)</code>
|
225 | Generate a matrix from a JSON object
|
226 |
|
227 | **Kind**: static method of <code>[SparseMatrix](#SparseMatrix)</code>
|
228 |
|
229 | | Param | Type | Description |
|
230 | | --- | --- | --- |
|
231 | | json | <code>Object</code> | An object structured like `{"mathjs": "SparseMatrix", "values": [], "index": [], "ptr": [], "size": []}`, where mathjs is optional |
|
232 |
|
233 | <a name="SparseMatrix.diagonal"></a>
|
234 | ### SparseMatrix.diagonal(size, value, [k], [datatype]) ⇒ <code>[SparseMatrix](#SparseMatrix)</code>
|
235 | Create a diagonal matrix.
|
236 |
|
237 | **Kind**: static method of <code>[SparseMatrix](#SparseMatrix)</code>
|
238 |
|
239 | | Param | Type | Default | Description |
|
240 | | --- | --- | --- | --- |
|
241 | | size | <code>Array</code> | | The matrix size. |
|
242 | | value | <code>number</code> | <code>Array</code> | <code>Matrix</code> | | The values for the diagonal. |
|
243 | | [k] | <code>number</code> | <code>BigNumber</code> | <code>0</code> | The kth diagonal where the vector will be filled in. |
|
244 | | [datatype] | <code>string</code> | | The Matrix datatype, values must be of this datatype. |
|
245 |
|