Browse Source

Using cbrt() instead of exp(log...) might be more efficient

pre-master-46
Holger Vogt 4 months ago
parent
commit
95b8cee898
  1. 4
      src/spicelib/analysis/cktterr.c

4
src/spicelib/analysis/cktterr.c

@ -69,7 +69,9 @@ CKTterr(int qcap, CKTcircuit *ckt, double *timeStep)
del = ckt->CKTtrtol * tol/MAX(ckt->CKTabstol,factor * fabs(diff[0])); del = ckt->CKTtrtol * tol/MAX(ckt->CKTabstol,factor * fabs(diff[0]));
if(ckt->CKTorder == 2) { if(ckt->CKTorder == 2) {
del = sqrt(del); del = sqrt(del);
} else if (ckt->CKTorder > 2) {
} else if (ckt->CKTorder == 3) {
del = cbrt(del);
} else if (ckt->CKTorder > 3) {
del = exp(log(del)/ckt->CKTorder); del = exp(log(del)/ckt->CKTorder);
} }
*timeStep = MIN(*timeStep,del); *timeStep = MIN(*timeStep,del);

Loading…
Cancel
Save