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

Function Documentation

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

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

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

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

Return

the permanent

Parameters
  • mat: vector representing the flattened matrix