Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
abc
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lvzhengyang
abc
Commits
94356f0d
Commit
94356f0d
authored
May 27, 2013
by
Alan Mishchenko
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Several small changes to the MFS packages.
parent
755935a6
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
26 additions
and
21 deletions
+26
-21
src/base/abci/abc.c
+3
-3
src/base/abci/abcMfs.c
+2
-1
src/opt/mfs/mfs.h
+1
-1
src/opt/mfs/mfsCore.c
+6
-4
src/opt/mfs/mfsCore_.c
+0
-1
src/opt/mfs/mfsDiv.c
+6
-5
src/opt/mfs/mfsInt.h
+1
-0
src/opt/mfs/mfsMan.c
+4
-4
src/opt/mfs/mfsResub.c
+2
-2
src/opt/sfm/sfmWin.c
+1
-0
No files found.
src/base/abci/abc.c
View file @
94356f0d
...
@@ -4361,9 +4361,9 @@ int Abc_CommandMfs( Abc_Frame_t * pAbc, int argc, char ** argv )
...
@@ -4361,9 +4361,9 @@ int Abc_CommandMfs( Abc_Frame_t * pAbc, int argc, char ** argv )
Abc_Print
(
-
1
,
"Command line switch
\"
-M
\"
should be followed by an integer.
\n
"
);
Abc_Print
(
-
1
,
"Command line switch
\"
-M
\"
should be followed by an integer.
\n
"
);
goto
usage
;
goto
usage
;
}
}
pPars
->
nWin
Size
Max
=
atoi
(
argv
[
globalUtilOptind
]);
pPars
->
nWinMax
=
atoi
(
argv
[
globalUtilOptind
]);
globalUtilOptind
++
;
globalUtilOptind
++
;
if
(
pPars
->
nWin
Size
Max
<
0
)
if
(
pPars
->
nWinMax
<
0
)
goto
usage
;
goto
usage
;
break
;
break
;
case
'L'
:
case
'L'
:
...
@@ -4450,7 +4450,7 @@ usage:
...
@@ -4450,7 +4450,7 @@ usage:
Abc_Print
(
-
2
,
"
\t
-W <num> : the number of levels in the TFO cone (0 <= num) [default = %d]
\n
"
,
pPars
->
nWinTfoLevs
);
Abc_Print
(
-
2
,
"
\t
-W <num> : the number of levels in the TFO cone (0 <= num) [default = %d]
\n
"
,
pPars
->
nWinTfoLevs
);
Abc_Print
(
-
2
,
"
\t
-F <num> : the max number of fanouts to skip (1 <= num) [default = %d]
\n
"
,
pPars
->
nFanoutsMax
);
Abc_Print
(
-
2
,
"
\t
-F <num> : the max number of fanouts to skip (1 <= num) [default = %d]
\n
"
,
pPars
->
nFanoutsMax
);
Abc_Print
(
-
2
,
"
\t
-D <num> : the max depth nodes to try (0 = no limit) [default = %d]
\n
"
,
pPars
->
nDepthMax
);
Abc_Print
(
-
2
,
"
\t
-D <num> : the max depth nodes to try (0 = no limit) [default = %d]
\n
"
,
pPars
->
nDepthMax
);
Abc_Print
(
-
2
,
"
\t
-M <num> : the max node count of windows to consider (0 = no limit) [default = %d]
\n
"
,
pPars
->
nWin
Size
Max
);
Abc_Print
(
-
2
,
"
\t
-M <num> : the max node count of windows to consider (0 = no limit) [default = %d]
\n
"
,
pPars
->
nWinMax
);
Abc_Print
(
-
2
,
"
\t
-L <num> : the max increase in node level after resynthesis (0 <= num) [default = %d]
\n
"
,
pPars
->
nGrowthLevel
);
Abc_Print
(
-
2
,
"
\t
-L <num> : the max increase in node level after resynthesis (0 <= num) [default = %d]
\n
"
,
pPars
->
nGrowthLevel
);
Abc_Print
(
-
2
,
"
\t
-C <num> : the max number of conflicts in one SAT run (0 = no limit) [default = %d]
\n
"
,
pPars
->
nBTLimit
);
Abc_Print
(
-
2
,
"
\t
-C <num> : the max number of conflicts in one SAT run (0 = no limit) [default = %d]
\n
"
,
pPars
->
nBTLimit
);
Abc_Print
(
-
2
,
"
\t
-d : toggle performing redundancy removal [default = %s]
\n
"
,
pPars
->
fRrOnly
?
"yes"
:
"no"
);
Abc_Print
(
-
2
,
"
\t
-d : toggle performing redundancy removal [default = %s]
\n
"
,
pPars
->
fRrOnly
?
"yes"
:
"no"
);
src/base/abci/abcMfs.c
View file @
94356f0d
...
@@ -74,9 +74,10 @@ Vec_Ptr_t * Abc_NtkAssignIDs2( Abc_Ntk_t * pNtk )
...
@@ -74,9 +74,10 @@ Vec_Ptr_t * Abc_NtkAssignIDs2( Abc_Ntk_t * pNtk )
vNodes
=
Vec_PtrAlloc
(
Abc_NtkNodeNum
(
pNtk
)
);
vNodes
=
Vec_PtrAlloc
(
Abc_NtkNodeNum
(
pNtk
)
);
Abc_NtkForEachNode
(
pNtk
,
pObj
,
i
)
Abc_NtkForEachNode
(
pNtk
,
pObj
,
i
)
{
{
pObj
->
iTemp
=
Abc_NtkCiNum
(
pNtk
)
+
Vec_PtrSize
(
vNodes
);
Vec_PtrPush
(
vNodes
,
pObj
);
Vec_PtrPush
(
vNodes
,
pObj
);
pObj
->
iTemp
=
Abc_NtkCiNum
(
pNtk
)
+
i
;
}
}
assert
(
Vec_PtrSize
(
vNodes
)
==
Abc_NtkNodeNum
(
pNtk
)
);
Abc_NtkForEachCo
(
pNtk
,
pObj
,
i
)
Abc_NtkForEachCo
(
pNtk
,
pObj
,
i
)
pObj
->
iTemp
=
Abc_NtkCiNum
(
pNtk
)
+
Vec_PtrSize
(
vNodes
)
+
i
;
pObj
->
iTemp
=
Abc_NtkCiNum
(
pNtk
)
+
Vec_PtrSize
(
vNodes
)
+
i
;
return
vNodes
;
return
vNodes
;
...
...
src/opt/mfs/mfs.h
View file @
94356f0d
...
@@ -47,7 +47,7 @@ struct Mfs_Par_t_
...
@@ -47,7 +47,7 @@ struct Mfs_Par_t_
int
nFanoutsMax
;
// the maximum number of fanouts
int
nFanoutsMax
;
// the maximum number of fanouts
int
nDepthMax
;
// the maximum number of logic levels
int
nDepthMax
;
// the maximum number of logic levels
int
nDivMax
;
// the maximum number of divisors
int
nDivMax
;
// the maximum number of divisors
int
nWin
SizeMax
;
// the maximum size of the window
int
nWin
Max
;
// the maximum size of the window
int
nGrowthLevel
;
// the maximum allowed growth in level
int
nGrowthLevel
;
// the maximum allowed growth in level
int
nBTLimit
;
// the maximum number of conflicts in one SAT run
int
nBTLimit
;
// the maximum number of conflicts in one SAT run
int
fRrOnly
;
// perform redundance removal
int
fRrOnly
;
// perform redundance removal
...
...
src/opt/mfs/mfsCore.c
View file @
94356f0d
...
@@ -50,8 +50,7 @@ void Abc_NtkMfsParsDefault( Mfs_Par_t * pPars )
...
@@ -50,8 +50,7 @@ void Abc_NtkMfsParsDefault( Mfs_Par_t * pPars )
pPars
->
nWinTfoLevs
=
2
;
pPars
->
nWinTfoLevs
=
2
;
pPars
->
nFanoutsMax
=
30
;
pPars
->
nFanoutsMax
=
30
;
pPars
->
nDepthMax
=
20
;
pPars
->
nDepthMax
=
20
;
pPars
->
nDivMax
=
250
;
pPars
->
nWinMax
=
300
;
pPars
->
nWinSizeMax
=
300
;
pPars
->
nGrowthLevel
=
0
;
pPars
->
nGrowthLevel
=
0
;
pPars
->
nBTLimit
=
5000
;
pPars
->
nBTLimit
=
5000
;
pPars
->
fRrOnly
=
0
;
pPars
->
fRrOnly
=
0
;
...
@@ -98,7 +97,7 @@ int Abc_WinNode(Mfs_Man_t * p, Abc_Obj_t *pNode)
...
@@ -98,7 +97,7 @@ int Abc_WinNode(Mfs_Man_t * p, Abc_Obj_t *pNode)
p
->
vRoots
=
Abc_MfsComputeRoots
(
pNode
,
p
->
pPars
->
nWinTfoLevs
,
p
->
pPars
->
nFanoutsMax
);
p
->
vRoots
=
Abc_MfsComputeRoots
(
pNode
,
p
->
pPars
->
nWinTfoLevs
,
p
->
pPars
->
nFanoutsMax
);
p
->
vSupp
=
Abc_NtkNodeSupport
(
p
->
pNtk
,
(
Abc_Obj_t
**
)
Vec_PtrArray
(
p
->
vRoots
),
Vec_PtrSize
(
p
->
vRoots
)
);
p
->
vSupp
=
Abc_NtkNodeSupport
(
p
->
pNtk
,
(
Abc_Obj_t
**
)
Vec_PtrArray
(
p
->
vRoots
),
Vec_PtrSize
(
p
->
vRoots
)
);
p
->
vNodes
=
Abc_NtkDfsNodes
(
p
->
pNtk
,
(
Abc_Obj_t
**
)
Vec_PtrArray
(
p
->
vRoots
),
Vec_PtrSize
(
p
->
vRoots
)
);
p
->
vNodes
=
Abc_NtkDfsNodes
(
p
->
pNtk
,
(
Abc_Obj_t
**
)
Vec_PtrArray
(
p
->
vRoots
),
Vec_PtrSize
(
p
->
vRoots
)
);
if
(
p
->
pPars
->
nWin
SizeMax
&&
Vec_PtrSize
(
p
->
vNodes
)
>
p
->
pPars
->
nWinSize
Max
)
if
(
p
->
pPars
->
nWin
Max
&&
Vec_PtrSize
(
p
->
vNodes
)
>
p
->
pPars
->
nWin
Max
)
return
1
;
return
1
;
// compute the divisors of the window
// compute the divisors of the window
p
->
vDivs
=
Abc_MfsComputeDivisors
(
p
,
pNode
,
Abc_ObjRequiredLevel
(
pNode
)
-
1
);
p
->
vDivs
=
Abc_MfsComputeDivisors
(
p
,
pNode
,
Abc_ObjRequiredLevel
(
pNode
)
-
1
);
...
@@ -246,8 +245,11 @@ clk = clock();
...
@@ -246,8 +245,11 @@ clk = clock();
p
->
vSupp
=
Abc_NtkNodeSupport
(
p
->
pNtk
,
(
Abc_Obj_t
**
)
Vec_PtrArray
(
p
->
vRoots
),
Vec_PtrSize
(
p
->
vRoots
)
);
p
->
vSupp
=
Abc_NtkNodeSupport
(
p
->
pNtk
,
(
Abc_Obj_t
**
)
Vec_PtrArray
(
p
->
vRoots
),
Vec_PtrSize
(
p
->
vRoots
)
);
p
->
vNodes
=
Abc_NtkDfsNodes
(
p
->
pNtk
,
(
Abc_Obj_t
**
)
Vec_PtrArray
(
p
->
vRoots
),
Vec_PtrSize
(
p
->
vRoots
)
);
p
->
vNodes
=
Abc_NtkDfsNodes
(
p
->
pNtk
,
(
Abc_Obj_t
**
)
Vec_PtrArray
(
p
->
vRoots
),
Vec_PtrSize
(
p
->
vRoots
)
);
p
->
timeWin
+=
clock
()
-
clk
;
p
->
timeWin
+=
clock
()
-
clk
;
if
(
p
->
pPars
->
nWinSizeMax
&&
Vec_PtrSize
(
p
->
vNodes
)
>
p
->
pPars
->
nWinSizeMax
)
if
(
p
->
pPars
->
nWinMax
&&
Vec_PtrSize
(
p
->
vNodes
)
>
p
->
pPars
->
nWinMax
)
{
p
->
nMaxDivs
++
;
return
1
;
return
1
;
}
// compute the divisors of the window
// compute the divisors of the window
clk
=
clock
();
clk
=
clock
();
p
->
vDivs
=
Abc_MfsComputeDivisors
(
p
,
pNode
,
Abc_ObjRequiredLevel
(
pNode
)
-
1
);
p
->
vDivs
=
Abc_MfsComputeDivisors
(
p
,
pNode
,
Abc_ObjRequiredLevel
(
pNode
)
-
1
);
...
...
src/opt/mfs/mfsCore_.c
View file @
94356f0d
...
@@ -48,7 +48,6 @@ void Abc_NtkMfsParsDefault( Mfs_Par_t * pPars )
...
@@ -48,7 +48,6 @@ void Abc_NtkMfsParsDefault( Mfs_Par_t * pPars )
pPars
->
nWinTfoLevs
=
2
;
pPars
->
nWinTfoLevs
=
2
;
pPars
->
nFanoutsMax
=
10
;
pPars
->
nFanoutsMax
=
10
;
pPars
->
nDepthMax
=
20
;
pPars
->
nDepthMax
=
20
;
pPars
->
nDivMax
=
250
;
pPars
->
nWinSizeMax
=
300
;
pPars
->
nWinSizeMax
=
300
;
pPars
->
nGrowthLevel
=
0
;
pPars
->
nGrowthLevel
=
0
;
pPars
->
nBTLimit
=
5000
;
pPars
->
nBTLimit
=
5000
;
...
...
src/opt/mfs/mfsDiv.c
View file @
94356f0d
...
@@ -223,7 +223,7 @@ Vec_Ptr_t * Abc_MfsComputeDivisors( Mfs_Man_t * p, Abc_Obj_t * pNode, int nLevDi
...
@@ -223,7 +223,7 @@ Vec_Ptr_t * Abc_MfsComputeDivisors( Mfs_Man_t * p, Abc_Obj_t * pNode, int nLevDi
// nodes to be avoided as divisors are marked with current trav ID
// nodes to be avoided as divisors are marked with current trav ID
// start collecting the divisors
// start collecting the divisors
vDivs
=
Vec_PtrAlloc
(
p
->
pPars
->
n
Div
Max
);
vDivs
=
Vec_PtrAlloc
(
p
->
pPars
->
n
Win
Max
);
Vec_PtrForEachEntry
(
Abc_Obj_t
*
,
vCone
,
pObj
,
k
)
Vec_PtrForEachEntry
(
Abc_Obj_t
*
,
vCone
,
pObj
,
k
)
{
{
if
(
!
Abc_NodeIsTravIdPrevious
(
pObj
)
)
if
(
!
Abc_NodeIsTravIdPrevious
(
pObj
)
)
...
@@ -231,13 +231,13 @@ Vec_Ptr_t * Abc_MfsComputeDivisors( Mfs_Man_t * p, Abc_Obj_t * pNode, int nLevDi
...
@@ -231,13 +231,13 @@ Vec_Ptr_t * Abc_MfsComputeDivisors( Mfs_Man_t * p, Abc_Obj_t * pNode, int nLevDi
if
(
(
int
)
pObj
->
Level
>
nLevDivMax
)
if
(
(
int
)
pObj
->
Level
>
nLevDivMax
)
continue
;
continue
;
Vec_PtrPush
(
vDivs
,
pObj
);
Vec_PtrPush
(
vDivs
,
pObj
);
if
(
Vec_PtrSize
(
vDivs
)
>=
p
->
pPars
->
n
Div
Max
)
if
(
Vec_PtrSize
(
vDivs
)
>=
p
->
pPars
->
n
Win
Max
)
break
;
break
;
}
}
Vec_PtrFree
(
vCone
);
Vec_PtrFree
(
vCone
);
// explore the fanouts of already collected divisors
// explore the fanouts of already collected divisors
if
(
Vec_PtrSize
(
vDivs
)
<
p
->
pPars
->
n
Div
Max
)
if
(
Vec_PtrSize
(
vDivs
)
<
p
->
pPars
->
n
Win
Max
)
Vec_PtrForEachEntry
(
Abc_Obj_t
*
,
vDivs
,
pObj
,
k
)
Vec_PtrForEachEntry
(
Abc_Obj_t
*
,
vDivs
,
pObj
,
k
)
{
{
// consider fanouts of this node
// consider fanouts of this node
...
@@ -273,12 +273,13 @@ Vec_Ptr_t * Abc_MfsComputeDivisors( Mfs_Man_t * p, Abc_Obj_t * pNode, int nLevDi
...
@@ -273,12 +273,13 @@ Vec_Ptr_t * Abc_MfsComputeDivisors( Mfs_Man_t * p, Abc_Obj_t * pNode, int nLevDi
Vec_PtrPushUnique
(
p
->
vNodes
,
pFanout
);
Vec_PtrPushUnique
(
p
->
vNodes
,
pFanout
);
Abc_NodeSetTravIdPrevious
(
pFanout
);
Abc_NodeSetTravIdPrevious
(
pFanout
);
nDivsPlus
++
;
nDivsPlus
++
;
if
(
Vec_PtrSize
(
vDivs
)
>=
p
->
pPars
->
n
Div
Max
)
if
(
Vec_PtrSize
(
vDivs
)
>=
p
->
pPars
->
n
Win
Max
)
break
;
break
;
}
}
if
(
Vec_PtrSize
(
vDivs
)
>=
p
->
pPars
->
n
Div
Max
)
if
(
Vec_PtrSize
(
vDivs
)
>=
p
->
pPars
->
n
Win
Max
)
break
;
break
;
}
}
p
->
nMaxDivs
+=
(
Vec_PtrSize
(
vDivs
)
>=
p
->
pPars
->
nWinMax
);
// sort the divisors by level in the increasing order
// sort the divisors by level in the increasing order
Vec_PtrSort
(
vDivs
,
(
int
(
*
)(
void
))
Abc_NodeCompareLevelsIncrease
);
Vec_PtrSort
(
vDivs
,
(
int
(
*
)(
void
))
Abc_NodeCompareLevelsIncrease
);
...
...
src/opt/mfs/mfsInt.h
View file @
94356f0d
...
@@ -114,6 +114,7 @@ struct Mfs_Man_t_
...
@@ -114,6 +114,7 @@ struct Mfs_Man_t_
int
nTimeOuts
;
int
nTimeOuts
;
int
nTimeOutsLevel
;
int
nTimeOutsLevel
;
int
nDcMints
;
int
nDcMints
;
int
nMaxDivs
;
double
dTotalRatios
;
double
dTotalRatios
;
// node/edge stats
// node/edge stats
int
nTotalNodesBeg
;
int
nTotalNodesBeg
;
...
...
src/opt/mfs/mfsMan.c
View file @
94356f0d
...
@@ -52,8 +52,8 @@ Mfs_Man_t * Mfs_ManAlloc( Mfs_Par_t * pPars )
...
@@ -52,8 +52,8 @@ Mfs_Man_t * Mfs_ManAlloc( Mfs_Par_t * pPars )
p
->
vProjVarsCnf
=
Vec_IntAlloc
(
100
);
p
->
vProjVarsCnf
=
Vec_IntAlloc
(
100
);
p
->
vProjVarsSat
=
Vec_IntAlloc
(
100
);
p
->
vProjVarsSat
=
Vec_IntAlloc
(
100
);
p
->
vDivLits
=
Vec_IntAlloc
(
100
);
p
->
vDivLits
=
Vec_IntAlloc
(
100
);
p
->
nDivWords
=
Abc_BitWordNum
(
p
->
pPars
->
n
Div
Max
+
MFS_FANIN_MAX
);
p
->
nDivWords
=
Abc_BitWordNum
(
p
->
pPars
->
n
Win
Max
+
MFS_FANIN_MAX
);
p
->
vDivCexes
=
Vec_PtrAllocSimInfo
(
p
->
pPars
->
n
DivMax
+
MFS_FANIN_MAX
+
1
,
p
->
nDivWords
);
p
->
vDivCexes
=
Vec_PtrAllocSimInfo
(
p
->
pPars
->
n
WinMax
+
MFS_FANIN_MAX
+
1
,
p
->
nDivWords
);
p
->
pMan
=
Int_ManAlloc
();
p
->
pMan
=
Int_ManAlloc
();
p
->
vMem
=
Vec_IntAlloc
(
0
);
p
->
vMem
=
Vec_IntAlloc
(
0
);
p
->
vLevels
=
Vec_VecStart
(
32
);
p
->
vLevels
=
Vec_VecStart
(
32
);
...
@@ -112,8 +112,8 @@ void Mfs_ManPrint( Mfs_Man_t * p )
...
@@ -112,8 +112,8 @@ void Mfs_ManPrint( Mfs_Man_t * p )
{
{
if
(
p
->
pPars
->
fResub
)
if
(
p
->
pPars
->
fResub
)
{
{
printf
(
"Nodes = %d. Try = %d. Resub = %d. Div = %d. SAT calls = %d. Timeouts = %d.
\n
"
,
printf
(
"Nodes = %d. Try = %d. Resub = %d. Div = %d. SAT calls = %d. Timeouts = %d.
MaxDivs = %d.
\n
"
,
p
->
nTotalNodesBeg
,
p
->
nNodesTried
,
p
->
nNodesResub
,
p
->
nTotalDivs
,
p
->
nSatCalls
,
p
->
nTimeOuts
);
p
->
nTotalNodesBeg
,
p
->
nNodesTried
,
p
->
nNodesResub
,
p
->
nTotalDivs
,
p
->
nSatCalls
,
p
->
nTimeOuts
,
p
->
nMaxDivs
);
printf
(
"Attempts : "
);
printf
(
"Attempts : "
);
printf
(
"Remove %6d out of %6d (%6.2f %%) "
,
p
->
nRemoves
,
p
->
nTryRemoves
,
100
.
0
*
p
->
nRemoves
/
Abc_MaxInt
(
1
,
p
->
nTryRemoves
)
);
printf
(
"Remove %6d out of %6d (%6.2f %%) "
,
p
->
nRemoves
,
p
->
nTryRemoves
,
100
.
0
*
p
->
nRemoves
/
Abc_MaxInt
(
1
,
p
->
nTryRemoves
)
);
...
...
src/opt/mfs/mfsResub.c
View file @
94356f0d
...
@@ -297,7 +297,7 @@ p->timeInt += clock() - clk;
...
@@ -297,7 +297,7 @@ p->timeInt += clock() - clk;
p
->
nResubs
++
;
p
->
nResubs
++
;
return
1
;
return
1
;
}
}
if
(
p
->
nCexes
>=
p
->
pPars
->
n
Div
Max
)
if
(
p
->
nCexes
>=
p
->
pPars
->
n
Win
Max
)
break
;
break
;
}
}
if
(
p
->
pPars
->
fVeryVerbose
)
if
(
p
->
pPars
->
fVeryVerbose
)
...
@@ -467,7 +467,7 @@ clk = clock();
...
@@ -467,7 +467,7 @@ clk = clock();
p
->
timeInt
+=
clock
()
-
clk
;
p
->
timeInt
+=
clock
()
-
clk
;
return
1
;
return
1
;
}
}
if
(
p
->
nCexes
>=
p
->
pPars
->
n
Div
Max
)
if
(
p
->
nCexes
>=
p
->
pPars
->
n
Win
Max
)
break
;
break
;
}
}
return
0
;
return
0
;
...
...
src/opt/sfm/sfmWin.c
View file @
94356f0d
...
@@ -275,6 +275,7 @@ int Sfm_NtkCreateWindow( Sfm_Ntk_t * p, int iNode, int fVerbose )
...
@@ -275,6 +275,7 @@ int Sfm_NtkCreateWindow( Sfm_Ntk_t * p, int iNode, int fVerbose )
Sfm_NtkIncrementTravId
(
p
);
Sfm_NtkIncrementTravId
(
p
);
if
(
Sfm_NtkCollectTfi_rec
(
p
,
iNode
,
p
->
pPars
->
nWinSizeMax
)
)
if
(
Sfm_NtkCollectTfi_rec
(
p
,
iNode
,
p
->
pPars
->
nWinSizeMax
)
)
{
{
p
->
nMaxDivs
++
;
p
->
timeWin
+=
clock
()
-
clk
;
p
->
timeWin
+=
clock
()
-
clk
;
return
0
;
return
0
;
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment