Merge pull request #1031 from mdaiter/optimizeLookupTableBtor

Optimize numberOfPermutations
This commit is contained in:
Clifford Wolf 2019-05-23 13:52:48 +02:00 committed by GitHub
commit ca46947354
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 4 additions and 6 deletions

View File

@ -320,12 +320,10 @@ class SubCircuit::SolverWorker
static int numberOfPermutations(const std::vector<std::string> &list)
{
int numPermutations = 1;
for (int i = 0; i < int(list.size()); i++) {
assert(numPermutations < maxPermutationsLimit);
numPermutations *= i+1;
}
return numPermutations;
constexpr size_t mappedPermutationsSize = 10;
constexpr int mappedPermutations[mappedPermutationsSize] = {1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880};
assert(list.size() < mappedPermutationsSize);
return mappedPermutations[list.size()];
}
static void permutateVectorToMap(std::map<std::string, std::string> &map, const std::vector<std::string> &list, int idx)