79 int k, iLit, iLit0, iLit1;
84 assert( Vec_IntSize(vRes) == 0 );
87 assert( Vec_IntSize(vArg) == nRange );
89 Vec_IntPush( vRes, Abc_LitNot(iLit) );
94 assert( Vec_IntSize(vArg) == nRange );
96 Vec_IntPush( vRes, iLit );
101 assert( Vec_IntSize(vArg) == nRange );
102 Wlc_BlastMinus( pNew, Vec_IntArray(vArg), Vec_IntSize(vArg), vRes );
109 for ( k = 1; k < nRange; k++ )
110 Vec_IntPush( vRes, 0 );
117 for ( k = 1; k < nRange; k++ )
118 Vec_IntPush( vRes, 0 );
125 for ( k = 1; k < nRange; k++ )
126 Vec_IntPush( vRes, 0 );
133 for ( k = 1; k < nRange; k++ )
134 Vec_IntPush( vRes, 0 );
141 Vec_IntFill( vRes, 1, Abc_LitNot(iLit) );
142 for ( k = 1; k < nRange; k++ )
143 Vec_IntPush( vRes, 0 );
155 int nRangeMax = Abc_MaxInt( nRange, Abc_MaxInt(Vec_IntSize(vArg0), Vec_IntSize(vArg1)) );
156 int nSizeArg0 = Vec_IntSize(vArg0);
157 int nSizeArg1 = Vec_IntSize(vArg1);
160 assert( Vec_IntSize(vArg0) == Vec_IntSize(vArg1) );
161 assert( Vec_IntSize(vRes) == 0 );
168 for ( k = 1; k < nRange; k++ )
169 Vec_IntPush( vRes, 0 );
178 for ( k = 1; k < nRange; k++ )
179 Vec_IntPush( vRes, 0 );
187 Vec_IntShrink( vRes, nRange );
194 Vec_IntShrink( vRes, nRange );
201 Vec_IntShrink( vRes, nRange );
206 assert( Vec_IntSize(vArg0) == nRange );
208 Vec_IntPush( vRes, Abc_LitNot(
Gia_ManHashXor(pNew, iLit0, iLit1)) );
209 Vec_IntShrink( vRes, nRange );
227 for ( k = 1; k < nRange; k++ )
228 Vec_IntPush( vRes, 0 );
234 int fSigned = fSign0 && fSign1;
237 assert( Vec_IntSize(vArg0) == Vec_IntSize(vArg1) );
242 iLit =
Wlc_BlastLessSigned( pNew, Vec_IntArray(vArg0), Vec_IntArray(vArg1), Vec_IntSize(vArg0) );
244 iLit =
Wlc_BlastLess( pNew, Vec_IntArray(vArg0), Vec_IntArray(vArg1), Vec_IntSize(vArg0) );
245 iLit = Abc_LitNotCond( iLit, fCompl );
246 Vec_IntFill( vRes, 1, iLit );
247 for ( k = 1; k < nRange; k++ )
248 Vec_IntPush( vRes, 0 );
260 Vec_IntShrink( vArg1, nSizeArg1 );
264 Wlc_BlastShiftLeft( pNew, Vec_IntArray(vArg0), nRangeMax, Vec_IntArray(vArg1), nSizeArg1, 0, vRes );
265 Vec_IntShrink( vRes, nRange );
280 Vec_IntAppend( vRes, vArg0 );
282 Wlc_BlastAdder( pNew, Vec_IntArray(vRes), Vec_IntArray(vArg1), nRangeMax, 0 );
284 Wlc_BlastSubtract( pNew, Vec_IntArray(vRes), Vec_IntArray(vArg1), nRangeMax, 1 );
285 Vec_IntShrink( vRes, nRange );
292 int fSigned = fSign0 && fSign1;
294 Vec_IntShrink( vArg0, nSizeArg0 );
295 Vec_IntShrink( vArg1, nSizeArg1 );
306 Wlc_BlastBooth( pNew, Vec_IntArray(vArg0), Vec_IntArray(vArg1), Vec_IntSize(vArg0), Vec_IntSize(vArg1), vRes, fSigned, fCla, NULL, 0 );
308 Wlc_BlastMultiplier3( pNew, Vec_IntArray(vArg0), Vec_IntArray(vArg1), Vec_IntSize(vArg0), Vec_IntSize(vArg1), vRes, fSigned, fCla, NULL, 0 );
309 if ( nRange > Vec_IntSize(vRes) )
310 Vec_IntFillExtra( vRes, nRange, fSigned ? Vec_IntEntryLast(vRes) : 0 );
312 Vec_IntShrink( vRes, nRange );
313 assert( Vec_IntSize(vRes) == nRange );
322 int fSigned = fSign0 && fSign1;
327 Vec_IntShrink( vRes, nRange );
335 Vec_IntGrow( vTemp, nRangeMax );
336 Vec_IntGrow( vRes, nRangeMax );
337 Vec_IntShrink( vArg1, nSizeArg1 );
338 Wlc_BlastPower( pNew, Vec_IntArray(vArg0), nRangeMax, Vec_IntArray(vArg1), Vec_IntSize(vArg1), vTemp, vRes );
339 Vec_IntShrink( vRes, nRange );
352 int iCtrl = Vec_IntEntry(vArgS, 0);
356 assert( Vec_IntSize(vArg0) == Vec_IntSize(vArg1) );
357 assert( Vec_IntSize(vArg0) == nRange );
358 assert( Vec_IntSize(vArgS) == 1 );
359 assert( Vec_IntSize(vRes) == 0 );
372 assert( Vec_IntSize(vArgA) == nRange );
373 assert( Vec_IntSize(vArgB) == Vec_IntSize(vArgA)*Vec_IntSize(vArgS) );
374 assert( Vec_IntSize(vRes) == 0 );
375 for ( i = 0; i < nRange; i++ )
378 Vec_IntClear( vTemp );
382 Vec_IntPush( vTemp, Abc_LitNot(
Gia_ManHashAnd(pNew, iLit, Vec_IntEntry(vArgB, nRange*k+i)) ) );
385 Vec_IntPush( vTemp, Abc_LitNot(
Gia_ManHashAnd(pNew, iCond, Vec_IntEntry(vArgA, i)) ) );