83 int WeightCur, WeightBest = -
ABC_INFINITY, iGrp = -1, iGrpBest = -1;
84 int k, c, iVar, Counter;
86 for ( iVar = 0; iVar <
p->nRows -
p->nFfs; iVar++ )
88 if (
p->pRowSums[iVar] < 2 )
91 if ( !(
p->pProdVars[iVar] == 1 &&
p->pProdNums[iVar] == 1) )
95 for ( c = iGrpStart; c <
p->nCols-1; c++ )
96 if (
p->pMatrix[c][iVar] == 1 )
103 Abc_Print( -1,
"Llb_MtrFindBestColumn() Internal error!\n" );
106 for ( k = 0; k <
p->nRows; k++ )
109 if (
p->pProdVars[k] == 1 &&
p->pMatrix[iGrp][k] == 1 &&
p->pProdNums[k] == 1 )
112 if (
p->pProdVars[k] == 0 &&
p->pMatrix[iGrp][k] == 1 )
115 if ( WeightCur > 0 && WeightBest < WeightCur )
117 WeightBest = WeightCur;
126 for ( iGrp = iGrpStart; iGrp <
p->nCols-1; iGrp++ )
129 for ( k = 0; k <
p->nRows; k++ )
130 if (
p->pProdVars[k] == 0 &&
p->pMatrix[iGrp][k] == 1 )
133 Cost2 +=
p->pProdNums[k];
135 if ( CostBest > Cost ||
136 (CostBest == Cost && Cost2 > Cost2Best) )