Permanent-functions {BosonSampling} R Documentation

## Functions for evaluating matrix permanents

### Description

These three functions are used in the classical Boson Sampling problem

### Usage

```cxPerm(A)
rePerm(B)
cxPermMinors(C)
```

### Arguments

 `A` a square complex matrix. `B` a square real matrix. `C` a rectangular complex matrix where `nrow(C) = ncol(C) + 1`.

### Details

Permanents are evaluated using Glynn's formula (equivalently that of Nijenhuis and Wilf (1978))

### Value

`cxPerm(A)` returns a complex number: the permanent of the complex matrix `A`.
`rePerm(B)` returns a real number: the permanent of the real matrix `B`.
`cxPermMinors(C)` returns a complex vector of length `ncol(C)+1`: the permanents of all `ncol(C)`-dimensional square matrices constructed by removing individual rows from `C`.

### References

Glynn, D.G. (2010) The permanent of a square matrix. European Journal of Combinatorics, 31(7):1887–1891.
Nijenhuis, A. and Wilf, H. S. (1978). Combinatorial algorithms: for computers and calculators. Academic press.

### Examples

```  set.seed(7)
n <- 20
A <- randomUnitary(n)
cxPerm(A)
#
B <- Re(A)
rePerm(B)
#
C <- A[,-n]
v <- cxPermMinors(C)
#
# Check Laplace expansion by sub-permanents
c(cxPerm(A),sum(v*A[,n]))
```

[Package BosonSampling version 0.1.3 Index]