diff --git a/src/include/ngspice/cktdefs.h b/src/include/ngspice/cktdefs.h index 03fe07fe4..b849c2b6f 100644 --- a/src/include/ngspice/cktdefs.h +++ b/src/include/ngspice/cktdefs.h @@ -283,8 +283,8 @@ struct CKTcircuit { #endif /* gtri - evt - wbk - 5/20/91 - add event-driven and enhancements data */ #ifdef RFSPICE - unsigned int CKTactivePort;/* Identify active port during S-Param analysis*/ - unsigned int CKTportCount; /* Number of RF ports */ + int CKTactivePort;/* Identify active port during S-Param analysis*/ + int CKTportCount; /* Number of RF ports */ int CKTVSRCid; /* Place holder for VSRC Devices id*/ GENinstance** CKTrfPorts; /* List of all RF ports (HB & SP) */ CMat* CKTAmat; @@ -295,7 +295,7 @@ struct CKTcircuit { // Data for RF Noise Calculations double* CKTportY; CMat* CKTNoiseCYmat; - unsigned int CKTnoiseSourceCount; + int CKTnoiseSourceCount; CMat* CKTadjointRHS; // Matrix where Znj are stored. Znj = impedance from j-th noise source to n-th port #endif #ifdef WITH_PSS @@ -460,9 +460,9 @@ extern int DCpss(CKTcircuit *, int); extern int SPan(CKTcircuit*, int); extern int SPaskQuest(CKTcircuit*, JOB*, int, IFvalue*); extern int SPsetParm(CKTcircuit*, JOB*, int, IFvalue*); -extern int CKTspDump(CKTcircuit*, double, runDesc*, unsigned int); +extern int CKTspDump(CKTcircuit*, double, runDesc*, int); extern int CKTspLoad(CKTcircuit*); -extern unsigned int CKTmatrixIndex(CKTcircuit*, unsigned int, unsigned int); +extern int CKTmatrixIndex(CKTcircuit*, int, int); extern int CKTspCalcPowerWave(CKTcircuit* ckt); extern int CKTspCalcSMatrix(CKTcircuit* ckt); #endif diff --git a/src/include/ngspice/spardefs.h b/src/include/ngspice/spardefs.h index 6fb878068..fa5752a45 100644 --- a/src/include/ngspice/spardefs.h +++ b/src/include/ngspice/spardefs.h @@ -25,8 +25,8 @@ typedef struct { unsigned SPdoNoise : 1; /* Flag to indicate if SP noise must be calculated*/ - unsigned int SPnoiseInput; - unsigned int SPnoiseOutput; + int SPnoiseInput; + int SPnoiseOutput; } SPAN; /* available step types: XXX should be somewhere else */ diff --git a/src/maths/dense/dense.c b/src/maths/dense/dense.c index df1541563..53a890b0d 100644 --- a/src/maths/dense/dense.c +++ b/src/maths/dense/dense.c @@ -68,13 +68,13 @@ CMat* newcmat(int r, int c, double dr, double di) { if (M == NULL) return NULL; M->row = r; M->col = c; - M->d = (cplx**)tmalloc(sizeof(cplx*) * r); + M->d = (cplx**)tmalloc(sizeof(cplx*) * (size_t)r); if (M->d == NULL) { tfree(M); return NULL; } for (int i = 0; i < r; i++) - M->d[i] = (cplx*)tmalloc(sizeof(cplx) * c); + M->d[i] = (cplx*)tmalloc(sizeof(cplx) * (size_t)c); for (int i = 0; i < M->row; i++) { for (int j = 0; j < M->col; j++) { @@ -112,9 +112,9 @@ CMat* newcmatnoinit(int r, int c) { if (M == NULL) return NULL; M->row = r; M->col = c; - M->d = (cplx**)tmalloc(sizeof(cplx*) * r); + M->d = (cplx**)tmalloc(sizeof(cplx*) * (size_t)r); for (int i = 0; i < r; i++) - M->d[i] = (cplx*)tmalloc(sizeof(cplx) * c); + M->d[i] = (cplx*)tmalloc(sizeof(cplx) * (size_t)c); return M; } @@ -123,9 +123,9 @@ Mat* newmat(int r, int c, double d) { if (M == NULL) return NULL; M->row = r; M->col = c; - M->d = (double**)tmalloc(sizeof(double*) * r); + M->d = (double**)tmalloc(sizeof(double*) * (size_t)r); for (int i = 0; i < r; i++) - M->d[i] = (double*)tmalloc(sizeof(double) * c); + M->d[i] = (double*)tmalloc(sizeof(double) * (size_t)c); for (int i = 0; i < M->row; i++) { for (int j = 0; j < M->col; j++) { @@ -140,9 +140,9 @@ Mat* newmatnoinit(int r, int c) { if (M == NULL) return NULL; M->row = r; M->col = c; - M->d = (double**)tmalloc(sizeof(double*) * r); + M->d = (double**)tmalloc(sizeof(double*) * (size_t)r); for (int i = 0; i < r; i++) - M->d[i] = (double*)tmalloc(sizeof(double) * c); + M->d[i] = (double*)tmalloc(sizeof(double) * (size_t)c); return M; } @@ -161,12 +161,12 @@ void resizemat(Mat* A, int r, int c) tfree(A->d); A->row = r; A->col = c; - A->d = (double**)tmalloc(sizeof(double*) * r); + A->d = (double**)tmalloc(sizeof(double*) * (size_t)r); if (A->d == NULL) return; for (int i = 0; i < r; i++) - A->d[i] = (double*)tmalloc(sizeof(double) * c); + A->d[i] = (double*)tmalloc(sizeof(double) * (size_t)c); } void resizecmat(CMat* A, int r, int c) @@ -182,12 +182,12 @@ void resizecmat(CMat* A, int r, int c) tfree(A->d); A->row = r; A->col = c; - A->d = (cplx**)tmalloc(sizeof(cplx*) * r); + A->d = (cplx**)tmalloc(sizeof(cplx*) * (size_t)r); if (A->d == NULL) return; for (int i = 0; i < r; i++) - A->d[i] = (cplx*)tmalloc(sizeof(cplx) * c); + A->d[i] = (cplx*)tmalloc(sizeof(cplx) * (size_t)c); } diff --git a/src/spicelib/analysis/cktspdum.c b/src/spicelib/analysis/cktspdum.c index 59ca57565..661e73140 100644 --- a/src/spicelib/analysis/cktspdum.c +++ b/src/spicelib/analysis/cktspdum.c @@ -30,7 +30,7 @@ extern cplx Sopt; extern double Fmin; -unsigned int CKTmatrixIndex(CKTcircuit* ckt, unsigned int source, unsigned int dest) +int CKTmatrixIndex(CKTcircuit* ckt, int source, int dest) { return source * ckt->CKTportCount + dest; }; @@ -68,7 +68,7 @@ int CKTspCalcPowerWave(CKTcircuit* ckt) double* rhsold = ckt->CKTrhsOld; double* irhsold = ckt->CKTirhsOld; int col = ckt->CKTactivePort - 1; - for (unsigned int port = 0; port < ckt->CKTportCount; port++) + for (int port = 0; port < ckt->CKTportCount; port++) { VSRCinstance* pSrc = (VSRCinstance*)(ckt->CKTrfPorts[port]); int row = pSrc->VSRCportNum - 1; @@ -98,7 +98,7 @@ int CKTspCalcPowerWave(CKTcircuit* ckt) int -CKTspDump(CKTcircuit *ckt, double freq, runDesc *plot, unsigned int doNoise) +CKTspDump(CKTcircuit *ckt, double freq, runDesc *plot, int doNoise) { double *rhsold; double *irhsold; @@ -110,10 +110,10 @@ CKTspDump(CKTcircuit *ckt, double freq, runDesc *plot, unsigned int doNoise) rhsold = ckt->CKTrhsOld; irhsold = ckt->CKTirhsOld; freqData.rValue = freq; - unsigned int extraSPdataCount = 3* ckt->CKTportCount * ckt->CKTportCount; + int extraSPdataCount = 3* ckt->CKTportCount * ckt->CKTportCount; valueData.v.numValue = ckt->CKTmaxEqNum - 1 + extraSPdataCount; - unsigned int datasize = ckt->CKTmaxEqNum - 1 + extraSPdataCount; + int datasize = ckt->CKTmaxEqNum - 1 + extraSPdataCount; // Add Cy matrix, NF, Rn, SOpt, NFmin if (doNoise) @@ -132,11 +132,11 @@ CKTspDump(CKTcircuit *ckt, double freq, runDesc *plot, unsigned int doNoise) if (ckt->CKTrfPorts ) { - unsigned int nPlot = ckt->CKTmaxEqNum - 1 ; + int nPlot = ckt->CKTmaxEqNum - 1 ; // Cycle thru all ports - for (unsigned int pdest = 0; pdest < ckt->CKTportCount; pdest++) + for (int pdest = 0; pdest < ckt->CKTportCount; pdest++) { - for (unsigned int psource = 0; psource < ckt->CKTportCount; psource++) + for (int psource = 0; psource < ckt->CKTportCount; psource++) { cplx sij = ckt->CKTSmat->d[pdest][psource]; data[nPlot].real = sij.re; @@ -146,9 +146,9 @@ CKTspDump(CKTcircuit *ckt, double freq, runDesc *plot, unsigned int doNoise) } // Put Y data - for (unsigned int pdest = 0; pdest < ckt->CKTportCount; pdest++) + for (int pdest = 0; pdest < ckt->CKTportCount; pdest++) { - for (unsigned int psource = 0; psource < ckt->CKTportCount; psource++) + for (int psource = 0; psource < ckt->CKTportCount; psource++) { //unsigned int nPlot = ckt->CKTmaxEqNum - 1 + CKTmatrixIndex(ckt, pdest, psource); cplx yij = ckt->CKTYmat->d[pdest][psource]; @@ -159,9 +159,9 @@ CKTspDump(CKTcircuit *ckt, double freq, runDesc *plot, unsigned int doNoise) } // Put Z data - for (unsigned int pdest = 0; pdest < ckt->CKTportCount; pdest++) + for (int pdest = 0; pdest < ckt->CKTportCount; pdest++) { - for (unsigned int psource = 0; psource < ckt->CKTportCount; psource++) + for (int psource = 0; psource < ckt->CKTportCount; psource++) { //unsigned int nPlot = ckt->CKTmaxEqNum - 1 + CKTmatrixIndex(ckt, pdest, psource); cplx zij = ckt->CKTZmat->d[pdest][psource]; @@ -174,9 +174,9 @@ CKTspDump(CKTcircuit *ckt, double freq, runDesc *plot, unsigned int doNoise) if (doNoise) { // Put Cy data - for (unsigned int pdest = 0; pdest < ckt->CKTportCount; pdest++) + for (int pdest = 0; pdest < ckt->CKTportCount; pdest++) { - for (unsigned int psource = 0; psource < ckt->CKTportCount; psource++) + for (int psource = 0; psource < ckt->CKTportCount; psource++) { //unsigned int nPlot = ckt->CKTmaxEqNum - 1 + CKTmatrixIndex(ckt, pdest, psource); cplx CYij = ckt->CKTNoiseCYmat->d[pdest][psource]; diff --git a/src/spicelib/analysis/nevalsrc.c b/src/spicelib/analysis/nevalsrc.c index c8f6b7dd4..e1a4bdd46 100644 --- a/src/spicelib/analysis/nevalsrc.c +++ b/src/spicelib/analysis/nevalsrc.c @@ -68,10 +68,10 @@ NevalSrc(double* noise, double* lnNoise, CKTcircuit* ckt, int type, int node1, i } inoise = sqrt(inoise); // Calculate input equivalent noise current source (we have port impedance attached) - for (unsigned int s = 0; s < ckt->CKTportCount; s++) + for (int s = 0; s < ckt->CKTportCount; s++) vNoise->d[0][s] = cmultdo(csubco(ckt->CKTadjointRHS->d[s][node1], ckt->CKTadjointRHS->d[s][node2]), inoise); - for (unsigned int d = 0; d < ckt->CKTportCount; d++) + for (int d = 0; d < ckt->CKTportCount; d++) { cplx in; double yport = 1.0 / zref->d[d][d].re; @@ -79,15 +79,15 @@ NevalSrc(double* noise, double* lnNoise, CKTcircuit* ckt, int type, int node1, i in.re = vNoise->d[0][d].re * yport; in.im = vNoise->d[0][d].im * yport; - for (unsigned int s = 0; s < ckt->CKTportCount; s++) + for (int s = 0; s < ckt->CKTportCount; s++) caddc(&in, in, cmultco(ckt->CKTYmat->d[d][s], vNoise->d[0][s])); iNoise->d[0][d] = in; } - for (unsigned int d = 0; d < ckt->CKTportCount; d++) - for (unsigned int s = 0; s < ckt->CKTportCount; s++) + for (int d = 0; d < ckt->CKTportCount; d++) + for (int s = 0; s < ckt->CKTportCount; s++) ckt->CKTNoiseCYmat->d[d][s] = caddco(ckt->CKTNoiseCYmat->d[d][s], cmultco(iNoise->d[0][d], conju(iNoise->d[0][s]))); return; @@ -194,7 +194,7 @@ NevalSrc2( knoise = sqrt(knoise); // Calculate input equivalent noise current source (we have port impedance attached) - for (unsigned int s = 0; s < ckt->CKTportCount; s++) + for (int s = 0; s < ckt->CKTportCount; s++) { cplx vNoiseA = cmultdo(csubco(ckt->CKTadjointRHS->d[s][node1], ckt->CKTadjointRHS->d[s][node2]), knoise * sqrt(param1)); cplx vNoiseB = cmultco(cmultdo(csubco(ckt->CKTadjointRHS->d[s][node3], ckt->CKTadjointRHS->d[s][node4]), knoise * sqrt(param1)), cfact); @@ -202,7 +202,7 @@ NevalSrc2( vNoise->d[0][s] = caddco(vNoiseA, vNoiseB); } - for (unsigned int d = 0; d < ckt->CKTportCount; d++) + for (int d = 0; d < ckt->CKTportCount; d++) { double yport = 1.0 / zref->d[d][d].re; @@ -210,15 +210,15 @@ NevalSrc2( in.re = vNoise->d[0][d].re * yport; in.im = vNoise->d[0][d].im * yport; - for (unsigned int s = 0; s < ckt->CKTportCount; s++) + for (int s = 0; s < ckt->CKTportCount; s++) caddc(&in, in, cmultco(ckt->CKTYmat->d[d][s], vNoise->d[0][s])); iNoise->d[0][d] = in; } - for (unsigned int d = 0; d < ckt->CKTportCount; d++) - for (unsigned int s = 0; s < ckt->CKTportCount; s++) + for (int d = 0; d < ckt->CKTportCount; d++) + for (int s = 0; s < ckt->CKTportCount; s++) ckt->CKTNoiseCYmat->d[d][s] = caddco(ckt->CKTNoiseCYmat->d[d][s], cmultco(iNoise->d[0][d], conju(iNoise->d[0][s]))); return; @@ -303,10 +303,10 @@ NevalSrcInstanceTemp(double* noise, double* lnNoise, CKTcircuit* ckt, int type, inoise = sqrt(inoise); // Calculate input equivalent noise current source (we have port impedance attached) - for (unsigned int s = 0; s < ckt->CKTportCount; s++) + for (int s = 0; s < ckt->CKTportCount; s++) vNoise->d[0][s] = cmultdo(csubco(ckt->CKTadjointRHS->d[s][node1], ckt->CKTadjointRHS->d[s][node2]), inoise); - for (unsigned int d = 0; d < ckt->CKTportCount; d++) + for (int d = 0; d < ckt->CKTportCount; d++) { cplx in; double yport = 1.0 / zref->d[d][d].re; @@ -314,15 +314,15 @@ NevalSrcInstanceTemp(double* noise, double* lnNoise, CKTcircuit* ckt, int type, in.re = vNoise->d[0][d].re * yport; in.im = vNoise->d[0][d].im * yport; - for (unsigned int s = 0; s < ckt->CKTportCount; s++) + for (int s = 0; s < ckt->CKTportCount; s++) caddc(&in, in, cmultco(ckt->CKTYmat->d[d][s], vNoise->d[0][s])); iNoise->d[0][d] = in; } - for (unsigned int d = 0; d < ckt->CKTportCount; d++) - for (unsigned int s = 0; s < ckt->CKTportCount; s++) + for (int d = 0; d < ckt->CKTportCount; d++) + for (int s = 0; s < ckt->CKTportCount; s++) ckt->CKTNoiseCYmat->d[d][s] = caddco(ckt->CKTNoiseCYmat->d[d][s], cmultco(iNoise->d[0][d], conju(iNoise->d[0][s]))); return; diff --git a/src/spicelib/analysis/span.c b/src/spicelib/analysis/span.c index d01e8b97e..b5959cc3d 100644 --- a/src/spicelib/analysis/span.c +++ b/src/spicelib/analysis/span.c @@ -23,7 +23,6 @@ #ifdef RFSPICE -#include "vsrc/vsrcdefs.h" #include "vsrc/vsrcext.h" #include "../maths/dense/dense.h" #include "../maths/dense/denseinlines.h" @@ -514,7 +513,7 @@ SPan(CKTcircuit* ckt, int restart) plot = NULL; } - unsigned int extraSPdataLength = 3 * ckt->CKTportCount * ckt->CKTportCount; + int extraSPdataLength = 3 * ckt->CKTportCount * ckt->CKTportCount; if (job->SPdoNoise) { extraSPdataLength += ckt->CKTportCount * ckt->CKTportCount; // Add Cy @@ -526,8 +525,8 @@ SPan(CKTcircuit* ckt, int restart) // Create UIDs - for (unsigned int dest = 1; dest <= ckt->CKTportCount; dest++) - for (unsigned int j = 1; j <= ckt->CKTportCount; j++) + for (int dest = 1; dest <= ckt->CKTportCount; dest++) + for (int j = 1; j <= ckt->CKTportCount; j++) { char tmpBuf[32]; sprintf(tmpBuf, "S_%d_%d", dest, j); @@ -536,8 +535,8 @@ SPan(CKTcircuit* ckt, int restart) } // Create UIDs - for (unsigned int dest = 1; dest <= ckt->CKTportCount; dest++) - for (unsigned int j = 1; j <= ckt->CKTportCount; j++) + for (int dest = 1; dest <= ckt->CKTportCount; dest++) + for (int j = 1; j <= ckt->CKTportCount; j++) { char tmpBuf[32]; sprintf(tmpBuf, "Y_%d_%d", dest, j); @@ -546,8 +545,8 @@ SPan(CKTcircuit* ckt, int restart) } // Create UIDs - for (unsigned int dest = 1; dest <= ckt->CKTportCount; dest++) - for (unsigned int j = 1; j <= ckt->CKTportCount; j++) + for (int dest = 1; dest <= ckt->CKTportCount; dest++) + for (int j = 1; j <= ckt->CKTportCount; j++) { char tmpBuf[32]; sprintf(tmpBuf, "Z_%d_%d", dest, j); @@ -559,8 +558,8 @@ SPan(CKTcircuit* ckt, int restart) if (job->SPdoNoise) { // Create UIDs - for (unsigned int dest = 1; dest <= ckt->CKTportCount; dest++) - for (unsigned int j = 1; j <= ckt->CKTportCount; j++) + for (int dest = 1; dest <= ckt->CKTportCount; dest++) + for (int j = 1; j <= ckt->CKTportCount; j++) { char tmpBuf[32]; sprintf(tmpBuf, "Cy_%d_%d", dest, j); @@ -665,7 +664,7 @@ SPan(CKTcircuit* ckt, int restart) /* main loop through all scheduled frequencies */ while (freq <= job->SPstopFreq + freqTol) { - unsigned int activePort = 0; + int activePort = 0; // if (SPfrontEnd->IFpauseTest()) { /* user asked us to pause via an interrupt */ @@ -767,14 +766,14 @@ SPan(CKTcircuit* ckt, int restart) // if (error) return (error); //Keep a backup copy - memcpy(rhswoPorts, ckt->CKTrhs, ckt->CKTmaxEqNum * sizeof(double)); - memcpy(rhswoPorts, ckt->CKTirhs, ckt->CKTmaxEqNum * sizeof(double)); + memcpy(rhswoPorts, ckt->CKTrhs, (size_t)ckt->CKTmaxEqNum * sizeof(double)); + memcpy(rhswoPorts, ckt->CKTirhs, (size_t)ckt->CKTmaxEqNum * sizeof(double)); for (activePort = 1; activePort <= ckt->CKTportCount; activePort++) { // Copy the backup RHS into CKT's RHS - memcpy(ckt->CKTrhs, rhswoPorts, ckt->CKTmaxEqNum * sizeof(double)); - memcpy(ckt->CKTirhs, irhswoPorts, ckt->CKTmaxEqNum * sizeof(double)); + memcpy(ckt->CKTrhs, rhswoPorts, (size_t)ckt->CKTmaxEqNum * sizeof(double)); + memcpy(ckt->CKTirhs, irhswoPorts, (size_t)ckt->CKTmaxEqNum * sizeof(double)); ckt->CKTactivePort = activePort; // Update only VSRCs diff --git a/src/spicelib/devices/vsrc/vsrcacld.c b/src/spicelib/devices/vsrc/vsrcacld.c index f39def77d..fce8dc0b0 100644 --- a/src/spicelib/devices/vsrc/vsrcacld.c +++ b/src/spicelib/devices/vsrc/vsrcacld.c @@ -67,7 +67,7 @@ int VSRCgetActivePorts(GENmodel* inModel, CKTcircuit* ckt, VSRCinstance** ports) { if (!(ckt->CKTmode & MODESP)) return (OK); - for (unsigned int n = 0; n < ckt->CKTportCount; n++) + for (int n = 0; n < ckt->CKTportCount; n++) ports[n] = NULL; VSRCmodel* model = (VSRCmodel*)inModel; diff --git a/src/spicelib/devices/vsrc/vsrcdefs.h b/src/spicelib/devices/vsrc/vsrcdefs.h index fa559be9d..349665dc0 100644 --- a/src/spicelib/devices/vsrc/vsrcdefs.h +++ b/src/spicelib/devices/vsrc/vsrcdefs.h @@ -99,7 +99,7 @@ typedef struct sVSRCinstance { unsigned VSRCisPort : 1; /* Flag indicating if this is a port*/ double VSRCVAmplitude; /* Support variable: Open Circuit Port Voltage */ double VSRC2pifreq; /* Calculate 2*pi*freq once */ - unsigned int VSRCportNum; /* Port index*/ + int VSRCportNum; /* Port index*/ double VSRCportZ0; /* Port internal impedance*/ double VSRCportY0; /* Port internal admittance*/ double VSRCportPower; /* Port power (W) for HB analysis */ @@ -189,6 +189,4 @@ enum { /* model questions */ -#include "vsrcext.h" - #endif /*VSRC*/ diff --git a/src/spicelib/devices/vsrc/vsrctemp.c b/src/spicelib/devices/vsrc/vsrctemp.c index 730397f33..d43b1396e 100644 --- a/src/spicelib/devices/vsrc/vsrctemp.c +++ b/src/spicelib/devices/vsrc/vsrctemp.c @@ -24,8 +24,8 @@ VSRCtemp(GENmodel *inModel, CKTcircuit *ckt) #ifdef RFSPICE ckt->CKTportCount = 0; - unsigned int* portIDs; - unsigned int prevPort; + int* portIDs; + int prevPort; #endif /* loop through all the voltage source models */ @@ -114,11 +114,11 @@ VSRCtemp(GENmodel *inModel, CKTcircuit *ckt) } #ifdef RFSPICE - portIDs = (unsigned int*)malloc(ckt->CKTportCount * sizeof(unsigned int)); + portIDs = (int*)malloc((size_t)ckt->CKTportCount * sizeof(int)); if (portIDs == NULL) return (E_NOMEM); - unsigned int curport = 0; + int curport = 0; // Sweep thru all ports to check for correct indexing @@ -130,7 +130,7 @@ VSRCtemp(GENmodel *inModel, CKTcircuit *ckt) if (!here->VSRCisPort) continue; - unsigned int curId = here->VSRCportNum; + int curId = here->VSRCportNum; // If port Index > port Count then we have either a duplicate number or a missing number if (curId > ckt->CKTportCount) {