Commit 86541925 by Alan Mishchenko

Various changes.

parent a277d450
...@@ -940,7 +940,7 @@ Vec_Wrd_t * Gia_ManSimRelDeriveFuncs2( Gia_Man_t * p, Vec_Wrd_t * vRel, int nOut ...@@ -940,7 +940,7 @@ Vec_Wrd_t * Gia_ManSimRelDeriveFuncs2( Gia_Man_t * p, Vec_Wrd_t * vRel, int nOut
{ {
int nOffs = Abc_TtCountOnesVec( Vec_WrdEntryP(vFuncs, (2*k+0)*nWords), nWords ); int nOffs = Abc_TtCountOnesVec( Vec_WrdEntryP(vFuncs, (2*k+0)*nWords), nWords );
int nOns = Abc_TtCountOnesVec( Vec_WrdEntryP(vFuncs, (2*k+1)*nWords), nWords ); int nOns = Abc_TtCountOnesVec( Vec_WrdEntryP(vFuncs, (2*k+1)*nWords), nWords );
printf( "%4d : Off = %6d On = %6d Dc = %6d (%6.2f %%)", k, nOffs, nOns, nDCs[k], 100.0*nDCs[k]/(64*nWords) ); printf( "%4d : Off = %6d On = %6d Dc = %6d (%6.2f %%)\n", k, nOffs, nOns, nDCs[k], 100.0*nDCs[k]/(64*nWords) );
} }
printf( "\n" ); printf( "\n" );
} }
......
...@@ -2653,8 +2653,7 @@ void Extra_BitMatrixTransposeP( Vec_Wrd_t * vSimsIn, int nWordsIn, Vec_Wrd_t * v ...@@ -2653,8 +2653,7 @@ void Extra_BitMatrixTransposeP( Vec_Wrd_t * vSimsIn, int nWordsIn, Vec_Wrd_t * v
{ {
word * pM[64]; int i, y, x; word * pM[64]; int i, y, x;
assert( Vec_WrdSize(vSimsIn) == Vec_WrdSize(vSimsOut) ); assert( Vec_WrdSize(vSimsIn) == Vec_WrdSize(vSimsOut) );
assert( Vec_WrdSize(vSimsIn) / nWordsIn == 64 * nWordsOut ); assert( Vec_WrdSize(vSimsIn) == 64 * nWordsIn * nWordsOut );
assert( Vec_WrdSize(vSimsOut) / nWordsOut == 64 * nWordsIn );
for ( x = 0; x < nWordsOut; x++ ) for ( x = 0; x < nWordsOut; x++ )
for ( y = 0; y < nWordsIn; y++ ) for ( y = 0; y < nWordsIn; y++ )
{ {
...@@ -2669,14 +2668,15 @@ void Extra_BitMatrixTransposeP( Vec_Wrd_t * vSimsIn, int nWordsIn, Vec_Wrd_t * v ...@@ -2669,14 +2668,15 @@ void Extra_BitMatrixTransposeP( Vec_Wrd_t * vSimsIn, int nWordsIn, Vec_Wrd_t * v
void Extra_BitMatrixTransposePP( Vec_Ptr_t * vSimsIn, int nWordsIn, Vec_Wrd_t * vSimsOut, int nWordsOut ) void Extra_BitMatrixTransposePP( Vec_Ptr_t * vSimsIn, int nWordsIn, Vec_Wrd_t * vSimsOut, int nWordsOut )
{ {
word * pM[64]; int i, y, x; word * pM[64]; int i, y, x;
assert( Vec_WrdSize(vSimsOut) / nWordsOut == 64 * nWordsIn ); assert( Vec_PtrSize(vSimsIn) == 64 * nWordsOut );
assert( Vec_WrdSize(vSimsOut) == 64 * nWordsOut * nWordsIn );
for ( x = 0; x < nWordsOut; x++ ) for ( x = 0; x < nWordsOut; x++ )
for ( y = 0; y < nWordsIn; y++ ) for ( y = 0; y < nWordsIn; y++ )
{ {
for ( i = 0; i < 64; i++ ) for ( i = 0; i < 64; i++ )
{ {
pM[i] = Vec_WrdEntryP( vSimsOut, (64*y+i)*nWordsOut + x ); pM[i] = Vec_WrdEntryP( vSimsOut, (64*y+63-i)*nWordsOut + x );
pM[i][0] = ((word *)Vec_PtrEntry( vSimsIn, 64*x+i ))[y]; pM[i][0] = ((word *)Vec_PtrEntry( vSimsIn, 64*x+63-i ))[y];
} }
Extra_Transpose64p( pM ); Extra_Transpose64p( pM );
} }
......
...@@ -326,6 +326,16 @@ static inline void Abc_TtXor( word * pOut, word * pIn1, word * pIn2, int nWords, ...@@ -326,6 +326,16 @@ static inline void Abc_TtXor( word * pOut, word * pIn1, word * pIn2, int nWords,
for ( w = 0; w < nWords; w++ ) for ( w = 0; w < nWords; w++ )
pOut[w] = pIn1[w] ^ pIn2[w]; pOut[w] = pIn1[w] ^ pIn2[w];
} }
static inline void Abc_TtXorMask( word * pOut, word * pIn1, word * pIn2, word * pMask, int nWords, int fCompl )
{
int w;
if ( fCompl )
for ( w = 0; w < nWords; w++ )
pOut[w] = (pIn1[w] ^ pIn2[w]) & ~pMask[w];
else
for ( w = 0; w < nWords; w++ )
pOut[w] = (pIn1[w] ^ pIn2[w]) & pMask[w];
}
static inline void Abc_TtMux( word * pOut, word * pCtrl, word * pIn1, word * pIn0, int nWords ) static inline void Abc_TtMux( word * pOut, word * pCtrl, word * pIn1, word * pIn0, int nWords )
{ {
int w; int w;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment