isomatch
|
Classes | |
class | Permutation |
class | TooManyPermutations |
Typedefs | |
typedef std::vector< std::vector< CircuitTree * > > | SigSplit |
typedef std::unordered_map< sign_t, std::set< CircuitTree * > > | SigSplitMapped |
Functions | |
int | factorial (int k) |
Computes k! More... | |
sign_t | wireSignature (WireId *wire, int accuracy=-1) |
Computes the signature of a wire with given accuracy. More... | |
void | splitOnSig (const vector< CircuitTree *> circuits, SigSplit &splitted, std::vector< sign_t > &signatures, int maxPermutations, int accuracy) |
bool | equalSizes (const SigSplit &fst, const SigSplit &snd) |
bool | equalWithPermutation (const SigSplit &leftSplit, const SigSplit &rightSplit, const Permutation &perm) |
bool | equal (CircuitGroup *left, CircuitGroup *right) |
void | splitOnSig (const std::vector< CircuitTree *> circuits, SigSplit &splitted, std::vector< sign_t > &signatures, int maxPermutations=-1, int accuracy=-1) |
Contains a few useful functions to check whether a group is equal to another group (formally). Included for CircuitGroup
.
typedef std::vector<std::vector<CircuitTree*> > groupEquality::SigSplit |
typedef std::unordered_map<sign_t, std::set<CircuitTree*> > groupEquality::SigSplitMapped |
bool groupEquality::equal | ( | CircuitGroup * | left, |
CircuitGroup * | right | ||
) |
Checks that both fst
and snd
have the same keys, and sets of equal sizes for each key.
bool groupEquality::equalWithPermutation | ( | const SigSplit & | leftSplit, |
const SigSplit & | rightSplit, | ||
const Permutation & | perm | ||
) |
int groupEquality::factorial | ( | int | k | ) |
Computes k!
void groupEquality::splitOnSig | ( | const std::vector< CircuitTree *> | circuits, |
SigSplit & | splitted, | ||
std::vector< sign_t > & | signatures, | ||
int | maxPermutations = -1 , |
||
int | accuracy = -1 |
||
) |
Splits a set of circuits into sets of circuits with the same signatures
circuits | The wires to consider |
splitted | A reference to the vector that will be filled |
signatures | Will be filled with the list of signatures of each chunk from splitted |
maxPermutations | Stop if the number of permutations exceeds this parameter, and raise TooManyPermutations |
accuracy | Level of accuracy of the signature function, or -1 for the default value |
void groupEquality::splitOnSig | ( | const vector< CircuitTree *> | circuits, |
SigSplit & | splitted, | ||
std::vector< sign_t > & | signatures, | ||
int | maxPermutations, | ||
int | accuracy | ||
) |