diff --git a/src/map/if/acd/ac_decomposition.hpp b/src/map/if/acd/ac_decomposition.hpp index 55097a453..8d5ddb5c4 100644 --- a/src/map/if/acd/ac_decomposition.hpp +++ b/src/map/if/acd/ac_decomposition.hpp @@ -512,17 +512,16 @@ private: } while ( combinations_offset_next( free_set_size, offset, pComb, pInvPerm, tt ) ); std::array res_perm; + for ( uint32_t i = 0; i < num_vars; ++i ) + { + res_perm[i] = permutations[bestPerm[i]]; + } if ( best_cost > ( 1 << ( ps.lut_size - free_set_size ) ) ) { return std::make_tuple( local_best_tt, res_perm, UINT32_MAX ); } - for ( uint32_t i = 0; i < num_vars; ++i ) - { - res_perm[i] = permutations[bestPerm[i]]; - } - return std::make_tuple( local_best_tt, res_perm, best_cost ); } @@ -544,7 +543,11 @@ private: } /* enumerate combinations */ - std::array res_perm; + std::array res_perm; + for ( uint32_t i = 0; i < num_vars; ++i ) + { + res_perm[i] = permutations[pComb[i]]; + } do {