46 fprintf( pFile,
".model FA\n" );
47 fprintf( pFile,
".inputs a b cin\n" );
48 fprintf( pFile,
".outputs s cout\n" );
49 fprintf( pFile,
".names a b k\n" );
50 fprintf( pFile,
"10 1\n" );
51 fprintf( pFile,
"01 1\n" );
52 fprintf( pFile,
".names k cin s\n" );
53 fprintf( pFile,
"10 1\n" );
54 fprintf( pFile,
"01 1\n" );
55 fprintf( pFile,
".names a b cin cout\n" );
56 fprintf( pFile,
"11- 1\n" );
57 fprintf( pFile,
"1-1 1\n" );
58 fprintf( pFile,
"-11 1\n" );
59 fprintf( pFile,
".end\n" );
60 fprintf( pFile,
"\n" );
67 fprintf( pFile,
".model ADD%d\n", nVars );
69 fprintf( pFile,
".inputs" );
70 for ( i = 0; i < nVars; i++ )
71 fprintf( pFile,
" a%0*d", nDigits, i );
72 for ( i = 0; i < nVars; i++ )
73 fprintf( pFile,
" b%0*d", nDigits, i );
74 fprintf( pFile,
"\n" );
76 fprintf( pFile,
".outputs" );
77 for ( i = 0; i <= nVars; i++ )
78 fprintf( pFile,
" s%0*d", nDigits, i );
79 fprintf( pFile,
"\n" );
81 fprintf( pFile,
".names c\n" );
83 fprintf( pFile,
".subckt FA a=a0 b=b0 cin=c s=y0 cout=s1\n" );
86 fprintf( pFile,
".subckt FA a=a%0*d b=b%0*d cin=c s=s%0*d cout=%0*d\n", nDigits, 0, nDigits, 0, nDigits, 0, nDigits, 0 );
87 for ( i = 1; i < nVars-1; i++ )
88 fprintf( pFile,
".subckt FA a=a%0*d b=b%0*d cin=%0*d s=s%0*d cout=%0*d\n", nDigits, i, nDigits, i, nDigits, i-1, nDigits, i, nDigits, i );
89 fprintf( pFile,
".subckt FA a=a%0*d b=b%0*d cin=%0*d s=s%0*d cout=s%0*d\n", nDigits, i, nDigits, i, nDigits, i-1, nDigits, i, nDigits, i+1 );
91 fprintf( pFile,
".end\n" );
92 fprintf( pFile,
"\n" );
99 pFile = fopen( pFileName,
"w" );
100 fprintf( pFile,
"# %d-bit ripple-carry adder generated by ABC on %s\n", nVars,
Extra_TimeStamp() );
121 fprintf( pFile,
".model Multi%d\n", nVars );
123 fprintf( pFile,
".inputs" );
124 for ( i = 0; i < nVars; i++ )
125 fprintf( pFile,
" a%0*d", nDigits, i );
126 for ( i = 0; i < nVars; i++ )
127 fprintf( pFile,
" b%0*d", nDigits, i );
128 fprintf( pFile,
"\n" );
130 fprintf( pFile,
".outputs" );
131 for ( i = 0; i < 2*nVars; i++ )
132 fprintf( pFile,
" m%0*d", nDigits2, i );
133 fprintf( pFile,
"\n" );
135 for ( i = 0; i < 2*nVars; i++ )
136 fprintf( pFile,
".names x%0*d_%0*d\n", nDigits, 0, nDigits2, i );
137 for ( k = 0; k < nVars; k++ )
139 for ( i = 0; i < 2 * nVars; i++ )
140 if ( i >= k && i < k + nVars )
141 fprintf( pFile,
".names b%0*d a%0*d y%0*d_%0*d\n11 1\n", nDigits, k, nDigits, i-k, nDigits, k, nDigits2, i );
143 fprintf( pFile,
".names y%0*d_%0*d\n", nDigits, k, nDigits2, i );
144 fprintf( pFile,
".subckt ADD%d", 2*nVars );
145 for ( i = 0; i < 2*nVars; i++ )
146 fprintf( pFile,
" a%0*d=x%0*d_%0*d", nDigits2, i, nDigits, k, nDigits2, i );
147 for ( i = 0; i < 2*nVars; i++ )
148 fprintf( pFile,
" b%0*d=y%0*d_%0*d", nDigits2, i, nDigits, k, nDigits2, i );
149 for ( i = 0; i <= 2*nVars; i++ )
150 fprintf( pFile,
" s%0*d=x%0*d_%0*d", nDigits2, i, nDigits, k+1, nDigits2, i );
151 fprintf( pFile,
"\n" );
153 for ( i = 0; i < 2 * nVars; i++ )
154 fprintf( pFile,
".names x%0*d_%0*d m%0*d\n1 1\n", nDigits, k, nDigits2, i, nDigits2, i );
155 fprintf( pFile,
".end\n" );
156 fprintf( pFile,
"\n" );
163 pFile = fopen( pFileName,
"w" );
164 fprintf( pFile,
"# %d-bit multiplier generated by ABC on %s\n", nVars,
Extra_TimeStamp() );
182 fprintf( pFile,
".model Comp\n" );
183 fprintf( pFile,
".inputs a b\n" );
184 fprintf( pFile,
".outputs x y\n" );
185 fprintf( pFile,
".names a b x\n" );
186 fprintf( pFile,
"11 1\n" );
187 fprintf( pFile,
".names a b y\n" );
188 fprintf( pFile,
"1- 1\n" );
189 fprintf( pFile,
"-1 1\n" );
190 fprintf( pFile,
".end\n" );
191 fprintf( pFile,
"\n" );
196 fprintf( pFile,
".model Layer%d\n", fSkip1 );
197 fprintf( pFile,
".inputs" );
198 for ( i = 0; i < nVars; i++ )
199 fprintf( pFile,
" x%02d", i );
200 fprintf( pFile,
"\n" );
201 fprintf( pFile,
".outputs" );
202 for ( i = 0; i < nVars; i++ )
203 fprintf( pFile,
" y%02d", i );
204 fprintf( pFile,
"\n" );
207 fprintf( pFile,
".names x00 y00\n" );
208 fprintf( pFile,
"1 1\n" );
213 for ( ; i + 1 < nVars; i += 2 )
214 fprintf( pFile,
".subckt Comp a=x%02d b=x%02d x=y%02d y=y%02d\n", i, i+1, i, i+1 );
217 fprintf( pFile,
".names x%02d y%02d\n", i, i );
218 fprintf( pFile,
"1 1\n" );
220 fprintf( pFile,
".end\n" );
221 fprintf( pFile,
"\n" );
242 pFile = fopen( pFileName,
"w" );
243 fprintf( pFile,
"# %d-bit sorter generated by ABC on %s\n", nVars,
Extra_TimeStamp() );
244 fprintf( pFile,
".model Sorter%02d\n", nVars );
246 fprintf( pFile,
".inputs" );
247 for ( i = 0; i < nVars; i++ )
248 fprintf( pFile,
" x%02d", i );
249 fprintf( pFile,
"\n" );
251 fprintf( pFile,
".outputs" );
252 for ( i = 0; i < nVars; i++ )
253 fprintf( pFile,
" y%02d", i );
254 fprintf( pFile,
"\n" );
259 fprintf( pFile,
".subckt Comp a=x00 b=x01 x=y00 y=y01\n" );
262 fprintf( pFile,
".subckt Layer0" );
263 for ( k = 0; k < nVars; k++ )
264 fprintf( pFile,
" x%02d=x%02d", k, k );
265 for ( k = 0; k < nVars; k++ )
266 fprintf( pFile,
" y%02d=%0*d", k, nDigits, Counter++ );
267 fprintf( pFile,
"\n" );
269 for ( i = 1; i < 2*nVars-2; i++ )
271 fprintf( pFile,
".subckt Layer%d", (i&1) );
272 for ( k = 0; k < nVars; k++ )
273 fprintf( pFile,
" x%02d=%0*d", k, nDigits, Counter++ );
274 for ( k = 0; k < nVars; k++ )
275 fprintf( pFile,
" y%02d=%0*d", k, nDigits, Counter++ );
276 fprintf( pFile,
"\n" );
279 fprintf( pFile,
".subckt Layer%d", (i&1) );
280 for ( k = 0; k < nVars; k++ )
281 fprintf( pFile,
" x%02d=%0*d", k, nDigits, Counter++ );
282 for ( k = 0; k < nVars; k++ )
283 fprintf( pFile,
" y%02d=y%02d", k, k );
284 fprintf( pFile,
"\n" );
286 fprintf( pFile,
".end\n" );
287 fprintf( pFile,
"\n" );
308 fprintf( pFile,
".model cell\n" );
309 fprintf( pFile,
".inputs px1 px2 py1 py2 x y\n" );
310 fprintf( pFile,
".outputs fx fy\n" );
311 fprintf( pFile,
".names x y a\n" );
312 fprintf( pFile,
"11 1\n" );
313 fprintf( pFile,
".names px1 a x nx\n" );
314 fprintf( pFile,
"11- 1\n" );
315 fprintf( pFile,
"0-1 1\n" );
316 fprintf( pFile,
".names py1 a y ny\n" );
317 fprintf( pFile,
"11- 1\n" );
318 fprintf( pFile,
"0-1 1\n" );
319 fprintf( pFile,
".names px2 nx fx\n" );
320 fprintf( pFile,
"10 1\n" );
321 fprintf( pFile,
"01 1\n" );
322 fprintf( pFile,
".names py2 ny fy\n" );
323 fprintf( pFile,
"10 1\n" );
324 fprintf( pFile,
"01 1\n" );
325 fprintf( pFile,
".end\n" );
326 fprintf( pFile,
"\n" );
347 pFile = fopen( pFileName,
"w" );
348 fprintf( pFile,
"# %dx%d mesh generated by ABC on %s\n", nVars, nVars,
Extra_TimeStamp() );
349 fprintf( pFile,
".model mesh%d\n", nVars );
351 for ( i = 0; i < nVars; i++ )
352 for ( k = 0; k < nVars; k++ )
354 fprintf( pFile,
".inputs" );
355 fprintf( pFile,
" p%d%dx1", i, k );
356 fprintf( pFile,
" p%d%dx2", i, k );
357 fprintf( pFile,
" p%d%dy1", i, k );
358 fprintf( pFile,
" p%d%dy2", i, k );
359 fprintf( pFile,
"\n" );
361 fprintf( pFile,
".inputs" );
362 for ( i = 0; i < nVars; i++ )
363 fprintf( pFile,
" v%02d v%02d", 2*i, 2*i+1 );
364 fprintf( pFile,
"\n" );
366 fprintf( pFile,
".outputs" );
367 fprintf( pFile,
" fx00" );
368 fprintf( pFile,
"\n" );
370 for ( i = 0; i < nVars; i++ )
371 for ( k = 0; k < nVars; k++ )
373 fprintf( pFile,
".subckt cell" );
374 fprintf( pFile,
" px1=p%d%dx1", i, k );
375 fprintf( pFile,
" px2=p%d%dx2", i, k );
376 fprintf( pFile,
" py1=p%d%dy1", i, k );
377 fprintf( pFile,
" py2=p%d%dy2", i, k );
378 if ( k == nVars - 1 )
379 fprintf( pFile,
" x=v%02d", i );
381 fprintf( pFile,
" x=fx%d%d", i, k+1 );
382 if ( i == nVars - 1 )
383 fprintf( pFile,
" y=v%02d", nVars+k );
385 fprintf( pFile,
" y=fy%d%d", i+1, k );
387 fprintf( pFile,
" fx=fx%d%d", i, k );
388 fprintf( pFile,
" fy=fy%d%d", i, k );
389 fprintf( pFile,
"\n" );
391 fprintf( pFile,
".end\n" );
392 fprintf( pFile,
"\n" );
393 fprintf( pFile,
"\n" );
413 int i, iVar, iNext, nPars = (1 << nLutSize);
414 fprintf( pFile,
"\n" );
415 fprintf( pFile,
".model lut%d\n", nLutSize );
416 fprintf( pFile,
".inputs" );
417 for ( i = 0; i < nPars; i++ )
418 fprintf( pFile,
" p%02d", i );
419 fprintf( pFile,
"\n" );
420 fprintf( pFile,
".inputs" );
421 for ( i = 0; i < nLutSize; i++ )
422 fprintf( pFile,
" i%d", i );
423 fprintf( pFile,
"\n" );
424 fprintf( pFile,
".outputs o\n" );
425 fprintf( pFile,
".names n01 o\n" );
426 fprintf( pFile,
"1 1\n" );
430 for ( i = 1; i < nPars; i++ )
437 if ( iVar == nLutSize - 1 )
438 fprintf( pFile,
".names i%d p%02d p%02d n%02d\n", iVar, 2*(i-nPars/2), 2*(i-nPars/2)+1, i );
440 fprintf( pFile,
".names i%d n%02d n%02d n%02d\n", iVar, 2*i, 2*i+1, i );
441 fprintf( pFile,
"01- 1\n" );
442 fprintf( pFile,
"1-1 1\n" );
444 fprintf( pFile,
".end\n" );
445 fprintf( pFile,
"\n" );
459 void Abc_GenFpga(
char * pFileName,
int nLutSize,
int nLuts,
int nVars )
461 int fGenerateFunc = 1;
463 int nVarsLut = (1 << nLutSize);
465 int nVarsDeg = (1 << nVarsLog);
466 int nParsLut = nLuts * (1 << nLutSize);
467 int nParsVar = nLuts * nLutSize * nVarsLog;
472 pFile = fopen( pFileName,
"w" );
473 fprintf( pFile,
"# Structure with %d %d-LUTs for %d-var function generated by ABC on %s\n", nLuts, nLutSize, nVars,
Extra_TimeStamp() );
474 fprintf( pFile,
".model struct%dx%d_%d\n", nLuts, nLutSize, nVars );
476 fprintf( pFile,
".inputs" );
477 for ( i = 0; i < nParsLut; i++ )
481 fprintf( pFile,
" pl%02d", i );
483 fprintf( pFile,
"\n" );
485 fprintf( pFile,
".inputs" );
486 for ( i = 0; i < nParsVar; i++ )
487 fprintf( pFile,
" pv%02d", i );
488 fprintf( pFile,
"\n" );
490 fprintf( pFile,
".inputs" );
491 for ( i = 0; i < nVars; i++ )
492 fprintf( pFile,
" v%02d", i );
493 fprintf( pFile,
"\n" );
495 fprintf( pFile,
".outputs" );
497 fprintf( pFile,
" out" );
498 fprintf( pFile,
"\n" );
499 fprintf( pFile,
".names Gnd\n" );
500 fprintf( pFile,
" 0\n" );
505 fprintf( pFile,
".names v%02d func out\n", nVars + nLuts - 1 );
506 fprintf( pFile,
"00 1\n11 1\n" );
507 fprintf( pFile,
".names" );
508 for ( i = 0; i < nVars; i++ )
509 fprintf( pFile,
" v%02d", i );
510 fprintf( pFile,
" func\n" );
511 for ( i = 0; i < nVars; i++ )
512 fprintf( pFile,
"1" );
513 fprintf( pFile,
" 1\n" );
516 fprintf( pFile,
".names v%02d out\n1 1\n", nVars + nLuts - 1 );
519 for ( i = 0; i < nLuts; i++ )
521 fprintf( pFile,
".subckt lut%d", nLutSize );
523 for ( k = 0; k < nVarsLut; k++ )
524 fprintf( pFile,
" p%02d=pl%02d", k, i * nVarsLut + k );
526 for ( k = 0; k < nLutSize; k++ )
527 fprintf( pFile,
" i%d=s%02d", k, i * nLutSize + k );
529 fprintf( pFile,
" o=v%02d", nVars + i );
530 fprintf( pFile,
"\n" );
534 for ( i = 0; i < nLuts; i++ )
536 for ( j = 0; j < nLutSize; j++ )
538 fprintf( pFile,
".subckt lut%d", nVarsLog );
540 for ( k = 0; k < nVarsDeg; k++ )
542 if ( k < nVars + nLuts - 1 && k < nVars + i )
543 fprintf( pFile,
" p%02d=v%02d", k, k );
545 fprintf( pFile,
" p%02d=Gnd", k );
548 for ( k = 0; k < nVarsLog; k++ )
549 fprintf( pFile,
" i%d=pv%02d", k, (i * nLutSize + j) * nVarsLog + k );
551 fprintf( pFile,
" o=s%02d", i * nLutSize + j );
552 fprintf( pFile,
"\n" );
556 fprintf( pFile,
".end\n" );
557 fprintf( pFile,
"\n" );
561 if ( nVarsLog != nLutSize )
580 int i, k,
Counter, nDigitsIn, nDigitsOut;
581 pFile = fopen( pFileName,
"w" );
582 fprintf( pFile,
"# One-hotness condition for %d vars generated by ABC on %s\n", nVars,
Extra_TimeStamp() );
583 fprintf( pFile,
".model 1hot_%dvars\n", nVars );
584 fprintf( pFile,
".inputs" );
586 for ( i = 0; i < nVars; i++ )
587 fprintf( pFile,
" i%0*d", nDigitsIn, i );
588 fprintf( pFile,
"\n" );
589 fprintf( pFile,
".outputs" );
591 for ( i = 0; i < nVars * (nVars - 1) / 2; i++ )
592 fprintf( pFile,
" o%0*d", nDigitsOut, i );
593 fprintf( pFile,
"\n" );
595 for ( i = 0; i < nVars; i++ )
596 for ( k = i+1; k < nVars; k++ )
598 fprintf( pFile,
".names i%0*d i%0*d o%0*d\n", nDigitsIn, i, nDigitsIn, k, nDigitsOut, Counter );
599 fprintf( pFile,
"11 0\n" );
602 fprintf( pFile,
".end\n" );
603 fprintf( pFile,
"\n" );
622 int i, j, k, iReg1, iReg2,
Counter, Counter2, nDigitsIn, nDigitsOut;
623 pFile = fopen( pFileName,
"w" );
624 fprintf( pFile,
"# One-hotness with %d vars and %d regs generated by ABC on %s\n", nPis, nRegs,
Extra_TimeStamp() );
625 fprintf( pFile,
"# Used %d intervals of 1-hot registers: { ",
Vec_PtrSize(vOnehots) );
632 fprintf( pFile,
"}\n" );
633 fprintf( pFile,
".model 1hot_%dvars_%dregs\n", nPis, nRegs );
634 fprintf( pFile,
".inputs" );
636 for ( i = 0; i < nPis+nRegs; i++ )
637 fprintf( pFile,
" i%0*d", nDigitsIn, i );
638 fprintf( pFile,
"\n" );
639 fprintf( pFile,
".outputs" );
641 for ( i = 0; i <
Counter; i++ )
642 fprintf( pFile,
" o%0*d", nDigitsOut, i );
643 fprintf( pFile,
"\n" );
650 fprintf( pFile,
".names i%0*d i%0*d o%0*d\n", nDigitsIn, nPis+iReg1, nDigitsIn, nPis+iReg2, nDigitsOut, Counter2 );
651 fprintf( pFile,
"11 0\n" );
655 assert( Counter == Counter2 );
656 fprintf( pFile,
".end\n" );
657 fprintf( pFile,
"\n" );
687 for ( w = 0; w <
nWords; w++ )
689 pFile = fopen( pFileName,
"w" );
690 fprintf( pFile,
"# Random function with %d inputs generated by ABC on %s\n", nPis,
Extra_TimeStamp() );
691 fprintf( pFile,
".model rand%d\n", nPis );
692 fprintf( pFile,
".inputs" );
694 for ( i = 0; i < nPis; i++ )
695 fprintf( pFile,
" i%0*d", nDigitsIn, i );
696 fprintf( pFile,
"\n" );
697 fprintf( pFile,
".outputs f\n" );
698 fprintf( pFile,
".names" );
700 for ( i = 0; i < nPis; i++ )
701 fprintf( pFile,
" i%0*d", nDigitsIn, i );
702 fprintf( pFile,
" f\n" );
703 for ( i = 0; i < (1<<nPis); i++ )
706 for ( b = nPis-1; b >= 0; b-- )
707 fprintf( pFile,
"%d", (i>>b)&1 );
708 fprintf( pFile,
" 1\n" );
710 fprintf( pFile,
".end\n" );
711 fprintf( pFile,
"\n" );
732 for ( i = 0; i < nPis; i++ )
735 if ( Rand % 100 > Prob )
744 void Abc_GenFsm(
char * pFileName,
int nPis,
int nPos,
int nStates,
int nLines,
int ProbI,
int ProbO )
749 int i, iState, iState2;
754 for ( i = 0; i < nStates; )
762 for ( ; i < nLines; )
766 if ( iState2 == iState )
773 pFile = fopen( pFileName,
"w" );
774 fprintf( pFile,
"# This random FSM was generated by ABC on %s\n",
Extra_TimeStamp() );
775 fprintf( pFile,
"# Command line was: \"genfsm -I %d -O %d -S %d -L %d -P %d -Q %d %s\"\n", nPis, nPos, nStates, nLines, ProbI, ProbO, pFileName );
776 fprintf( pFile,
"# FSM has %d inputs, %d outputs, %d states, and %d products\n", nPis, nPos, nStates, nLines );
777 fprintf( pFile,
".i %d\n", nPis );
778 fprintf( pFile,
".o %d\n", nPos );
779 fprintf( pFile,
".p %d\n", nLines );
780 fprintf( pFile,
".s %d\n", nStates );
781 for ( i = 0; i < nLines; i++ )
785 fprintf( pFile,
"%0*d ", nDigits, (
int)(
Vec_WrdEntry(vStates, i) >> 32) );
786 fprintf( pFile,
"%0*d ", nDigits, (
int)(
Vec_WrdEntry(vStates, i)) );
792 fprintf( pFile,
"\n" );
794 fprintf( pFile,
".e" );
795 fprintf( pFile,
"\n" );
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.
ABC_NAMESPACE_IMPL_START void Abc_WriteFullAdder(FILE *pFile)
DECLARATIONS ///.
void Abc_GenFsmCond(Vec_Str_t *vCond, int nPis, int Prob)
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
void Abc_WriteComp(FILE *pFile)
static char * Vec_StrArray(Vec_Str_t *p)
static int Abc_InfoHasBit(unsigned *p, int i)
static void Vec_WrdPush(Vec_Wrd_t *p, word Entry)
static void Vec_StrClear(Vec_Str_t *p)
void Abc_GenAdder(char *pFileName, int nVars)
#define ABC_ALLOC(type, num)
unsigned Aig_ManRandom(int fReset)
void Abc_WriteKLut(FILE *pFile, int nLutSize)
static int Abc_TruthWordNum(int nVars)
static Vec_Str_t * Vec_StrAlloc(int nCap)
static void Vec_StrPush(Vec_Str_t *p, char Entry)
static int Vec_PtrSize(Vec_Ptr_t *p)
void Abc_GenSorter(char *pFileName, int nVars)
void Abc_GenFpga(char *pFileName, int nLutSize, int nLuts, int nVars)
void Abc_WriteCell(FILE *pFile)
void Abc_GenMulti(char *pFileName, int nVars)
void Abc_GenFsm(char *pFileName, int nPis, int nPos, int nStates, int nLines, int ProbI, int ProbO)
static void Vec_StrFree(Vec_Str_t *p)
void Abc_GenOneHotIntervals(char *pFileName, int nPis, int nRegs, Vec_Ptr_t *vOnehots)
unsigned __int64 word
DECLARATIONS ///.
static int Abc_Base10Log(unsigned n)
#define ABC_NAMESPACE_IMPL_END
static void Vec_WrdFree(Vec_Wrd_t *p)
void Abc_WriteAdder(FILE *pFile, int nVars)
#define Vec_IntForEachEntryStart(vVec, Entry, i, Start)
void Abc_GenMesh(char *pFileName, int nVars)
void Abc_WriteMulti(FILE *pFile, int nVars)
static Vec_Wrd_t * Vec_WrdAlloc(int nCap)
FUNCTION DEFINITIONS ///.
#define ABC_NAMESPACE_IMPL_START
static int Vec_IntSize(Vec_Int_t *p)
static void Vec_WrdSort(Vec_Wrd_t *p, int fReverse)
static int Abc_Base2Log(unsigned n)
static word Vec_WrdEntry(Vec_Wrd_t *p, int i)
void Abc_WriteLayer(FILE *pFile, int nVars, int fSkip1)
ABC_NAMESPACE_IMPL_END ABC_NAMESPACE_IMPL_START void Abc_GenRandom(char *pFileName, int nPis)
void Abc_GenOneHot(char *pFileName, int nVars)
#define Vec_PtrForEachEntry(Type, vVec, pEntry, i)
MACRO DEFINITIONS ///.
#define Vec_IntForEachEntry(vVec, Entry, i)
MACRO DEFINITIONS ///.
typedefABC_NAMESPACE_HEADER_START struct Vec_Wrd_t_ Vec_Wrd_t
INCLUDES ///.