;Related tasks:
* [[Arrays]]
* [[Vector]]
* [[Matrices]]
** [[Determinant and permanent]]
*** [[wp:Laplace_expansion|Laplace expansion]]
*** [[wp:Leibniz_formula_for_determinants|Leibniz fomula]]
*** [[wp:Bareiss_algorithm|Bareiss algorithm]]
*** [[wp:LU_decomposition|LU-decomposition]]
*** [[wp:Strassen_algorithm|Strassen algorithm]]
*** [[wp:Coppersmith%E2%80%93Winograd_algorithm|Coppersmith-Winograd algorithm]]
*** [[wp:Jean-Fran%C3%A7ois_Le_Gall|Le Gall algorithm]]
*** [https://codegolf.stackexchange.com/questions/236835/birds-algorithm-for-computing-determinants Bird's algorithm]
* [[Bivector]]
* [[Antivector]]
* [[Tensor]]
* [[Quaternion]]
* [[Rotor]]
* [[Motor]]
* [[Sedenion]]
* [[Octonion]]
For a given matrix, return the [[wp:Determinant|determinant]] and the [[wp:Permanent_(mathematics)|permanent]] of the matrix.
For a matrix of [[wp:Orthonormal_basis|orthonormal basis]] vectors, return the [[wp:Levi-Civita_symbol|Levi-Civita symbol]] of the orthonormal basis vector permutation.
The determinant is given by
::
while the permanent is given by
::
In both cases the sum is over the permutations of the permutations of 1, 2, ..., ''n''. (A permutation's sign is 1 if there are an even number of inversions and -1 otherwise; see [[wp:Parity of a permutation|parity of a permutation]].)
;C.f.
* [[wp:Computational_complexity_of_matrix_multiplication#Matrix_inversion,_determinant_and_Gaussian_elimination|Computational complexity of matrix multiplication]]
* [https://dai.fmph.uniba.sk/courses/FPRO/bird_pearls.pdf Richard Bird Pearls]
* [https://dai.fmph.uniba.sk/courses/FPRO/ Funkcionálne programovanie]
* [[Permutations by swapping]]