I've added the PermRowCol Algorithm to CXCircuit class (issue #12 ).
The PR includes:
CXCircuit creation from a parity matrix using PermRowCol. The code is structured to make it easy to replace the algorithm with another using the method parameter.
Unittests for synthesis both exact and up-to-permutation by comparing the original matrix to the matrix of the synthesized circuit.
The CXCircuit can generate a parity matrix from itself. Whether the parities are stored row-wise or column-wise is adjustable and the PermRowCol algorithm works in both cases. The default is row-wise, which corresponds to most literature, except for the PermRowCol paper itself.
Unittest to check if these representations are each other's transpose.
The Steiner-tree traversal in PermRowCol is BFS such that the gates are parallelized as much as possible.
I've added the PermRowCol Algorithm to CXCircuit class (issue #12 ). The PR includes:
method
parameter.