#include "base/abc/abc.h"#include "misc/vec/vecHsh.h"#include "misc/vec/vecQue.h"#include "misc/vec/vecVec.h"#include "misc/vec/vecWec.h"

Go to the source code of this file.
Classes | |
| struct | Fxch_SubCube_t_ |
| STRUCTURES DEFINITIONS ///. More... | |
| struct | Fxch_SCHashTable_Entry_t_ |
| struct | Fxch_SCHashTable_t_ |
| struct | Fxch_Man_t_ |
Typedefs | |
| typedef unsigned int | uint32_t |
| typedef struct Fxch_SubCube_t_ | Fxch_SubCube_t |
| typedef struct Fxch_SCHashTable_t_ | Fxch_SCHashTable_t |
| typedef struct Fxch_SCHashTable_Entry_t_ | Fxch_SCHashTable_Entry_t |
Variables | |
| ABC_NAMESPACE_HEADER_START typedef unsigned char | uint8_t |
| typedef struct Fxch_SCHashTable_Entry_t_ Fxch_SCHashTable_Entry_t |
| typedef struct Fxch_SCHashTable_t_ Fxch_SCHashTable_t |
| typedef struct Fxch_SubCube_t_ Fxch_SubCube_t |
|
extern |
Function*************************************************************
Synopsis [Makes sure the nodes do not have complemented and duplicated fanins.]
Description []
SideEffects []
SeeAlso []
Definition at line 283 of file abcFx.c.

| int Abc_NtkFxchPerform | ( | Abc_Ntk_t * | pNtk, |
| int | nMaxDivExt, | ||
| int | fVerbose, | ||
| int | fVeryVerbose ) |
Function*************************************************************
Synopsis [ Retrives the necessary information for the fast extract with cube hashing. ]
Description []
SideEffects []
SeeAlso []
Definition at line 229 of file Fxch.c.

Function*************************************************************
Synopsis [Inserts SOP information after fast_extract.]
Description []
SideEffects []
SeeAlso []
Definition at line 183 of file abcFx.c.


FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis [Retrieves SOP information for fast_extract.]
Description []
SideEffects []
SeeAlso []
Definition at line 140 of file abcFx.c.


| 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.
| int Fxch_FastExtract | ( | Vec_Wec_t * | vCubes, |
| int | ObjIdMax, | ||
| int | nMaxDivExt, | ||
| int | fVerbose, | ||
| int | fVeryVerbose ) |
Function*************************************************************
Synopsis [ Performs fast extract with cube hashing on a set of covers. ]
Description []
SideEffects []
SeeAlso []
Definition at line 160 of file Fxch.c.


| Fxch_Man_t * Fxch_ManAlloc | ( | Vec_Wec_t * | vCubes | ) |
PUBLIC INTERFACE ///.
Definition at line 169 of file FxchMan.c.

| void Fxch_ManComputeLevel | ( | Fxch_Man_t * | pFxchMan | ) |
Definition at line 338 of file FxchMan.c.


| int Fxch_ManComputeLevelCube | ( | Fxch_Man_t * | pFxchMan, |
| Vec_Int_t * | vCube ) |
Definition at line 325 of file FxchMan.c.

| int Fxch_ManComputeLevelDiv | ( | Fxch_Man_t * | pFxchMan, |
| Vec_Int_t * | vCubeFree ) |
Definition at line 312 of file FxchMan.c.

| void Fxch_ManDivCreate | ( | Fxch_Man_t * | pFxchMan | ) |
Definition at line 288 of file FxchMan.c.

| void Fxch_ManFree | ( | Fxch_Man_t * | pFxchMan | ) |
Definition at line 192 of file FxchMan.c.

| void Fxch_ManGenerateLitHashKeys | ( | Fxch_Man_t * | pFxchMan | ) |
Definition at line 255 of file FxchMan.c.


| void Fxch_ManMapLiteralsIntoCubes | ( | Fxch_Man_t * | pFxchMan, |
| int | nVars ) |
Definition at line 215 of file FxchMan.c.

| void Fxch_ManPrintDivs | ( | Fxch_Man_t * | pFxchMan | ) |
Definition at line 764 of file FxchMan.c.


| void Fxch_ManPrintStats | ( | Fxch_Man_t * | pFxchMan | ) |
| void Fxch_ManSCHashTablesFree | ( | Fxch_Man_t * | pFxchMan | ) |
Definition at line 283 of file FxchMan.c.


| void Fxch_ManSCHashTablesInit | ( | Fxch_Man_t * | pFxchMan | ) |
Definition at line 265 of file FxchMan.c.


| void Fxch_ManUpdate | ( | Fxch_Man_t * | p, |
| int | iDiv ) |
Function*************************************************************
Synopsis [Updates the data-structure when one divisor is selected.]
Description []
SideEffects []
SeeAlso []
Definition at line 617 of file plaFxch.c.


| Fxch_SCHashTable_t * Fxch_SCHashTableCreate | ( | Fxch_Man_t * | pFxchMan, |
| int | nEntries ) |
Definition at line 93 of file FxchSCHashTable.c.

| void Fxch_SCHashTableDelete | ( | Fxch_SCHashTable_t * | pSCHashTable | ) |
Definition at line 107 of file FxchSCHashTable.c.

| int Fxch_SCHashTableInsert | ( | Fxch_SCHashTable_t * | pSCHashTable, |
| Vec_Wec_t * | vCubes, | ||
| uint32_t | SubCubeID, | ||
| uint32_t | iCube, | ||
| uint32_t | iLit0, | ||
| uint32_t | iLit1, | ||
| char | fUpdate ) |
Definition at line 179 of file FxchSCHashTable.c.

| unsigned int Fxch_SCHashTableMemory | ( | Fxch_SCHashTable_t * | pHashTable | ) |
Definition at line 362 of file FxchSCHashTable.c.

| void Fxch_SCHashTablePrint | ( | Fxch_SCHashTable_t * | pHashTable | ) |
Definition at line 371 of file FxchSCHashTable.c.

| int Fxch_SCHashTableRemove | ( | Fxch_SCHashTable_t * | pSCHashTable, |
| Vec_Wec_t * | vCubes, | ||
| uint32_t | SubCubeID, | ||
| uint32_t | iCube, | ||
| uint32_t | iLit0, | ||
| uint32_t | iLit1, | ||
| char | fUpdate ) |
Definition at line 275 of file FxchSCHashTable.c.

| ABC_NAMESPACE_HEADER_START typedef unsigned char uint8_t |
CFile****************************************************************
FileName [ Fxch.h ]
PackageName [ Fast eXtract with Cube Hashing (FXCH) ]
Synopsis [ External declarations of fast extract with cube hashing. ]
Author [ Bruno Schmitt - boschmitt at inf.ufrgs.br ]
Affiliation [ UFRGS ]
Date [ Ver. 1.0. Started - March 6, 2016. ]
Revision []