Function libwalrus::permanent_quad(std::vector<std::complex<double>>&)

Function Documentation

std::complex<double> libwalrus::permanent_quad(std::vector<std::complex<double>> &mat)

Returns the permanent of a matrix using the Ryser’s algo with Gray code ordering

This is a wrapper around the templated function libwalrus::permanent for Python integration. It accepts and returns complex double numeric types, and returns sensible values for empty and non-even matrices.

In addition, this wrapper function automatically casts all matrices to type complex<long double>, allowing for greater precision than supported by Python and NumPy.

Return

the permanent

Parameters
  • mat: vector representing the flattened matrix