I have the following Code for forming matrix and finding its determinant :-
function matrix(m, n, arr) {
var result = {};
for (t = 1; t <= m; t++) {
result[t] = {};
}
for (i = 1; i <= m; i++)
for (j = 1; j <= n; j++) result[i][j] = arr[n * (i - 1) + j - 1];
return { result: result, m: m, n: n };
}
function det(mat) {
if (mat.m == mat.n) {
if (mat.m != 1) {
var k = mat.m;
var result = 0;
var temp = [];
for (i = 1; i <= k; i++) {
result +=
(-1) ** (1 + i) *
mat.result[1][i] *
function() {
for (t = 1; t <= k; t++) {
for (p = 1; p <= k; p++) {
if (t != 1 || p != i) {
temp.push(mat.result[t][p]);
}
return det(matrix(k - 1, k - 1, temp));
}
}
};
}
} else {
return mat.result[1][1];
}
return result;
} else {
return;
}
}
On performing function like det(matrix(2,2,[2,3,1,4]))
it returns NaN.
Please help me resolve the unexpected result.