|
void bdd_reorder |
( |
int |
method |
) |
|
Start dynamic reordering.
This function initiates dynamic reordering using the heuristic defined by method, which may be one of the following:
- BDD_REORDER_WIN2
Reordering using a sliding window of size 2. This algorithm swaps two adjacent variable blocks and if this results in more nodes then the two blocks are swapped back again. Otherwise the result is kept in the variable order. This is then repeated for all variable blocks. - BDD_REORDER_WIN2ITE
The same as above but the process is repeated until no further progress is done. Usually a fast and efficient method. - BDD_REORDER_WIN3
The same as above but with a window size of 3. - BDD_REORDER_WIN2ITE
The same as above but with a window size of 3. - BDD_REORDER_SIFT
Reordering where each block is moved through all possible positions. The best of these is then used as the new position. Potentially a very slow but good method. - BDD_REORDER_SIFTITE
The same as above but the process is repeated until no further progress is done. Can be extremely slow. - BDD_REORDER_RANDOM
Mostly used for debugging purpose, but may be usefull for others. Selects a random position for each variable.
- See also:
- bdd_autoreorder, bdd_reorder_verbose, bdd_addvarblock, bdd_clrvarblocks
|