68 vOriginal = Vec_IntAlloc( Saig_ManPiNum(
p->pAig) );
69 vVisited = Vec_IntStart( Saig_ManPiNum(
p->pAig) );
72 int iInput = Vec_IntEntry(
p->vMapPiF2A, 2*Entry );
73 assert( iInput >= 0 && iInput < Aig_ManCiNum(
p->pAig) );
74 if ( Vec_IntEntry(vVisited, iInput) == 0 )
75 Vec_IntPush( vOriginal, iInput );
76 Vec_IntAddToEntry( vVisited, iInput, 1 );
78 Vec_IntFree( vVisited );
96 int i, Entry, iInput, iFrame;
98 memset( pCare->pData, 0,
sizeof(
unsigned) * Abc_BitWordNum(pCare->nBits) );
101 assert( Entry >= 0 && Entry < Aig_ManCiNum(
p->pFrames) );
102 iInput = Vec_IntEntry(
p->vMapPiF2A, 2*Entry );
103 iFrame = Vec_IntEntry(
p->vMapPiF2A, 2*Entry+1 );
104 Abc_InfoSetBit( pCare->pData, pCare->nRegs + pCare->nPis * iFrame + iInput );
122 if ( Aig_ObjIsTravIdCurrent(
p, pObj) )
124 Aig_ObjSetTravIdCurrent(
p, pObj);
125 if ( Aig_ObjIsCi(pObj) )
127 Vec_IntPush( vReasons, Aig_ObjCioId(pObj) );
130 assert( Aig_ObjIsNode(pObj) );
138 int fPhase0 = Aig_ObjFaninC0(pObj) ^ Aig_ObjFanin0(pObj)->fPhase;
139 int fPhase1 = Aig_ObjFaninC1(pObj) ^ Aig_ObjFanin1(pObj)->fPhase;
140 assert( !fPhase0 || !fPhase1 );
141 if ( !fPhase0 && fPhase1 )
143 else if ( fPhase0 && !fPhase1 )
147 int iPrio0 = Vec_IntEntry( vPrios, Aig_ObjFaninId0(pObj) );
148 int iPrio1 = Vec_IntEntry( vPrios, Aig_ObjFaninId1(pObj) );
149 if ( iPrio0 <= iPrio1 )
171 Vec_Int_t * vPrios, * vPi2Prio, * vReasons;
174 vPi2Prio = Vec_IntStartFull( Saig_ManPiNum(
p->pAig) );
175 vPrios = Vec_IntStartFull( Aig_ManObjNumMax(
p->pFrames) );
179 Aig_ManConst1(
p->pFrames)->fPhase = 1;
182 int iInput = Vec_IntEntry(
p->vMapPiF2A, 2*i );
183 int iFrame = Vec_IntEntry(
p->vMapPiF2A, 2*i+1 );
184 pObj->
fPhase = Abc_InfoHasBit(
p->pCex->pData,
p->pCex->nRegs +
p->pCex->nPis * iFrame + iInput );
186 if ( Vec_IntEntry(vPi2Prio, iInput) == ~0 )
187 Vec_IntWriteEntry( vPi2Prio, iInput, CountPrios++ );
189 Vec_IntWriteEntry( vPrios, Aig_ObjId(pObj), i );
192 Vec_IntFree( vPi2Prio );
197 int fPhase0 = Aig_ObjFaninC0(pObj) ^ Aig_ObjFanin0(pObj)->fPhase;
198 int fPhase1 = Aig_ObjFaninC1(pObj) ^ Aig_ObjFanin1(pObj)->fPhase;
199 int iPrio0 = Vec_IntEntry( vPrios, Aig_ObjFaninId0(pObj) );
200 int iPrio1 = Vec_IntEntry( vPrios, Aig_ObjFaninId1(pObj) );
201 pObj->
fPhase = fPhase0 && fPhase1;
202 if ( fPhase0 && fPhase1 )
203 Vec_IntWriteEntry( vPrios, Aig_ObjId(pObj), Abc_MaxInt(iPrio0, iPrio1) );
204 else if ( !fPhase0 && fPhase1 )
205 Vec_IntWriteEntry( vPrios, Aig_ObjId(pObj), iPrio0 );
206 else if ( fPhase0 && !fPhase1 )
207 Vec_IntWriteEntry( vPrios, Aig_ObjId(pObj), iPrio1 );
209 Vec_IntWriteEntry( vPrios, Aig_ObjId(pObj), Abc_MinInt(iPrio0, iPrio1) );
212 pObj = Aig_ManCo(
p->pFrames, 0 );
213 assert( (
int)Aig_ObjFanin0(pObj)->fPhase == Aig_ObjFaninC0(pObj) );
216 vReasons = Vec_IntAlloc( 100 );
218 if ( !Aig_ObjIsConst1(Aig_ObjFanin0(pObj)) )
220 Vec_IntFree( vPrios );
238 if ( Aig_ObjIsTravIdCurrent(pAig, pObj) )
240 Aig_ObjSetTravIdCurrent(pAig, pObj);
241 if ( Aig_ObjIsCo(pObj) )
243 else if ( Aig_ObjIsNode(pObj) )
248 if ( vRoots && Saig_ObjIsLo( pAig, pObj ) )
249 Vec_IntPush( vRoots, Aig_ObjId( Saig_ObjLoToLi(pAig, pObj) ) );
250 Vec_IntPush( vObjs, Aig_ObjId(pObj) );
273 assert( Saig_ManPiNum(pAig) == pCex->nPis );
274 assert( Saig_ManRegNum(pAig) == pCex->nRegs );
275 assert( pCex->iPo >= 0 && pCex->iPo < Saig_ManPoNum(pAig) );
278 *pvMapPiF2A = Vec_IntAlloc( 1000 );
281 vFrameCos = Vec_VecStart( pCex->iFrame+1 );
282 vFrameObjs = Vec_VecStart( pCex->iFrame+1 );
284 pObj = Aig_ManCo( pAig, pCex->iPo );
285 Vec_VecPushInt( vFrameCos, pCex->iFrame, Aig_ObjId(pObj) );
286 for ( f = pCex->iFrame; f >= 0; f-- )
290 vRoots = Vec_VecEntryInt( vFrameCos, f );
293 Vec_VecEntryInt(vFrameObjs, f),
294 (
Vec_Int_t *)(f ? Vec_VecEntry(vFrameCos, f-1) : NULL) );
299 pFrames->pName = Abc_UtilStrsav( pAig->pName );
300 pFrames->pSpec = Abc_UtilStrsav( pAig->pSpec );
303 pObj->
pData = Aig_NotCond( Aig_ManConst1(pFrames), !Abc_InfoHasBit(pCex->pData, i) );
305 for ( f = 0; f <= pCex->iFrame; f++ )
308 vObjs = Vec_VecEntryInt( vFrameObjs, f );
311 if ( Aig_ObjIsNode(pObj) )
312 pObj->
pData =
Aig_And( pFrames, Aig_ObjChild0Copy(pObj), Aig_ObjChild1Copy(pObj) );
313 else if ( Aig_ObjIsCo(pObj) )
314 pObj->
pData = Aig_ObjChild0Copy(pObj);
315 else if ( Aig_ObjIsConst1(pObj) )
316 pObj->
pData = Aig_ManConst1(pFrames);
317 else if ( Saig_ObjIsPi(pAig, pObj) )
319 if ( Aig_ObjCioId(pObj) < nInputs )
321 int iBit = pCex->nRegs + f * pCex->nPis + Aig_ObjCioId(pObj);
322 pObj->
pData = Aig_NotCond( Aig_ManConst1(pFrames), !Abc_InfoHasBit(pCex->pData, iBit) );
327 Vec_IntPush( *pvMapPiF2A, Aig_ObjCioId(pObj) );
328 Vec_IntPush( *pvMapPiF2A, f );
332 if ( f == pCex->iFrame )
335 vRoots = Vec_VecEntryInt( vFrameCos, f );
337 Saig_ObjLiToLo( pAig, pObj )->pData = pObj->
pData;
340 pObj = Aig_ManCo( pAig, pCex->iPo );
344 Vec_VecFree( vFrameCos );
345 Vec_VecFree( vFrameObjs );
369 p->nInputs = nInputs;
370 p->fVerbose = fVerbose;
389 Vec_IntFreeP( &
p->vMapPiF2A );
407 int i, iFrame, iInput;
408 Aig_ManConst1(
p->pFrames )->fPhase = 1;
411 iInput = Vec_IntEntry(
p->vMapPiF2A, 2*i );
412 iFrame = Vec_IntEntry(
p->vMapPiF2A, 2*i+1 );
413 pObj->
fPhase = Abc_InfoHasBit(
p->pCex->pData,
p->pCex->nRegs +
p->pCex->nPis * iFrame + iInput );
415 if ( pCare && !Abc_InfoHasBit( pCare->pData,
p->pCex->nRegs +
p->pCex->nPis * iFrame + iInput ) )
419 pObj->
fPhase = ( Aig_ObjFanin0(pObj)->fPhase ^ Aig_ObjFaninC0(pObj) )
420 & ( Aig_ObjFanin1(pObj)->fPhase ^ Aig_ObjFaninC1(pObj) );
422 pObj->
fPhase = ( Aig_ObjFanin0(pObj)->fPhase ^ Aig_ObjFaninC0(pObj) );
423 pObj = Aig_ManCo(
p->pFrames, 0 );
442 int i, Entry, iInput, iFrame;
444 vLits = Vec_VecAlloc( 100 );
445 vVar2New = Vec_IntStartFull( Saig_ManPiNum(
p->pAig) );
448 int iPiNum = Vec_IntEntry( vVar2PiId, lit_var(Entry) );
449 assert( iPiNum >= 0 && iPiNum < Aig_ManCiNum(
p->pFrames) );
450 iInput = Vec_IntEntry(
p->vMapPiF2A, 2*iPiNum );
451 iFrame = Vec_IntEntry(
p->vMapPiF2A, 2*iPiNum+1 );
453 if ( Vec_IntEntry( vVar2New, iInput ) == ~0 )
454 Vec_IntWriteEntry( vVar2New, iInput, Vec_VecSize(vLits) );
455 Vec_VecPushInt( vLits, Vec_IntEntry( vVar2New, iInput ), Entry );
457 Vec_IntFree( vVar2New );
476 int i, Entry, iInput, iFrame;
479 memset( pCare->pData, 0,
sizeof(
unsigned) * Abc_BitWordNum(pCare->nBits) );
482 int iPiNum = Vec_IntEntry( vVar2PiId, lit_var(Entry) );
483 assert( iPiNum >= 0 && iPiNum < Aig_ManCiNum(
p->pFrames) );
484 iInput = Vec_IntEntry(
p->vMapPiF2A, 2*iPiNum );
485 iFrame = Vec_IntEntry(
p->vMapPiF2A, 2*iPiNum+1 );
486 Abc_InfoSetBit( pCare->pData, pCare->nRegs + pCare->nPis * iFrame + iInput );
504 int nConfLimit = 1000000;
511 int i, k, Entry, RetValue;
512 int nCoreLits, * pCoreLits;
513 clock_t clk = clock();
515 assert( Aig_ManRegNum(
p->pFrames) == 0 );
521 printf(
"Constructed frames are incorrect.\n" );
535 if (
p->nInputs > 0 )
538 (ABC_INT64_T)nConfLimit, (ABC_INT64_T)0, (ABC_INT64_T)0, (ABC_INT64_T)0 );
541 printf(
"The problem is trivially UNSAT. The CEX is real.\n" );
544 memset( pCare->pData, 0,
sizeof(
unsigned) * Abc_BitWordNum(pCare->nBits) );
550 vVar2PiId = Vec_IntStartFull( pCnf->
nVars );
551 vAssumps = Vec_IntAlloc( Aig_ManCiNum(
p->pFrames) );
556 Vec_IntPush( vAssumps, toLitCond( pCnf->
pVarNums[Aig_ObjId(pObj)], 1 ) );
557 Vec_IntWriteEntry( vVar2PiId, pCnf->
pVarNums[Aig_ObjId(pObj)], i );
569 Vec_VecSort( vLits, 1 );
571 Vec_IntClear( vAssumps );
573 Vec_IntPush( vAssumps, Entry );
575 for ( i = 0; i < Vec_VecSize(vLits); i++ )
576 printf(
"%d ", Vec_IntSize( Vec_VecEntryInt(vLits, i) ) );
580 printf(
"Total PIs = %d. Essential PIs = %d.\n",
581 Saig_ManPiNum(
p->pAig) -
p->nInputs, Vec_VecSize(vLits) );
586 RetValue =
sat_solver_solve( pSat, Vec_IntArray(vAssumps), Vec_IntArray(vAssumps) + Vec_IntSize(vAssumps),
587 (ABC_INT64_T)nConfLimit, (ABC_INT64_T)0, (ABC_INT64_T)0, (ABC_INT64_T)0 );
592 printf(
"Internal Error!!! The resulting problem is SAT.\n" );
594 printf(
"Internal Error!!! SAT solver timed out.\n" );
597 Vec_IntFree( vAssumps );
598 Vec_IntFree( vVar2PiId );
604 nCoreLits = sat_solver_final( pSat, &pCoreLits );
607 printf(
"AnalizeFinal selected %d assumptions (out of %d). Conflicts = %d.\n",
611 Vec_IntClear( vAssumps );
612 for ( i = 0; i < nCoreLits; i++ )
613 Vec_IntPush( vAssumps, pCoreLits[i] );
621 Vec_IntClear( vAssumps );
623 Vec_IntPush( vAssumps, Entry );
630 printf(
"Total PIs = %d. Essential PIs = %d.\n",
631 Saig_ManPiNum(
p->pAig) -
p->nInputs, Vec_VecSize(vLits) );
680 Vec_IntFree( vAssumps );
681 Vec_IntFree( vVar2PiId );
682 Vec_VecFreeP( &vLits );
687 printf(
"Reduced CEX verification has failed.\n" );
690 printf(
"Reduced CEX verification has failed.\n" );
708 int nConfLimit = 1000000;
713 Vec_Int_t * vReasons, * vAssumps, * vVisited, * vVar2PiId;
714 int i, k, f, Entry, RetValue, Counter;
726 vVisited = Vec_IntStart( Saig_ManPiNum(
p->pAig) );
729 assert( Entry >= 0 && Entry < Aig_ManCiNum(
p->pAig) );
730 Vec_IntWriteEntry( vVisited, Entry, 1 );
734 vVar2PiId = Vec_IntStartFull( pCnf->
nVars );
735 vAssumps = Vec_IntAlloc( Aig_ManCiNum(
p->pFrames) );
738 int iInput = Vec_IntEntry(
p->vMapPiF2A, 2*i );
739 int iFrame = Vec_IntEntry(
p->vMapPiF2A, 2*i+1 );
740 if ( Vec_IntEntry(vVisited, iInput) == 0 )
742 RetValue = Abc_InfoHasBit(
p->pCex->pData,
p->pCex->nRegs +
p->pCex->nPis * iFrame + iInput );
743 Vec_IntPush( vAssumps, toLitCond( pCnf->
pVarNums[Aig_ObjId(pObj)], !RetValue ) );
745 Vec_IntWriteEntry( vVar2PiId, pCnf->
pVarNums[Aig_ObjId(pObj)], i );
747 Vec_IntFree( vVisited );
750 RetValue =
sat_solver_solve( pSat, Vec_IntArray(vAssumps), Vec_IntArray(vAssumps) + Vec_IntSize(vAssumps),
751 (ABC_INT64_T)nConfLimit, (ABC_INT64_T)0, (ABC_INT64_T)0, (ABC_INT64_T)0 );
752 printf(
"Assumpts = %2d. Intermediate instance is %5s. Conflicts = %2d.\n",
788 for ( i = 0; i < Vec_VecSize(vLits); i++ )
789 printf(
"%d ", Vec_IntSize( Vec_VecEntryInt(vLits, i) ) );
793 Counter = Vec_VecSize(vLits);
794 for ( f = 0; f < Vec_VecSize(vLits); f++ )
796 Vec_IntClear( vAssumps );
799 Vec_IntPush( vAssumps, Entry );
802 RetValue =
sat_solver_solve( pSat, Vec_IntArray(vAssumps), Vec_IntArray(vAssumps) + Vec_IntSize(vAssumps),
803 (ABC_INT64_T)nConfLimit, (ABC_INT64_T)0, (ABC_INT64_T)0, (ABC_INT64_T)0 );
804 printf(
"Assumpts = %2d. Intermediate instance is %5s. Conflicts = %2d.\n",
810 Vec_IntClear( Vec_VecEntryInt(vLits, f) );
814 for ( i = 0; i < Vec_VecSize(vLits); i++ )
815 printf(
"%d ", Vec_IntSize( Vec_VecEntryInt(vLits, i) ) );
819 Vec_IntClear( vAssumps );
821 Vec_IntPush( vAssumps, Entry );
824 RetValue =
sat_solver_solve( pSat, Vec_IntArray(vAssumps), Vec_IntArray(vAssumps) + Vec_IntSize(vAssumps),
825 (ABC_INT64_T)nConfLimit, (ABC_INT64_T)0, (ABC_INT64_T)0, (ABC_INT64_T)0 );
826 printf(
"Assumpts = %2d. Intermediate instance is %5s. Conflicts = %2d.\n",
835 vReasons = Vec_IntAlloc( 100 );
838 int iPiNum = Vec_IntEntry( vVar2PiId, lit_var(Entry) );
839 assert( iPiNum >= 0 && iPiNum < Aig_ManCiNum(
p->pFrames) );
840 Vec_IntPush( vReasons, iPiNum );
846 Vec_IntFree( vAssumps );
847 Vec_IntFree( vVar2PiId );
848 Vec_VecFreeP( &vLits );
871 clock_t clk = clock();
883 printf(
"Frame PIs = %4d (essential = %4d) AIG PIs = %4d (essential = %4d) ",
884 Aig_ManCiNum(
p->pFrames), Vec_IntSize(vReasons),
885 Saig_ManPiNum(
p->pAig) -
p->nInputs, Vec_IntSize(vRes) );
886ABC_PRT(
"Time", clock() - clk );
892 Vec_IntFree( vReasons );
893 vReasons = Saig_RefManRefineWithSat( p, vRes );
897 vRes = Saig_RefManReason2Inputs( p, vReasons );
898 printf( "Frame PIs = %4d (essential = %4d) AIG PIs = %4d (essential = %4d) ",
899 Aig_ManCiNum(p->pFrames), Vec_IntSize(vReasons),
900 Saig_ManPiNum(p->pAig) - p->nInputs, Vec_IntSize(vRes) );
903ABC_PRT( "Time", clock() - clk );
908 Vec_IntFree( vReasons );
935 if ( Saig_ManPiNum(pAig) != pCex->nPis )
937 printf(
"Saig_ManExtendCounterExampleTest3(): The PI count of AIG (%d) does not match that of cex (%d).\n",
938 Aig_ManCiNum(pAig), pCex->nPis );
950 printf(
"Frame PIs = %4d (essential = %4d) AIG PIs = %4d (essential = %4d) ",
951 Aig_ManCiNum(
p->pFrames), Vec_IntSize(vReasons),
952 Saig_ManPiNum(
p->pAig) -
p->nInputs, Vec_IntSize(vRes) );
953ABC_PRT(
"Time", clock() - clk );
958 Vec_IntFree( vReasons );
959 vReasons = Saig_RefManRefineWithSat( p, vRes );
964 vRes = Saig_RefManReason2Inputs( p, vReasons );
967 printf( "Frame PIs = %4d (essential = %4d) AIG PIs = %4d (essential = %4d) ",
968 Aig_ManCiNum(p->pFrames), Vec_IntSize(vReasons),
969 Saig_ManPiNum(p->pAig) - p->nInputs, Vec_IntSize(vRes) );
970ABC_PRT( "Time", clock() - clk );
974 Vec_IntFree( vReasons );
#define ABC_CALLOC(type, num)
#define ABC_NAMESPACE_IMPL_START
#define ABC_NAMESPACE_IMPL_END
void Aig_ManSetRegNum(Aig_Man_t *p, int nRegs)
void Aig_ManIncrementTravId(Aig_Man_t *p)
DECLARATIONS ///.
#define Aig_ManForEachCi(p, pObj, i)
ITERATORS ///.
Aig_Obj_t * Aig_And(Aig_Man_t *p, Aig_Obj_t *p0, Aig_Obj_t *p1)
Aig_Obj_t * Aig_ObjCreateCo(Aig_Man_t *p, Aig_Obj_t *pDriver)
void Aig_ManStopP(Aig_Man_t **p)
struct Aig_Obj_t_ Aig_Obj_t
Aig_Man_t * Aig_ManStart(int nNodesMax)
DECLARATIONS ///.
void Aig_ManPrintStats(Aig_Man_t *p)
#define Aig_ManForEachNode(p, pObj, i)
typedefABC_NAMESPACE_HEADER_START struct Aig_Man_t_ Aig_Man_t
INCLUDES ///.
int Aig_ManCleanup(Aig_Man_t *p)
#define Aig_ManForEachCo(p, pObj, i)
Aig_Obj_t * Aig_ObjCreateCi(Aig_Man_t *p)
DECLARATIONS ///.
#define Aig_ManForEachObjVec(vIds, p, pObj, i)
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
Cnf_Dat_t * Cnf_DeriveSimple(Aig_Man_t *p, int nOutputs)
void Cnf_DataTranformPolarity(Cnf_Dat_t *pCnf, int fTransformPos)
struct Cnf_Dat_t_ Cnf_Dat_t
void Cnf_DataFree(Cnf_Dat_t *p)
void * Cnf_DataWriteIntoSolver(Cnf_Dat_t *p, int nFrames, int fInit)
void Saig_RefManStop(Saig_RefMan_t *p)
Abc_Cex_t * Saig_RefManReason2Cex(Saig_RefMan_t *p, Vec_Int_t *vReasons)
typedefABC_NAMESPACE_IMPL_START struct Saig_RefMan_t_ Saig_RefMan_t
DECLARATIONS ///.
void Saig_RefManFindReason_rec(Aig_Man_t *p, Aig_Obj_t *pObj, Vec_Int_t *vPrios, Vec_Int_t *vReasons)
Abc_Cex_t * Saig_RefManCreateCex(Saig_RefMan_t *p, Vec_Int_t *vVar2PiId, Vec_Int_t *vAssumps)
Abc_Cex_t * Saig_RefManRunSat(Saig_RefMan_t *p, int fNewOrder)
Abc_Cex_t * Saig_ManFindCexCareBits(Aig_Man_t *pAig, Abc_Cex_t *pCex, int nInputs, int fNewOrder, int fVerbose)
void Saig_ManUnrollCollect_rec(Aig_Man_t *pAig, Aig_Obj_t *pObj, Vec_Int_t *vObjs, Vec_Int_t *vRoots)
Vec_Int_t * Saig_RefManFindReason(Saig_RefMan_t *p)
Vec_Int_t * Saig_RefManRefineWithSat(Saig_RefMan_t *p, Vec_Int_t *vAigPis)
Saig_RefMan_t * Saig_RefManStart(Aig_Man_t *pAig, Abc_Cex_t *pCex, int nInputs, int fVerbose)
Vec_Int_t * Saig_ManExtendCounterExampleTest3(Aig_Man_t *pAig, int iFirstFlopPi, Abc_Cex_t *pCex, int fVerbose)
Aig_Man_t * Saig_ManUnrollWithCex(Aig_Man_t *pAig, Abc_Cex_t *pCex, int nInputs, Vec_Int_t **pvMapPiF2A)
Vec_Int_t * Saig_RefManReason2Inputs(Saig_RefMan_t *p, Vec_Int_t *vReasons)
FUNCTION DEFINITIONS ///.
int Saig_RefManSetPhases(Saig_RefMan_t *p, Abc_Cex_t *pCare, int fValue1)
Vec_Vec_t * Saig_RefManOrderLiterals(Saig_RefMan_t *p, Vec_Int_t *vVar2PiId, Vec_Int_t *vAssumps)
int Saig_ManSimDataInit(Aig_Man_t *p, Abc_Cex_t *pCex, Vec_Ptr_t *vSimInfo, Vec_Int_t *vRes)
#define Saig_ManForEachLo(p, pObj, i)
void sat_solver_delete(sat_solver *s)
Abc_Cex_t * Abc_CexDup(Abc_Cex_t *p, int nRegsNew)
void Abc_CexPrintStats(Abc_Cex_t *p)
typedefABC_NAMESPACE_HEADER_START struct Abc_Cex_t_ Abc_Cex_t
INCLUDES ///.
#define Vec_IntForEachEntry(vVec, Entry, i)
MACRO DEFINITIONS ///.
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.
#define Vec_VecForEachEntryInt(vGlob, Entry, i, k)
typedefABC_NAMESPACE_HEADER_START struct Vec_Vec_t_ Vec_Vec_t
INCLUDES ///.