Browse Source

Revise commit

75c2a3c621/
If the frquency difference is less than a decade, use the old
frequency calculation.
If start and stop frequencies are equal, use a single point only.
pre-master-46
Holger Vogt 2 years ago
parent
commit
f15a92d997
  1. 13
      src/spicelib/analysis/acan.c

13
src/spicelib/analysis/acan.c

@ -86,8 +86,17 @@ ACan(CKTcircuit* ckt, int restart)
fprintf(stderr, "ERROR: AC startfreq <= 0\n");
return E_PARMVAL;
}
double num_steps = floor(fabs(log10(job->ACstopFreq / job->ACstartFreq)) * job->ACnumberSteps);
job->ACfreqDelta = exp((log(job->ACstopFreq / job->ACstartFreq)) / num_steps);
if (job->ACstopFreq / 10. < job->ACstartFreq) {
/* start-stop frequencies less than a decade apart */
if (job->ACstopFreq == job->ACstartFreq)
job->ACfreqDelta = 1;
else
job->ACfreqDelta = exp(log(10.0) / job->ACnumberSteps);
}
else {
double num_steps = floor(fabs(log10(job->ACstopFreq / job->ACstartFreq)) * job->ACnumberSteps);
job->ACfreqDelta = exp((log(job->ACstopFreq / job->ACstartFreq)) / num_steps);
}
break;
case OCTAVE:

Loading…
Cancel
Save