@rayyamhk/matrix
Version:
A professional, comprehensive and high-performance library for you to manipulate matrices.
41 lines (33 loc) • 991 B
JavaScript
var empty = require('../../util/empty');
/**
* This callback generates each entry of a Matrix
* @callback generateCallback
* @param {number} i - The i-th row of Matrix
* @param {number} j - The j-th column of Matrix
* @returns {number} Entry of Matrix
*/
/**
* Generates a Matrix which entries are the returned value of callback function.
* @memberof Matrix
* @static
* @param {number} row - Number of rows of Matrix
* @param {number} col - Number of columns of Matrix
* @param {generateCallback} cb - Callback function which takes row and column as arguments
* and generates the corresponding entry
* @returns {Matrix} - Generated Matrix
*/
function generate(row, col, cb) {
var matrix = empty(row, col);
if (row === 0 || col === 0) {
return new this([]);
}
for (var i = 0; i < row; i++) {
for (var j = 0; j < col; j++) {
matrix[i][j] = cb(i, j);
}
}
return new this(matrix);
}
;
module.exports = generate;
;