diff --git a/src/spicelib/analysis/noisean.c b/src/spicelib/analysis/noisean.c index d4824ce49..d5d9118cc 100644 --- a/src/spicelib/analysis/noisean.c +++ b/src/spicelib/analysis/noisean.c @@ -30,10 +30,10 @@ extern int fixme_inoise_type; int NOISEan (CKTcircuit *ckt, int restart) { - /* variable must be static, for continuation of interrupted (Ctrl-C), - longer lasting noise anlysis */ - static Ndata *data; - + static Ndata *data; /* va, must be static, for continuation of + * interrupted(Ctrl-C), longer lasting noise + * analysis + */ double realVal; double imagVal; int error; @@ -78,8 +78,8 @@ NOISEan (CKTcircuit *ckt, int restart) if (!inst || inst->GENmodPtr->GENmodType < 0) { SPfrontEnd->IFerrorf (ERR_WARNING, - "Noise input source %s not in circuit", - job->input); + "Noise input source %s not in circuit", + job->input); return E_NOTFOUND; } @@ -91,15 +91,15 @@ NOISEan (CKTcircuit *ckt, int restart) src_type = SV_CURRENT; } else { SPfrontEnd->IFerrorf (ERR_WARNING, - "Noise input source %s is not of proper type", - job->input); + "Noise input source %s is not of proper type", + job->input); return E_NOTFOUND; } if (!ac_given) { SPfrontEnd->IFerrorf (ERR_WARNING, - "Noise input source %s has no AC value", - job->input); + "Noise input source %s has no AC value", + job->input); return E_NOACINPUT; } } @@ -107,33 +107,34 @@ NOISEan (CKTcircuit *ckt, int restart) if ( (job->NsavFstp == 0.0) || restart) { /* va, NsavFstp is double */ switch (job->NstpType) { + case DECADE: + job->NfreqDelta = exp(log(10.0) / job->NnumSteps); + break; - case DECADE: - job->NfreqDelta = exp(log(10.0)/ - job->NnumSteps); - break; + case OCTAVE: + job->NfreqDelta = exp(log(2.0) / job->NnumSteps); + break; - case OCTAVE: - job->NfreqDelta = exp(log(2.0)/ - job->NnumSteps); - break; - - case LINEAR: + case LINEAR: if (job->NnumSteps == 1) job->NfreqDelta = 0; else - job->NfreqDelta = (job->NstopFreq - - job->NstartFreq) / (job->NnumSteps - 1); - break; + job->NfreqDelta = (job->NstopFreq - job->NstartFreq) / (job->NnumSteps - 1); + break; - default: - return(E_BADPARM); + default: + return(E_BADPARM); } /* error = DCop(ckt); */ error = CKTop(ckt, (ckt->CKTmode & MODEUIC) | MODEDCOP | MODEINITJCT, +<<<<<<< .mine + (ckt->CKTmode & MODEUIC) | MODEDCOP | MODEINITFLOAT, + ckt->CKTdcMaxIter); +======= (ckt->CKTmode & MODEUIC) | MODEDCOP | MODEINITFLOAT, ckt->CKTdcMaxIter); +>>>>>>> .theirs if (error) return(error); @@ -165,13 +166,13 @@ NOISEan (CKTcircuit *ckt, int restart) if (src_type == SV_VOLTAGE) fixme_inoise_type = - data->squared ? SV_SQR_VOLTAGE_DENSITY : SV_VOLTAGE_DENSITY; + data->squared ? SV_SQR_VOLTAGE_DENSITY : SV_VOLTAGE_DENSITY; else fixme_inoise_type = - data->squared ? SV_SQR_CURRENT_DENSITY : SV_CURRENT_DENSITY; + data->squared ? SV_SQR_CURRENT_DENSITY : SV_CURRENT_DENSITY; fixme_onoise_type = - data->squared ? SV_SQR_VOLTAGE_DENSITY : SV_VOLTAGE_DENSITY; + data->squared ? SV_SQR_VOLTAGE_DENSITY : SV_VOLTAGE_DENSITY; if (!data->squared) for (i = 0; i < data->numPlots; i++) @@ -198,18 +199,16 @@ NOISEan (CKTcircuit *ckt, int restart) switch (job->NstpType) { case DECADE: - case OCTAVE: - data->freq = job->NstartFreq * exp (step * - log (job->NfreqDelta)); - break; + case OCTAVE: + data->freq = job->NstartFreq * exp (step * log (job->NfreqDelta)); + break; - case LINEAR: - data->freq = job->NstartFreq + step * - job->NfreqDelta; - break; + case LINEAR: + data->freq = job->NstartFreq + step * job->NfreqDelta; + break; - default: - return(E_BADPARM); + default: + return(E_BADPARM); } job->NsavFstp = 0; @@ -217,23 +216,23 @@ NOISEan (CKTcircuit *ckt, int restart) data->inNoise = job->NsavInoise; /* saj resume rawfile fix*/ error = SPfrontEnd->OUTpBeginPlot (NULL, NULL, - NULL, - NULL, 0, - 666, NULL, 666, - &(data->NplotPtr)); + NULL, + NULL, 0, + 666, NULL, 666, + &(data->NplotPtr)); /*saj*/ } switch (job->NstpType) { - case DECADE: - case OCTAVE: - freqTol = job->NfreqDelta * job->NstopFreq * ckt->CKTreltol; - break; - case LINEAR: - freqTol = job->NfreqDelta * ckt->CKTreltol; - break; - default: - return(E_BADPARM); + case DECADE: + case OCTAVE: + freqTol = job->NfreqDelta * job->NstopFreq * ckt->CKTreltol; + break; + case LINEAR: + freqTol = job->NfreqDelta * ckt->CKTreltol; + break; + default: + return(E_BADPARM); } data->lstFreq = data->freq; @@ -257,12 +256,9 @@ NOISEan (CKTcircuit *ckt, int restart) */ NIacIter(ckt); - realVal = ckt->CKTrhsOld [posOutNode] - - ckt->CKTrhsOld [negOutNode]; - imagVal = ckt->CKTirhsOld [posOutNode] - - ckt->CKTirhsOld [negOutNode]; - data->GainSqInv = 1.0 / MAX(((realVal*realVal) - + (imagVal*imagVal)),N_MINGAIN); + realVal = ckt->CKTrhsOld [posOutNode]- ckt->CKTrhsOld [negOutNode]; + imagVal = ckt->CKTirhsOld [posOutNode] - ckt->CKTirhsOld [negOutNode]; + data->GainSqInv = 1.0 / MAX(((realVal*realVal) + (imagVal*imagVal)),N_MINGAIN); data->lnGainInv = log(data->GainSqInv); /* set up a block of "common" data so we don't have to @@ -308,7 +304,7 @@ NOISEan (CKTcircuit *ckt, int restart) data->freq *= job->NfreqDelta; break; - case LINEAR: + case LINEAR: data->freq += job->NfreqDelta; break; @@ -334,13 +330,17 @@ NOISEan (CKTcircuit *ckt, int restart) if (src_type == SV_VOLTAGE) fixme_inoise_type = - data->squared ? SV_SQR_VOLTAGE : SV_VOLTAGE; + data->squared ? SV_SQR_VOLTAGE : SV_VOLTAGE; else fixme_inoise_type = - data->squared ? SV_SQR_CURRENT : SV_CURRENT; + data->squared ? SV_SQR_CURRENT : SV_CURRENT; fixme_onoise_type = +<<<<<<< .mine + data->squared ? SV_SQR_VOLTAGE : SV_VOLTAGE; +======= data->squared ? SV_SQR_VOLTAGE : SV_VOLTAGE; +>>>>>>> .theirs if (!data->squared) for (i = 0; i < data->numPlots; i++) diff --git a/src/spicelib/analysis/nsetparm.c b/src/spicelib/analysis/nsetparm.c index 10cb3dcbb..264f22649 100644 --- a/src/spicelib/analysis/nsetparm.c +++ b/src/spicelib/analysis/nsetparm.c @@ -11,7 +11,7 @@ Author: 1987 Gary W. Ng #include "analysis.h" -int +int NsetParm(CKTcircuit *ckt, JOB *anal, int which, IFvalue *value) { NOISEAN *job = (NOISEAN *) anal; @@ -21,16 +21,16 @@ NsetParm(CKTcircuit *ckt, JOB *anal, int which, IFvalue *value) switch(which) { case N_OUTPUT: - job->output = value->nValue; - break; + job->output = value->nValue; + break; case N_OUTREF: - job->outputRef = value->nValue; - break; + job->outputRef = value->nValue; + break; case N_INPUT: - job->input = value->uValue; - break; + job->input = value->uValue; + break; case N_DEC: job->NstpType = DECADE; @@ -49,21 +49,21 @@ NsetParm(CKTcircuit *ckt, JOB *anal, int which, IFvalue *value) break; case N_START: - if (value->rValue <= 0.0) { - errMsg = copy("Frequency of 0 is invalid"); - job->NstartFreq = 1.0; - return(E_PARMVAL); - } + if (value->rValue <= 0.0) { + errMsg = copy("Frequency of 0 is invalid"); + job->NstartFreq = 1.0; + return(E_PARMVAL); + } job->NstartFreq = value->rValue; break; case N_STOP: - if (value->rValue <= 0.0) { - errMsg = copy("Frequency of 0 is invalid"); - job->NstartFreq = 1.0; - return(E_PARMVAL); - } + if (value->rValue <= 0.0) { + errMsg = copy("Frequency of 0 is invalid"); + job->NstartFreq = 1.0; + return(E_PARMVAL); + } job->NstopFreq = value->rValue; break; @@ -81,7 +81,7 @@ NsetParm(CKTcircuit *ckt, JOB *anal, int which, IFvalue *value) static IFparm Nparms[] = { { "output", N_OUTPUT, IF_SET|IF_STRING, "output noise summation node" }, - { "outputref", N_OUTREF, IF_SET|IF_STRING, "output noise reference node" }, + { "outputref", N_OUTREF, IF_SET|IF_STRING, "output noise reference node" }, { "input", N_INPUT, IF_SET|IF_STRING, "input noise source" }, { "dec", N_DEC, IF_SET|IF_FLAG, "step by decades" }, { "oct", N_OCT, IF_SET|IF_FLAG, "step by octaves" }, @@ -93,7 +93,7 @@ static IFparm Nparms[] = { }; SPICEanalysis NOISEinfo = { - { + { "NOISE", "Noise analysis",