UNPKG

mathjs

Version:

Math.js is an extensive math library for JavaScript and Node.js. It features a flexible expression parser with support for symbolic computation, comes with a large set of built-in functions and constants, and offers an integrated solution to work with dif

40 lines (36 loc) 854 B
'use strict' function factory () { /** * Permutes a vector; x = P'b. In MATLAB notation, x(p)=b. * * @param {Array} p The permutation vector of length n. null value denotes identity * @param {Array} b The input vector * * @return {Array} The output vector x = P'b */ function csIpvec (p, b) { // vars let k const n = b.length const x = [] // check permutation vector was provided, p = null denotes identity if (p) { // loop vector for (k = 0; k < n; k++) { // apply permutation x[p[k]] = b[k] } } else { // loop vector for (k = 0; k < n; k++) { // x[i] = b[i] x[k] = b[k] } } return x } return csIpvec } exports.name = 'csIpvec' exports.path = 'algebra.sparse' exports.factory = factory