laplace-determinant

recursive determinant computation using Laplace expansion

Usage

Signature is (data [, scalar] [, order]) where:

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.

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.

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.

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