recursive determinant computation using Laplace expansion
npm install laplace-determinant> recursive determinant computation using Laplace expansion
Signature is (data [, scalar] [, order]) where:
* data is an array which lenght must be a square.
* scalar is an optional object used to compute determinant over any field (see below).
* order defaults to Math.sqrt(data.lenght) and is used internally by recursion sub step.
All code in the examples below is intended to be contained into a single file
Basic usage is to compute determinant of matrices of common numbers.
``javascript
var det = require('laplace-determinant')
// order = 1
det([10]) // 10
// order = 2
det([1, 0,
0, 1]) // 1
det([1, 1,
2, 1]) // -1
// order = 3
det([1, 0, 0,
0, 1, 0,
0, 0, 1]) // 1
det([0, 1, 0,
2, -1, 0,
0, 2, 1]) // -2
// order = 4
det([1, 0, 0, 0,
0, 1, 0, 0,
0, 0, 1, 0,
0, 0, 0, 1]) // 1
`
The algorithm is recursive, so any order is allowed. If you want to benchmark it and compare this package with other implementations, you are welcome!
Just contact me and I will happy to get this kind of useful feedback.
Optional scalar object defaults to common Real field, i.e.
`javascript`
scalar = {
addition : function (a, b) { return a + b },
multiplication: function (a, b) { return a * b },
negation : function (a) { return -a }
}
It is possible to compute determinant over any field. Consider for example the Boolean algebra.
`javascript
var boole = {
addition : function (a, b) { return a && b },
multiplication: function (a, b) { return a || b },
negation : function (a) { return !a }
}
det([true, false,
false, true], boole) // true
``