ABC: A System for Sequential Synthesis and Verification
 
Loading...
Searching...
No Matches
cutApi.c
Go to the documentation of this file.
1
20
21#include "cutInt.h"
22
24
25
29
33
46{
47 if ( Node >= p->vCutsNew->nSize )
48 return NULL;
49 return (Cut_Cut_t *)Vec_PtrEntry( p->vCutsNew, Node );
50}
51
64{
65 assert( Node < p->vCutsOld->nSize );
66 return (Cut_Cut_t *)Vec_PtrEntry( p->vCutsOld, Node );
67}
68
81{
82 assert( Node < p->vCutsTemp->nSize );
83 return (Cut_Cut_t *)Vec_PtrEntry( p->vCutsTemp, Node );
84}
85
97void Cut_NodeWriteCutsNew( Cut_Man_t * p, int Node, Cut_Cut_t * pList )
98{
99 Vec_PtrWriteEntry( p->vCutsNew, Node, pList );
100}
101
113void Cut_NodeWriteCutsOld( Cut_Man_t * p, int Node, Cut_Cut_t * pList )
114{
115 Vec_PtrWriteEntry( p->vCutsOld, Node, pList );
116}
117
129void Cut_NodeWriteCutsTemp( Cut_Man_t * p, int Node, Cut_Cut_t * pList )
130{
131 Vec_PtrWriteEntry( p->vCutsTemp, Node, pList );
132}
133
145void Cut_NodeSetTriv( Cut_Man_t * p, int Node )
146{
147 assert( Cut_NodeReadCutsNew(p, Node) == NULL );
148 Cut_NodeWriteCutsNew( p, Node, Cut_CutCreateTriv(p, Node) );
149}
150
163{
164 int nFanouts;
165 assert( p->vFanCounts );
166 nFanouts = Vec_IntEntry( p->vFanCounts, Node );
167 assert( nFanouts > 0 );
168 if ( --nFanouts == 0 )
169 Cut_NodeFreeCuts( p, Node );
170 Vec_IntWriteEntry( p->vFanCounts, Node, nFanouts );
171}
172
184void Cut_NodeFreeCuts( Cut_Man_t * p, int Node )
185{
186 Cut_Cut_t * pList, * pCut, * pCut2;
187 pList = Cut_NodeReadCutsNew( p, Node );
188 if ( pList == NULL )
189 return;
190 Cut_ListForEachCutSafe( pList, pCut, pCut2 )
191 Cut_CutRecycle( p, pCut );
192 Cut_NodeWriteCutsNew( p, Node, NULL );
193}
194
195
199
200
202
#define ABC_NAMESPACE_IMPL_START
#define ABC_NAMESPACE_IMPL_END
void Cut_NodeTryDroppingCuts(Cut_Man_t *p, int Node)
Definition cutApi.c:162
Cut_Cut_t * Cut_NodeReadCutsOld(Cut_Man_t *p, int Node)
Definition cutApi.c:63
void Cut_NodeSetTriv(Cut_Man_t *p, int Node)
Definition cutApi.c:145
void Cut_NodeWriteCutsTemp(Cut_Man_t *p, int Node, Cut_Cut_t *pList)
Definition cutApi.c:129
void Cut_NodeWriteCutsOld(Cut_Man_t *p, int Node, Cut_Cut_t *pList)
Definition cutApi.c:113
void Cut_NodeWriteCutsNew(Cut_Man_t *p, int Node, Cut_Cut_t *pList)
Definition cutApi.c:97
ABC_NAMESPACE_IMPL_START Cut_Cut_t * Cut_NodeReadCutsNew(Cut_Man_t *p, int Node)
DECLARATIONS ///.
Definition cutApi.c:45
void Cut_NodeFreeCuts(Cut_Man_t *p, int Node)
Definition cutApi.c:184
Cut_Cut_t * Cut_NodeReadCutsTemp(Cut_Man_t *p, int Node)
Definition cutApi.c:80
Cut_Cut_t * Cut_CutCreateTriv(Cut_Man_t *p, int Node)
Definition cutCut.c:238
void Cut_CutRecycle(Cut_Man_t *p, Cut_Cut_t *pCut)
Definition cutCut.c:72
#define Cut_ListForEachCutSafe(pList, pCut, pCut2)
Definition cutInt.h:112
struct Cut_ManStruct_t_ Cut_Man_t
BASIC TYPES ///.
Definition cut.h:48
struct Cut_CutStruct_t_ Cut_Cut_t
Definition cut.h:50
Cube * p
Definition exorList.c:222
#define assert(ex)
Definition util_old.h:213