int bdd_intaddvarblock ( int  first,
int  last,
int  fixed 
)

Adds a new variable block for reordering.

Creates a new variable block, where the argument first is the first variable included in the block and last is the last variable included in the block. This order does not depend on current variable order. The variable blocks are ordered as a tree, with the largest ranges at top and the smallest at the bottom.

Example: Assume the block 0-9 is added as the first block and then the block 0-6. This yields the 0-9 block at the top, with the 0-6 block as a child. If now the block 2-4 was added, it would become a child of the 0-6 block. A block of 0-8 would be a child of the 0-9 block and have the 0-6 block as a child.

Partially overlapping blocks are not allowed. The fixed parameter sets the block to be fixed (no reordering of its child blocks is allowed) or free, using the constants BDD_REORDER_FIXED and BDD_REORDER_FREE. Reordering is always done on the top most blocks first and then recursively downwards. The return value is an integer that can be used to identify the block later on - with for example bdd_blockfile_hook. The values returned will be in the sequence $0,1,2,3,\ldots$.

Returns:
A non-negative identifier on success, otherwise a negative error code.
See also:
bdd_varblockall, fdd_intaddvarblock, bdd_clrvarblocks


Generated on Mon Jul 23 13:25:17 2007 for BuDDy by  doxygen 1.5.1