#include "Fxch.h"
Go to the source code of this file.
Functions | |
| int | Fxch_DivCreate (Fxch_Man_t *pFxchMan, Fxch_SubCube_t *pSubCube0, Fxch_SubCube_t *pSubCube1) |
| int | Fxch_DivAdd (Fxch_Man_t *pFxchMan, int fUpdate, int fSingleCube, int fBase) |
| int | Fxch_DivRemove (Fxch_Man_t *pFxchMan, int fUpdate, int fSingleCube, int fBase) |
| void | Fxch_DivSepareteCubes (Vec_Int_t *vDiv, Vec_Int_t *vCube0, Vec_Int_t *vCube1) |
| int | Fxch_DivRemoveLits (Vec_Int_t *vCube0, Vec_Int_t *vCube1, Vec_Int_t *vDiv, int *fCompl) |
| void | Fxch_DivPrint (Fxch_Man_t *pFxchMan, int iDiv) |
| int | Fxch_DivIsNotConstant1 (Vec_Int_t *vDiv) |
| int Fxch_DivAdd | ( | Fxch_Man_t * | pFxchMan, |
| int | fUpdate, | ||
| int | fSingleCube, | ||
| int | fBase ) |
Function*************************************************************
Synopsis [ Add a divisor to the divisors hash table. ]
Description [ This functions will try to add the divisor store in vCubeFree to the divisor hash table. If the divisor is already present in the hash table it will just increment its weight, otherwise it will add the divisor and asign an initial weight. ]
SideEffects [ If the fUpdate option is set, the function will also update the divisor priority queue. ]
SeeAlso []
Definition at line 228 of file FxchDiv.c.


| int Fxch_DivCreate | ( | Fxch_Man_t * | pFxchMan, |
| Fxch_SubCube_t * | pSubCube0, | ||
| Fxch_SubCube_t * | pSubCube1 ) |
Function*************************************************************
Synopsis [ Creates a Divisor. ]
Description [ This functions receive as input two sub-cubes and creates a divisor using their information. The divisor is stored in vCubeFree vector of the pFxchMan structure.
It returns the base value, which is the number of elements that the cubes pair used to generate the devisor have in common. ]
SideEffects []
SeeAlso []
Definition at line 112 of file FxchDiv.c.

| int Fxch_DivIsNotConstant1 | ( | Vec_Int_t * | vDiv | ) |
Definition at line 470 of file FxchDiv.c.

| void Fxch_DivPrint | ( | Fxch_Man_t * | pFxchMan, |
| int | iDiv ) |
Function*************************************************************
Synopsis [ Print the divisor identified by iDiv. ]
Description []
SideEffects []
SeeAlso []
Definition at line 446 of file FxchDiv.c.

| int Fxch_DivRemove | ( | Fxch_Man_t * | pFxchMan, |
| int | fUpdate, | ||
| int | fSingleCube, | ||
| int | fBase ) |
Function*************************************************************
Synopsis [ Removes a divisor to the divisors hash table. ]
Description [ This function don't effectively removes a divisor from the hash table (the hash table implementation don't support such operation). It only assures its existence and decrement its weight. ]
SideEffects [ If the fUpdate option is set, the function will also update the divisor priority queue. ]
SeeAlso []
Definition at line 291 of file FxchDiv.c.

Function*************************************************************
Synopsis [ Removes the literals present in the divisor from their original cubes. ]
Description [ This function returns the numeber of removed literals which should be equal to the size of the divisor. ]
SideEffects []
SeeAlso []
Definition at line 380 of file FxchDiv.c.
Function*************************************************************
Synopsis [ Separete the cubes in present in a divisor ]
Description [ In this implementation all stored divsors are composed of two cubes.
In order to save space and to be able to use the Vec_Int_t hash table both cubes are stored in the same vector - using a little hack to differentiate which literal belongs to each cube.
This function separetes the two cubes in their own vectors so that they can be added to the cover.
Note* that this also applies to single cube divisors beacuse of the DeMorgan Law: ab = ( a! + !b )! ]
SideEffects []
SeeAlso []
Definition at line 339 of file FxchDiv.c.