From db7852bba7cb9e7236b4963985eee1fbbe4c5eb5 Mon Sep 17 00:00:00 2001 From: Alan Mishchenko Date: Tue, 6 Nov 2012 18:04:23 -0800 Subject: Improvements to LMS code. --- src/aig/gia/gia.h | 5 +++-- src/aig/gia/giaTruth.c | 10 +++++----- src/aig/gia/giaUtil.c | 16 ++++++++++++++++ 3 files changed, 24 insertions(+), 7 deletions(-) (limited to 'src/aig') diff --git a/src/aig/gia/gia.h b/src/aig/gia/gia.h index 8c3d761c..c271c88f 100644 --- a/src/aig/gia/gia.h +++ b/src/aig/gia/gia.h @@ -890,10 +890,10 @@ extern float Gia_ManComputeSwitching( Gia_Man_t * p, int nFrames, /*=== giaTruth.c ===========================================================*/ extern word Gia_ObjComputeTruthTable6( Gia_Man_t * p, Gia_Obj_t * pObj, Vec_Int_t * vSupp, Vec_Wrd_t * vTruths ); extern int Gia_ObjCollectInternal( Gia_Man_t * p, Gia_Obj_t * pObj ); -extern unsigned * Gia_ObjComputeTruthTable( Gia_Man_t * p, Gia_Obj_t * pObj ); +extern word * Gia_ObjComputeTruthTable( Gia_Man_t * p, Gia_Obj_t * pObj ); extern void Gia_ObjComputeTruthTableStart( Gia_Man_t * p, int nVarsMax ); extern void Gia_ObjComputeTruthTableStop( Gia_Man_t * p ); -extern unsigned * Gia_ObjComputeTruthTableCut( Gia_Man_t * p, Gia_Obj_t * pObj, Vec_Int_t * vLeaves ); +extern word * Gia_ObjComputeTruthTableCut( Gia_Man_t * p, Gia_Obj_t * pObj, Vec_Int_t * vLeaves ); /*=== giaTsim.c ============================================================*/ extern Gia_Man_t * Gia_ManReduceConst( Gia_Man_t * pAig, int fVerbose ); /*=== giaUtil.c ===========================================================*/ @@ -932,6 +932,7 @@ extern int Gia_ManMarkDangling( Gia_Man_t * p ); extern Vec_Int_t * Gia_ManGetDangling( Gia_Man_t * p ); extern void Gia_ObjPrint( Gia_Man_t * p, Gia_Obj_t * pObj ); extern void Gia_ManPrint( Gia_Man_t * p ); +extern void Gia_ManPrintCo( Gia_Man_t * p, Gia_Obj_t * pObj ); extern void Gia_ManInvertConstraints( Gia_Man_t * pAig ); extern int Gia_ManCompare( Gia_Man_t * p1, Gia_Man_t * p2 ); extern void Gia_ManMarkFanoutDrivers( Gia_Man_t * p ); diff --git a/src/aig/gia/giaTruth.c b/src/aig/gia/giaTruth.c index d8a1bb49..172fe2f1 100644 --- a/src/aig/gia/giaTruth.c +++ b/src/aig/gia/giaTruth.c @@ -141,7 +141,7 @@ int Gia_ObjCollectInternal( Gia_Man_t * p, Gia_Obj_t * pObj ) SeeAlso [] ***********************************************************************/ -unsigned * Gia_ObjComputeTruthTable( Gia_Man_t * p, Gia_Obj_t * pObj ) +word * Gia_ObjComputeTruthTable( Gia_Man_t * p, Gia_Obj_t * pObj ) { Gia_Obj_t * pTemp, * pRoot; word * pTruth, * pTruthL, * pTruth0, * pTruth1; @@ -205,7 +205,7 @@ unsigned * Gia_ObjComputeTruthTable( Gia_Man_t * p, Gia_Obj_t * pObj ) pTruth = Gla_ObjTruthNode( p, pRoot ); else pTruth = NULL; - return (unsigned *)Gla_ObjTruthDup( p, Gla_ObjTruthFree2(p), pTruth, Gia_ObjIsCo(pObj) && Gia_ObjFaninC0(pObj) ); + return Gla_ObjTruthDup( p, Gla_ObjTruthFree2(p), pTruth, Gia_ObjIsCo(pObj) && Gia_ObjFaninC0(pObj) ); } /**Function************************************************************* @@ -227,7 +227,7 @@ void Gia_ObjComputeTruthTableTest( Gia_Man_t * p ) int i; Gia_ManForEachPo( p, pObj, i ) { - pTruth = Gia_ObjComputeTruthTable( p, pObj ); + pTruth = (unsigned *)Gia_ObjComputeTruthTable( p, pObj ); // Extra_PrintHex( stdout, pTruth, Gia_ManPiNum(p) ); printf( "\n" ); } Abc_PrintTime( 1, "Time", clock() - clk ); @@ -316,7 +316,7 @@ void Gia_ObjComputeTruthTableStop( Gia_Man_t * p ) SeeAlso [] ***********************************************************************/ -unsigned * Gia_ObjComputeTruthTableCut( Gia_Man_t * p, Gia_Obj_t * pRoot, Vec_Int_t * vLeaves ) +word * Gia_ObjComputeTruthTableCut( Gia_Man_t * p, Gia_Obj_t * pRoot, Vec_Int_t * vLeaves ) { Gia_Obj_t * pTemp; word * pTruth, * pTruthL, * pTruth0, * pTruth1; @@ -358,7 +358,7 @@ unsigned * Gia_ObjComputeTruthTableCut( Gia_Man_t * p, Gia_Obj_t * pRoot, Vec_In assert( pTemp->fMark0 == 1 ); pTemp->fMark0 = 0; } - return (unsigned *)Gla_ObjTruthNode( p, pRoot ); + return Gla_ObjTruthNode( p, pRoot ); } //////////////////////////////////////////////////////////////////////// diff --git a/src/aig/gia/giaUtil.c b/src/aig/gia/giaUtil.c index 8389a9b0..dafd3641 100644 --- a/src/aig/gia/giaUtil.c +++ b/src/aig/gia/giaUtil.c @@ -1109,6 +1109,22 @@ void Gia_ManPrint( Gia_Man_t * p ) Gia_ManForEachObj( p, pObj, i ) Gia_ObjPrint( p, pObj ); } +void Gia_ManPrintCo_rec( Gia_Man_t * p, Gia_Obj_t * pObj ) +{ + if ( Gia_ObjIsAnd(pObj) ) + { + Gia_ManPrintCo_rec( p, Gia_ObjFanin0(pObj) ); + Gia_ManPrintCo_rec( p, Gia_ObjFanin1(pObj) ); + } + Gia_ObjPrint( p, pObj ); +} +void Gia_ManPrintCo( Gia_Man_t * p, Gia_Obj_t * pObj ) +{ + assert( Gia_ObjIsCo(pObj) ); + printf( "TFI cone of CO number %d:\n", Gia_ObjCioId(pObj) ); + Gia_ManPrintCo_rec( p, Gia_ObjFanin0(pObj) ); + Gia_ObjPrint( p, pObj ); +} /**Function************************************************************* -- cgit v1.2.3