printf("give up due to impossible decomposition at second level (depth = %d, input = %d, arrival time = %d)",pSes->nMaxDepth,l,pSes->pArrTimeProfile[l]);
return0;
}
}
/* store whether call was unsuccessful due to resource limit and not due to impossible constraint */
pSes->fHitResLimit=0;
while(true)
/* check if depth's match with structure at third level from top */
if(pSes->nSpecVars>4&&pSes->fDecStructure&&i==1)/* we have f = AND(x_i, AND(x_j, g)) (x_i and x_j may be complemented) */
{
++nGates;
i=0;
for(l=0;l<pSes->nSpecVars;++l)
if(pSes->pArrTimeProfile[l]+3==pSes->nMaxDepth)
if(++i>1)
{
if(pSes->fVeryVerbose)
printf("give up due to impossible decomposition at third level (depth = %d, input = %d, arrival time = %d)",pSes->nMaxDepth,l,pSes->pArrTimeProfile[l]);
return0;
}
}
return1;
}
// returns 0, if current max depth and #gates are not consistent