File Exchange

image thumbnail

Matrix Permanent Using Recursion

version 1.3.1.0 (19.6 KB) by Brian Butler
Computes the permanent of a matrix.

5 Downloads

Updated 23 Nov 2016

View License

Computes the permanent of a matrix using recursion. The technique is known as "expansion by minors" or the Laplace expansion. Two versions are included:
1) The MATLAB language routine permanent_mat() is about 8 times faster than equivalent native MATLAB function by Xu plus it has some optimization for sparse matrices.

2) The C language routine permanent()uses the CMEX interface to integrate into MATLAB. It is more than 500 times faster than the native MATLAB function by Xu. Also, I have found it to be faster than more advanced algorithms when the matrix is very sparse. One optimization available in C is that the matrix is kept in-place, in memory. Thus, less memory in consumed and less time is spent copying the matrix.

Cite As

Brian Butler (2019). Matrix Permanent Using Recursion (https://www.mathworks.com/matlabcentral/fileexchange/53434-matrix-permanent-using-recursion), MATLAB Central File Exchange. Retrieved .

Comments and Ratings (1)

Updates

1.3.1.0

Updated title and description. Very small change to permanent_mat.m to make it cleaner.

1.3.0.0

Add support for rectangular matrices (more columns than rows).

1.2.0.0

Fixes to supplementary files; no change to CMEX.

1.1.0.0

updated requirements.

1.1.0.0

typo in description

1.1.0.0

Updated cover figure.

1.1.0.0

* Added support for complex input matrices.
* Error checking for non-numeric and sparse format inputs.
* Return a permanent of 1 for 0x0 (empty matrix) input.
* Supplemental: added equivalent MATLAB functions and further speedtesting.

1.0.0.0

Added description to front graphic,

1.0.0.0

Added a figure.

1.0.0.0

Made note of small memory requirement.

1.0.0.0

Edited description

MATLAB Release Compatibility
Created with R2016a
Compatible with any release
Platform Compatibility
Windows macOS Linux