diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2017-07-01 13:48:31 -0700 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2017-07-01 13:48:31 -0700 |
commit | bf6a053c648576c1e5493f2d5390eb78b2e3df1c (patch) | |
tree | 19c0e561e0d56178c40bb1030ccd738fa5455501 /src/aig/gia | |
parent | a1dd7e3fb04660e025f8cb37eb2636d3d700c3ac (diff) | |
download | abc-bf6a053c648576c1e5493f2d5390eb78b2e3df1c.tar.gz abc-bf6a053c648576c1e5493f2d5390eb78b2e3df1c.tar.bz2 abc-bf6a053c648576c1e5493f2d5390eb78b2e3df1c.zip |
Saturating floating point computation.
Diffstat (limited to 'src/aig/gia')
-rw-r--r-- | src/aig/gia/giaLf.c | 6 | ||||
-rw-r--r-- | src/aig/gia/giaNf.c | 6 |
2 files changed, 10 insertions, 2 deletions
diff --git a/src/aig/gia/giaLf.c b/src/aig/gia/giaLf.c index 2c216a9b..15ec3529 100644 --- a/src/aig/gia/giaLf.c +++ b/src/aig/gia/giaLf.c @@ -1154,7 +1154,11 @@ static inline void Lf_CutParams( Lf_Man_t * p, Lf_Cut_t * pCut, int Required, fl else { Index = (int)(pBest->Delay[1] + 1 <= Required && Required != ABC_INFINITY); - pCut->Flow += pBest->Flow[Index]; + //pCut->Flow += pBest->Flow[Index]; + if ( pCut->Flow >= (float)1e32 || pBest->Flow[Index] >= (float)1e32 ) + pCut->Flow = (float)1e32; + else + pCut->Flow += pBest->Flow[Index]; } Delay = pBest->Delay[Index]; } diff --git a/src/aig/gia/giaNf.c b/src/aig/gia/giaNf.c index 6f1d0c8d..403c220a 100644 --- a/src/aig/gia/giaNf.c +++ b/src/aig/gia/giaNf.c @@ -1147,7 +1147,11 @@ void Nf_ManCutMatchOne( Nf_Man_t * p, int iObj, int * pCut, int * pCutSet ) if ( pD->D < SCL_INFINITY && pA->D < SCL_INFINITY && ArrivalD + pC->iDelays[k] > Required ) break; Delay = Abc_MaxInt( Delay, ArrivalD + pC->iDelays[k] ); - AreaF += pBestF[iFanin]->M[fComplF][0].F; + //AreaF += pBestF[iFanin]->M[fComplF][0].F; + if ( AreaF >= (float)1e32 || pBestF[iFanin]->M[fComplF][0].F >= (float)1e32 ) + AreaF = (float)1e32; + else + AreaF += pBestF[iFanin]->M[fComplF][0].F; } } if ( k < nFans ) |