"use strict" var twoProduct = require("two-product") var robustSum = require("robust-sum") var robustDiff = require("robust-subtract") var robustScale = require("robust-scale") var NUM_EXPAND = 6 function cofactor(m, c) { var result = new Array(m.length-1) for(var i=1; i>1 return ["sum(", generateSum(expr.slice(0, m)), ",", generateSum(expr.slice(m)), ")"].join("") } } function makeProduct(a, b) { if(a.charAt(0) === "m") { if(b.charAt(0) === "w") { var toks = a.split("[") return ["w", b.substr(1), "m", toks[0].substr(1)].join("") } else { return ["prod(", a, ",", b, ")"].join("") } } else { return makeProduct(b, a) } } function sign(s) { if(s & 1 !== 0) { return "-" } return "" } function determinant(m) { if(m.length === 2) { return [["diff(", makeProduct(m[0][0], m[1][1]), ",", makeProduct(m[1][0], m[0][1]), ")"].join("")] } else { var expr = [] for(var i=0; i