diff --git a/ChangeLog b/ChangeLog index 69169e56f..95b4f7679 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2011-05-22 Robert Larice + * src/spicelib/devices/hisim2/hsm2cvtest.c , + * src/spicelib/devices/hisim2/hsm2ld.c : + hisim2, rename FABS() -> fabs() + 2011-05-22 Robert Larice * src/spicelib/devices/hisim2/* : hisim2, convert K&R function definitions to ansi style diff --git a/src/spicelib/devices/hisim2/hsm2cvtest.c b/src/spicelib/devices/hisim2/hsm2cvtest.c index 619cb8598..1e86f8e76 100644 --- a/src/spicelib/devices/hisim2/hsm2cvtest.c +++ b/src/spicelib/devices/hisim2/hsm2cvtest.c @@ -111,17 +111,17 @@ int HSM2convTest( * check convergence */ if ( here->HSM2_off == 0 || !(ckt->CKTmode & MODEINITFIX) ) { - tol0 = ckt->CKTreltol * MAX(FABS(cdhat), FABS(cd)) + ckt->CKTabstol; - tol1 = ckt->CKTreltol * MAX(FABS(cgshat), FABS(Igstot)) + ckt->CKTabstol; - tol2 = ckt->CKTreltol * MAX(FABS(cgdhat), FABS(Igdtot)) + ckt->CKTabstol; - tol3 = ckt->CKTreltol * MAX(FABS(cgbhat), FABS(Igbtot)) + ckt->CKTabstol; - tol4 = ckt->CKTreltol * MAX(FABS(cbhat), FABS(Ibtot)) + ckt->CKTabstol; + tol0 = ckt->CKTreltol * MAX(fabs(cdhat), fabs(cd)) + ckt->CKTabstol; + tol1 = ckt->CKTreltol * MAX(fabs(cgshat), fabs(Igstot)) + ckt->CKTabstol; + tol2 = ckt->CKTreltol * MAX(fabs(cgdhat), fabs(Igdtot)) + ckt->CKTabstol; + tol3 = ckt->CKTreltol * MAX(fabs(cgbhat), fabs(Igbtot)) + ckt->CKTabstol; + tol4 = ckt->CKTreltol * MAX(fabs(cbhat), fabs(Ibtot)) + ckt->CKTabstol; - if ( (FABS(cdhat - cd) >= tol0) - || (FABS(cgshat - Igstot) >= tol1) - || (FABS(cgdhat - Igdtot) >= tol2) - || (FABS(cgbhat - Igbtot) >= tol3) - || (FABS(cbhat - Ibtot) >= tol4) ) { + if ( (fabs(cdhat - cd) >= tol0) + || (fabs(cgshat - Igstot) >= tol1) + || (fabs(cgdhat - Igdtot) >= tol2) + || (fabs(cgbhat - Igbtot) >= tol3) + || (fabs(cbhat - Ibtot) >= tol4) ) { ckt->CKTnoncon++; return(OK); } diff --git a/src/spicelib/devices/hisim2/hsm2ld.c b/src/spicelib/devices/hisim2/hsm2ld.c index 53f8f4b10..df372ea82 100644 --- a/src/spicelib/devices/hisim2/hsm2ld.c +++ b/src/spicelib/devices/hisim2/hsm2ld.c @@ -447,55 +447,55 @@ tm0 = gtodsecld() ; */ if ( !(ckt->CKTmode & MODEINITPRED) && BYPASS_enable ) if ((!here->HSM2_corbnet) || - (FABS(delvdbs) < + (fabs(delvdbs) < (reltol - * MAX(FABS(vdbs), FABS(*(ckt->CKTstate0 + here->HSM2vdbs))) + * MAX(fabs(vdbs), fabs(*(ckt->CKTstate0 + here->HSM2vdbs))) + voltTol))) if ((!here->HSM2_corbnet) || - (FABS(delvdbd) < + (fabs(delvdbd) < (reltol - * MAX(FABS(vdbd), FABS(*(ckt->CKTstate0 + here->HSM2vdbd))) + * MAX(fabs(vdbd), fabs(*(ckt->CKTstate0 + here->HSM2vdbd))) + voltTol))) if ((!here->HSM2_corbnet) || - (FABS(delvsbs) < + (fabs(delvsbs) < (reltol - * MAX(FABS(vsbs), FABS(*(ckt->CKTstate0 + here->HSM2vsbs))) + * MAX(fabs(vsbs), fabs(*(ckt->CKTstate0 + here->HSM2vsbs))) + voltTol))) if ((here->HSM2_corg == 0) || (here->HSM2_corg == 1) || - (FABS(delvges) < + (fabs(delvges) < (reltol - * MAX(FABS(vges), FABS(*(ckt->CKTstate0 + here->HSM2vges))) + * MAX(fabs(vges), fabs(*(ckt->CKTstate0 + here->HSM2vges))) + voltTol))) - if ( FABS(delvbs) < + if ( fabs(delvbs) < ( reltol * - MAX(FABS(vbs), FABS(*(ckt->CKTstate0+here->HSM2vbs))) + + MAX(fabs(vbs), fabs(*(ckt->CKTstate0+here->HSM2vbs))) + voltTol ) ) - if ( FABS(delvbd) < + if ( fabs(delvbd) < ( reltol * - MAX(FABS(vbd), FABS(*(ckt->CKTstate0+here->HSM2vbd))) + + MAX(fabs(vbd), fabs(*(ckt->CKTstate0+here->HSM2vbd))) + voltTol ) ) - if ( FABS(delvgs) < + if ( fabs(delvgs) < ( reltol * - MAX(FABS(vgs), FABS(*(ckt->CKTstate0+here->HSM2vgs))) + + MAX(fabs(vgs), fabs(*(ckt->CKTstate0+here->HSM2vgs))) + voltTol ) ) - if ( FABS(delvds) < + if ( fabs(delvds) < ( reltol * - MAX(FABS(vds), FABS(*(ckt->CKTstate0+here->HSM2vds))) + + MAX(fabs(vds), fabs(*(ckt->CKTstate0+here->HSM2vds))) + voltTol ) ) - if ( FABS(cdhat - Idtot) < + if ( fabs(cdhat - Idtot) < ( reltol * - MAX(FABS(cdhat),FABS(Idtot)) + abstol ) ) + MAX(fabs(cdhat),fabs(Idtot)) + abstol ) ) if (!model->HSM2_coiigs || - (FABS(cgbhat - Igbtot) < reltol - * MAX(FABS(cgbhat), FABS(Igbtot)) + abstol)) + (fabs(cgbhat - Igbtot) < reltol + * MAX(fabs(cgbhat), fabs(Igbtot)) + abstol)) if (!model->HSM2_coiigs || - (FABS(cgshat - Igstot) < reltol - * MAX(FABS(cgshat), FABS(Igstot)) + abstol)) + (fabs(cgshat - Igstot) < reltol + * MAX(fabs(cgshat), fabs(Igstot)) + abstol)) if (!model->HSM2_coiigs || - (FABS(cgdhat - Igdtot) < reltol - * MAX(FABS(cgdhat), FABS(Igdtot)) + abstol)){ - tempv = MAX(FABS(cbhat),FABS(Ibtot)) + abstol; - if ((FABS(cbhat - Ibtot)) < reltol * tempv) { + (fabs(cgdhat - Igdtot) < reltol + * MAX(fabs(cgdhat), fabs(Igdtot)) + abstol)){ + tempv = MAX(fabs(cbhat),fabs(Ibtot)) + abstol; + if ((fabs(cbhat - Ibtot)) < reltol * tempv) { /* bypass code */ vbs = *(ckt->CKTstate0 + here->HSM2vbs); vbd = *(ckt->CKTstate0 + here->HSM2vbd); @@ -763,25 +763,25 @@ tm0 = gtodsecld() ; Idtot = here->HSM2_ids + here->HSM2_isub - here->HSM2_ibd + here->HSM2_igidl; else Idtot = here->HSM2_ids + here->HSM2_ibd - here->HSM2_igidl; - tol = ckt->CKTreltol * MAX(FABS(cdhat), FABS(Idtot)) + ckt->CKTabstol; - tol2 = ckt->CKTreltol * MAX(FABS(cgbhat), FABS(Igbtot)) + ckt->CKTabstol; - tol3 = ckt->CKTreltol * MAX(FABS(cgshat), FABS(Igstot)) + ckt->CKTabstol; - tol4 = ckt->CKTreltol * MAX(FABS(cgdhat), FABS(Igdtot)) + ckt->CKTabstol; - if (FABS(cdhat - Idtot) >= tol) { + tol = ckt->CKTreltol * MAX(fabs(cdhat), fabs(Idtot)) + ckt->CKTabstol; + tol2 = ckt->CKTreltol * MAX(fabs(cgbhat), fabs(Igbtot)) + ckt->CKTabstol; + tol3 = ckt->CKTreltol * MAX(fabs(cgshat), fabs(Igstot)) + ckt->CKTabstol; + tol4 = ckt->CKTreltol * MAX(fabs(cgdhat), fabs(Igdtot)) + ckt->CKTabstol; + if (fabs(cdhat - Idtot) >= tol) { ckt->CKTnoncon++; isConv = 0; } - else if (FABS(cgbhat - Igbtot) >= tol2 || - FABS(cgshat - Igstot) >= tol3 || - FABS(cgdhat - Igdtot) >= tol4) { + else if (fabs(cgbhat - Igbtot) >= tol2 || + fabs(cgshat - Igstot) >= tol3 || + fabs(cgdhat - Igdtot) >= tol4) { ckt->CKTnoncon++; isConv = 0; } else { Ibtot = here->HSM2_ibs + here->HSM2_ibd - here->HSM2_isub - here->HSM2_igidl - here->HSM2_igisl; - tol = ckt->CKTreltol * MAX(FABS(cbhat), FABS(Ibtot)) + ckt->CKTabstol; - if (FABS(cbhat - Ibtot) > tol) { + tol = ckt->CKTreltol * MAX(fabs(cbhat), fabs(Ibtot)) + ckt->CKTabstol; + if (fabs(cbhat - Ibtot) > tol) { ckt->CKTnoncon++; isConv = 0; }