## DenseMatrix Dense Matrix implementation. This type implements an efficient Array format for dense matrices. * _instance_ * [.storage()](#DenseMatrix+storage) ⇒ string * [.datatype()](#DenseMatrix+datatype) ⇒ string * [.create(data, [datatype])](#DenseMatrix+create) * [.subset(index, [replacement], [defaultValue])](#DenseMatrix+subset) * [.get(index)](#DenseMatrix+get) ⇒ \* * [.set(index, value, [defaultValue])](#DenseMatrix+set) ⇒ DenseMatrix * [.resize(size, [defaultValue], [copy])](#DenseMatrix+resize) ⇒ Matrix * [.clone()](#DenseMatrix+clone) ⇒ DenseMatrix * [.size()](#DenseMatrix+size) ⇒ Array.<number> * [.map(callback)](#DenseMatrix+map) ⇒ DenseMatrix * [.forEach(callback)](#DenseMatrix+forEach) * [.toArray()](#DenseMatrix+toArray) ⇒ Array * [.valueOf()](#DenseMatrix+valueOf) ⇒ Array * [.format([options])](#DenseMatrix+format) ⇒ string * [.toString()](#DenseMatrix+toString) ⇒ string * [.toJSON()](#DenseMatrix+toJSON) ⇒ Object * [.diagonal([k])](#DenseMatrix+diagonal) ⇒ Array * [.swapRows(i, j)](#DenseMatrix+swapRows) ⇒ Matrix * _static_ * [.diagonal(size, value, [k], [defaultValue])](#DenseMatrix.diagonal) ⇒ DenseMatrix * [.fromJSON(json)](#DenseMatrix.fromJSON) ⇒ DenseMatrix * [.preprocess(data)](#DenseMatrix.preprocess) ⇒ Array ### denseMatrix.storage() ⇒ string Get the storage format used by the matrix. Usage: ```js const format = matrix.storage() // retrieve storage format ``` **Kind**: instance method of DenseMatrix **Returns**: string - The storage format. ### denseMatrix.datatype() ⇒ string Get the datatype of the data stored in the matrix. Usage: ```js const format = matrix.datatype() // retrieve matrix datatype ``` **Kind**: instance method of DenseMatrix **Returns**: string - The datatype. ### denseMatrix.create(data, [datatype]) Create a new DenseMatrix **Kind**: instance method of DenseMatrix | Param | Type | | --- | --- | | data | Array | | [datatype] | string | ### denseMatrix.subset(index, [replacement], [defaultValue]) Get a subset of the matrix, or replace a subset of the matrix. Usage: ```js const subset = matrix.subset(index) // retrieve subset const value = matrix.subset(index, replacement) // replace subset ``` **Kind**: instance method of DenseMatrix | Param | Type | Default | Description | | --- | --- | --- | --- | | index | Index | | | | [replacement] | Array | DenseMatrix| \* | | | | [defaultValue] | \* | 0 | Default value, filled in on new entries when the matrix is resized. If not provided, new matrix elements will be filled with zeros. | ### denseMatrix.get(index) ⇒ \* Get a single element from the matrix. **Kind**: instance method of DenseMatrix **Returns**: \* - value | Param | Type | Description | | --- | --- | --- | | index | Array.<number> | Zero-based index | ### denseMatrix.set(index, value, [defaultValue]) ⇒ DenseMatrix Replace a single element in the matrix. **Kind**: instance method of DenseMatrix **Returns**: DenseMatrix- self | Param | Type | Description | | --- | --- | --- | | index | Array.<number> | Zero-based index | | value | \* | | | [defaultValue] | \* | Default value, filled in on new entries when the matrix is resized. If not provided, new matrix elements will be left undefined. | ### denseMatrix.resize(size, [defaultValue], [copy]) ⇒ Matrix Resize the matrix to the given size. Returns a copy of the matrix when `copy=true`, otherwise return the matrix itself (resize in place). **Kind**: instance method of DenseMatrix **Returns**: Matrix - The resized matrix | Param | Type | Default | Description | | --- | --- | --- | --- | | size | Array.<number> | | The new size the matrix should have. | | [defaultValue] | \* | 0 | Default value, filled in on new entries. If not provided, the matrix elements will be filled with zeros. | | [copy] | boolean | | Return a resized copy of the matrix | ### denseMatrix.clone() ⇒ DenseMatrix Create a clone of the matrix **Kind**: instance method of DenseMatrix **Returns**: DenseMatrix- clone ### denseMatrix.size() ⇒ Array.<number> Retrieve the size of the matrix. **Kind**: instance method of DenseMatrix **Returns**: Array.<number> - size ### denseMatrix.map(callback) ⇒ DenseMatrix Create a new matrix with the results of the callback function executed on each entry of the matrix. **Kind**: instance method of DenseMatrix **Returns**: DenseMatrix- matrix | Param | Type | Description | | --- | --- | --- | | callback | function | The callback function is invoked with three parameters: the value of the element, the index of the element, and the Matrix being traversed. | ### denseMatrix.forEach(callback) Execute a callback function on each entry of the matrix. **Kind**: instance method of DenseMatrix | Param | Type | Description | | --- | --- | --- | | callback | function | The callback function is invoked with three parameters: the value of the element, the index of the element, and the Matrix being traversed. | ### denseMatrix.toArray() ⇒ Array Create an Array with a copy of the data of the DenseMatrix **Kind**: instance method of DenseMatrix **Returns**: Array - array ### denseMatrix.valueOf() ⇒ Array Get the primitive value of the DenseMatrix: a multidimensional array **Kind**: instance method of DenseMatrix **Returns**: Array - array ### denseMatrix.format([options]) ⇒ string Get a string representation of the matrix, with optional formatting options. **Kind**: instance method of DenseMatrix **Returns**: string - str | Param | Type | Description | | --- | --- | --- | | [options] | Object | number | function | Formatting options. See lib/utils/number:format for a description of the available options. | ### denseMatrix.toString() ⇒ string Get a string representation of the matrix **Kind**: instance method of DenseMatrix **Returns**: string - str ### denseMatrix.toJSON() ⇒ Object Get a JSON representation of the matrix **Kind**: instance method of DenseMatrix ### denseMatrix.diagonal([k]) ⇒ Array Get the kth Matrix diagonal. **Kind**: instance method of DenseMatrix **Returns**: Array - The array vector with the diagonal values. | Param | Type | Default | Description | | --- | --- | --- | --- | | [k] | number | BigNumber | 0 | The kth diagonal where the vector will retrieved. | ### denseMatrix.swapRows(i, j) ⇒ Matrix Swap rows i and j in Matrix. **Kind**: instance method of DenseMatrix **Returns**: Matrix - The matrix reference | Param | Type | Description | | --- | --- | --- | | i | number | Matrix row index 1 | | j | number | Matrix row index 2 | ### DenseMatrix.diagonal(size, value, [k], [defaultValue]) ⇒ DenseMatrix Create a diagonal matrix. **Kind**: static method of DenseMatrix | Param | Type | Default | Description | | --- | --- | --- | --- | | size | Array | | The matrix size. | | value | number | Array | | The values for the diagonal. | | [k] | number | BigNumber | 0 | The kth diagonal where the vector will be filled in. | | [defaultValue] | number | | The default value for non-diagonal | ### DenseMatrix.fromJSON(json) ⇒ DenseMatrix Generate a matrix from a JSON object **Kind**: static method of DenseMatrix | Param | Type | Description | | --- | --- | --- | | json | Object | An object structured like `{"mathjs": "DenseMatrix", data: [], size: []}`, where mathjs is optional | ### DenseMatrix.preprocess(data) ⇒ Array Preprocess data, which can be an Array or DenseMatrix with nested Arrays and Matrices. Replaces all nested Matrices with Arrays **Kind**: static method of DenseMatrix **Returns**: Array - data | Param | Type | | --- | --- | | data | Array |