146 int v, k, nVarMax = 10;
151 vSets = Vec_PtrAlloc( 16 );
152 Vec_PtrPush( vSets, Vec_PtrAlloc(0) );
154 vOne = Vec_PtrAlloc( 1 );
155 Vec_PtrPush( vOne, Abc_UtilStrsav(
"*a") );
156 Vec_PtrPush( vSets, vOne );
158 for ( v = 2; v <= nVarMax; v++ )
161 char * pNameI, * pNameJ, * pNameK;
162 int i, j, k, i1, j1, k1;
163 vOne = Vec_PtrAlloc( 100 );
164 for ( i = 1; i < v; i++ )
165 for ( j = i; j < v; j++ )
169 vSetI = (
Vec_Ptr_t *)Vec_PtrEntry( vSets, i );
170 vSetJ = (
Vec_Ptr_t *)Vec_PtrEntry( vSets, j );
177 if ( pNameI[0] !=
'*' )
180 if ( pNameJ[0] !=
'*' && !(i == j && i1 == j1) )
183 if ( pNameI[0] !=
'*' && pNameJ[0] !=
'*' )
186 Dau_EnumCombineTwo( vOne, pNameI[0] ==
'*' || pNameJ[0] ==
'*', 1, pNameI, pNameJ, i, 0, 0 );
189 for ( k = 1; k < v; k++ )
190 for ( i = 1; i < v; i++ )
191 for ( j = i; j < v; j++ )
193 if ( k + i + j != v )
195 vSetK = (
Vec_Ptr_t *)Vec_PtrEntry( vSets, k );
196 vSetI = (
Vec_Ptr_t *)Vec_PtrEntry( vSets, i );
197 vSetJ = (
Vec_Ptr_t *)Vec_PtrEntry( vSets, j );
202 int fStar = pNameI[0] ==
'*' && pNameJ[0] ==
'*';
207 if ( pNameI[0] !=
'*' )
210 if ( pNameJ[0] !=
'*' && !(i == j && i1 == j1) )
213 if ( pNameK[0] !=
'*' && !(i == j && i1 == j1) )
218 if ( pNameI[0] !=
'*' )
221 if ( pNameJ[0] !=
'*' )
226 Vec_PtrPush( vSets, vOne );
232 printf(
"VARIABLE NUMBER %d:\n", v );
234 printf(
"%s\n", pName );
240 printf(
"%d=%d ", v, Vec_PtrSize(vOne) );
241 Vec_PtrFreeFree( vOne );
243 Vec_PtrFree( vSets );