diff --git a/src/spicelib/devices/cpl/cpldefs.h b/src/spicelib/devices/cpl/cpldefs.h index ad833fb32..9c441a0da 100644 --- a/src/spicelib/devices/cpl/cpldefs.h +++ b/src/spicelib/devices/cpl/cpldefs.h @@ -35,22 +35,22 @@ typedef struct sCPLinstance { char **in_node_names; char **out_node_names; - double **CPLibr1Ibr1; - double **CPLibr2Ibr2; - double **CPLposIbr1; - double **CPLnegIbr2; + double **CPLibr1Ibr1Ptr; + double **CPLibr2Ibr2Ptr; + double **CPLposIbr1Ptr; + double **CPLnegIbr2Ptr; /* trial */ - double **CPLposPos; - double **CPLnegNeg; - double **CPLposNeg; - double **CPLnegPos; + double **CPLposPosPtr; + double **CPLnegNegPtr; + double **CPLposNegPtr; + double **CPLnegPosPtr; - double ***CPLibr1Pos; - double ***CPLibr2Neg; - double ***CPLibr1Neg; - double ***CPLibr2Pos; - double ***CPLibr1Ibr2; - double ***CPLibr2Ibr1; + double ***CPLibr1PosPtr; + double ***CPLibr2NegPtr; + double ***CPLibr1NegPtr; + double ***CPLibr2PosPtr; + double ***CPLibr1Ibr2Ptr; + double ***CPLibr2Ibr1Ptr; unsigned CPLibr1Given : 1; unsigned CPLibr2Given : 1; diff --git a/src/spicelib/devices/cpl/cplload.c b/src/spicelib/devices/cpl/cplload.c index 952fa4fcf..b24de76cb 100644 --- a/src/spicelib/devices/cpl/cplload.c +++ b/src/spicelib/devices/cpl/cplload.c @@ -80,10 +80,10 @@ CPLload(GENmodel *inModel, CKTcircuit *ckt) for(m = 0 ; m < noL ; m++) /* dc solution */ { - *here->CPLposPos[m] += gmin; - *here->CPLnegNeg[m] += gmin; - *here->CPLnegPos[m] += gmin; - *here->CPLposNeg[m] += gmin; + *here->CPLposPosPtr[m] += gmin; + *here->CPLnegNegPtr[m] += gmin; + *here->CPLnegPosPtr[m] += gmin; + *here->CPLposNegPtr[m] += gmin; } if (cond1 || cp->vi_head == NULL) continue; @@ -158,13 +158,13 @@ CPLload(GENmodel *inModel, CKTcircuit *ckt) if (here->CPLlengthGiven) g = model->Rm[resindex] * here->CPLlength; else g = model->Rm[resindex] * here->CPLmodPtr->length; - *(here->CPLposIbr1[m]) += 1.0; - *(here->CPLnegIbr2[m]) += 1.0; - *(here->CPLibr1Ibr1[m]) += 1.0; - *(here->CPLibr1Ibr2[m][m]) += 1.0; - *(here->CPLibr2Pos[m][m]) += 1.0; - *(here->CPLibr2Neg[m][m]) -= 1.0; - *(here->CPLibr2Ibr1[m][m]) -= g; + *(here->CPLposIbr1Ptr[m]) += 1.0; + *(here->CPLnegIbr2Ptr[m]) += 1.0; + *(here->CPLibr1Ibr1Ptr[m]) += 1.0; + *(here->CPLibr1Ibr2Ptr[m][m]) += 1.0; + *(here->CPLibr2PosPtr[m][m]) += 1.0; + *(here->CPLibr2NegPtr[m][m]) -= 1.0; + *(here->CPLibr2Ibr1Ptr[m][m]) -= g; resindex = resindex + noL - m; } continue; @@ -267,20 +267,20 @@ CPLload(GENmodel *inModel, CKTcircuit *ckt) } for (m = 0; m < noL; m++) { - *(here->CPLibr1Ibr1[m]) = -1.0; - *(here->CPLibr2Ibr2[m]) = -1.0; + *(here->CPLibr1Ibr1Ptr[m]) = -1.0; + *(here->CPLibr2Ibr2Ptr[m]) = -1.0; } for (m = 0; m < noL; m++) { - *(here->CPLposIbr1[m]) = 1.0; - *(here->CPLnegIbr2[m]) = 1.0; + *(here->CPLposIbr1Ptr[m]) = 1.0; + *(here->CPLnegIbr2Ptr[m]) = 1.0; } for (m = 0; m < noL; m++) { for (p = 0; p < noL; p++) { - *(here->CPLibr1Pos[m][p]) = + *(here->CPLibr1PosPtr[m][p]) = cp->h1t[m][p]->aten + h1 * cp->h1C[m][p]; - *(here->CPLibr2Neg[m][p]) = + *(here->CPLibr2NegPtr[m][p]) = cp->h1t[m][p]->aten + h1 * cp->h1C[m][p]; } } @@ -302,14 +302,14 @@ CPLload(GENmodel *inModel, CKTcircuit *ckt) if (cp->h3t[m][p][q]) { f = ratio[q] * (h1 * cp->h3C[m][p][q] + cp->h3t[m][p][q]->aten); - *(here->CPLibr1Neg[m][p]) = -f; - *(here->CPLibr2Pos[m][p]) = -f; + *(here->CPLibr1NegPtr[m][p]) = -f; + *(here->CPLibr2PosPtr[m][p]) = -f; } if (cp->h2t[m][p][q]) { f = ratio[q] * (h1 * cp->h2C[m][p][q] + cp->h2t[m][p][q]->aten); - *(here->CPLibr1Ibr2[m][p]) = -f; - *(here->CPLibr2Ibr1[m][p]) = -f; + *(here->CPLibr1Ibr2Ptr[m][p]) = -f; + *(here->CPLibr2Ibr1Ptr[m][p]) = -f; } } diff --git a/src/spicelib/devices/cpl/cplsetup.c b/src/spicelib/devices/cpl/cplsetup.c index cdaa01eb3..9791eaacb 100644 --- a/src/spicelib/devices/cpl/cplsetup.c +++ b/src/spicelib/devices/cpl/cplsetup.c @@ -195,21 +195,21 @@ do { if((here->ptr = SMPmakeElt(matrix, here->first, here->second)) == NULL){\ here->CPLibr1 = TMALLOC(int, noL); here->CPLibr2 = TMALLOC(int, noL); - VECTOR_ALLOC(here->CPLibr1Ibr1, noL); - VECTOR_ALLOC(here->CPLibr2Ibr2, noL); - VECTOR_ALLOC(here->CPLposIbr1, noL); - VECTOR_ALLOC(here->CPLnegIbr2, noL); - VECTOR_ALLOC(here->CPLposPos, noL); - VECTOR_ALLOC(here->CPLnegNeg, noL); - VECTOR_ALLOC(here->CPLnegPos, noL); - VECTOR_ALLOC(here->CPLposNeg, noL); + VECTOR_ALLOC(here->CPLibr1Ibr1Ptr, noL); + VECTOR_ALLOC(here->CPLibr2Ibr2Ptr, noL); + VECTOR_ALLOC(here->CPLposIbr1Ptr, noL); + VECTOR_ALLOC(here->CPLnegIbr2Ptr, noL); + VECTOR_ALLOC(here->CPLposPosPtr, noL); + VECTOR_ALLOC(here->CPLnegNegPtr, noL); + VECTOR_ALLOC(here->CPLnegPosPtr, noL); + VECTOR_ALLOC(here->CPLposNegPtr, noL); - MATRIX_ALLOC(here->CPLibr1Pos, noL, noL); - MATRIX_ALLOC(here->CPLibr2Neg, noL, noL); - MATRIX_ALLOC(here->CPLibr1Neg, noL, noL); - MATRIX_ALLOC(here->CPLibr2Pos, noL, noL); - MATRIX_ALLOC(here->CPLibr1Ibr2, noL, noL); - MATRIX_ALLOC(here->CPLibr2Ibr1, noL, noL); + MATRIX_ALLOC(here->CPLibr1PosPtr, noL, noL); + MATRIX_ALLOC(here->CPLibr2NegPtr, noL, noL); + MATRIX_ALLOC(here->CPLibr1NegPtr, noL, noL); + MATRIX_ALLOC(here->CPLibr2PosPtr, noL, noL); + MATRIX_ALLOC(here->CPLibr1Ibr2Ptr, noL, noL); + MATRIX_ALLOC(here->CPLibr2Ibr1Ptr, noL, noL); branchname = TMALLOC(char *, here->dimension); @@ -259,23 +259,23 @@ do { if((here->ptr = SMPmakeElt(matrix, here->first, here->second)) == NULL){\ } for (m = 0; m < here->dimension; m++) { - TSTALLOC(CPLibr1Ibr1[m],CPLibr1[m],CPLibr1[m]); - TSTALLOC(CPLibr2Ibr2[m],CPLibr2[m],CPLibr2[m]); - TSTALLOC(CPLposIbr1[m],CPLposNodes[m],CPLibr1[m]); - TSTALLOC(CPLnegIbr2[m],CPLnegNodes[m],CPLibr2[m]); - TSTALLOC(CPLposPos[m],CPLposNodes[m],CPLposNodes[m]); - TSTALLOC(CPLnegNeg[m],CPLnegNodes[m],CPLnegNodes[m]); - TSTALLOC(CPLnegPos[m],CPLnegNodes[m],CPLposNodes[m]); - TSTALLOC(CPLposNeg[m],CPLposNodes[m],CPLnegNodes[m]); + TSTALLOC(CPLibr1Ibr1Ptr[m],CPLibr1[m],CPLibr1[m]); + TSTALLOC(CPLibr2Ibr2Ptr[m],CPLibr2[m],CPLibr2[m]); + TSTALLOC(CPLposIbr1Ptr[m],CPLposNodes[m],CPLibr1[m]); + TSTALLOC(CPLnegIbr2Ptr[m],CPLnegNodes[m],CPLibr2[m]); + TSTALLOC(CPLposPosPtr[m],CPLposNodes[m],CPLposNodes[m]); + TSTALLOC(CPLnegNegPtr[m],CPLnegNodes[m],CPLnegNodes[m]); + TSTALLOC(CPLnegPosPtr[m],CPLnegNodes[m],CPLposNodes[m]); + TSTALLOC(CPLposNegPtr[m],CPLposNodes[m],CPLnegNodes[m]); for (p = 0; p < here->dimension; p++) { - TSTALLOC(CPLibr1Pos[m][p],CPLibr1[m],CPLposNodes[p]); - TSTALLOC(CPLibr2Neg[m][p],CPLibr2[m],CPLnegNodes[p]); - TSTALLOC(CPLibr1Neg[m][p],CPLibr1[m],CPLnegNodes[p]); - TSTALLOC(CPLibr2Pos[m][p],CPLibr2[m],CPLposNodes[p]); - TSTALLOC(CPLibr1Ibr2[m][p],CPLibr1[m],CPLibr2[p]); - TSTALLOC(CPLibr2Ibr1[m][p],CPLibr2[m],CPLibr1[p]); + TSTALLOC(CPLibr1PosPtr[m][p],CPLibr1[m],CPLposNodes[p]); + TSTALLOC(CPLibr2NegPtr[m][p],CPLibr2[m],CPLnegNodes[p]); + TSTALLOC(CPLibr1NegPtr[m][p],CPLibr1[m],CPLnegNodes[p]); + TSTALLOC(CPLibr2PosPtr[m][p],CPLibr2[m],CPLposNodes[p]); + TSTALLOC(CPLibr1Ibr2Ptr[m][p],CPLibr1[m],CPLibr2[p]); + TSTALLOC(CPLibr2Ibr1Ptr[m][p],CPLibr2[m],CPLibr1[p]); } } @@ -305,22 +305,22 @@ CPLunsetup(GENmodel *inModel, CKTcircuit *ckt) noL = here->dimension; - VECTOR_FREE(here->CPLibr1Ibr1); - VECTOR_FREE(here->CPLibr2Ibr2); - VECTOR_FREE(here->CPLposIbr1); - VECTOR_FREE(here->CPLnegIbr2); - VECTOR_FREE(here->CPLposPos); - VECTOR_FREE(here->CPLnegNeg); - VECTOR_FREE(here->CPLnegPos); - VECTOR_FREE(here->CPLposNeg); + VECTOR_FREE(here->CPLibr1Ibr1Ptr); + VECTOR_FREE(here->CPLibr2Ibr2Ptr); + VECTOR_FREE(here->CPLposIbr1Ptr); + VECTOR_FREE(here->CPLnegIbr2Ptr); + VECTOR_FREE(here->CPLposPosPtr); + VECTOR_FREE(here->CPLnegNegPtr); + VECTOR_FREE(here->CPLnegPosPtr); + VECTOR_FREE(here->CPLposNegPtr); - MATRIX_FREE(here->CPLibr1Pos, noL, noL); - MATRIX_FREE(here->CPLibr2Neg, noL, noL); - MATRIX_FREE(here->CPLibr1Neg, noL, noL); - MATRIX_FREE(here->CPLibr2Pos, noL, noL); - MATRIX_FREE(here->CPLibr1Ibr2, noL, noL); - MATRIX_FREE(here->CPLibr2Ibr1, noL, noL); + MATRIX_FREE(here->CPLibr1PosPtr, noL, noL); + MATRIX_FREE(here->CPLibr2NegPtr, noL, noL); + MATRIX_FREE(here->CPLibr1NegPtr, noL, noL); + MATRIX_FREE(here->CPLibr2PosPtr, noL, noL); + MATRIX_FREE(here->CPLibr1Ibr2Ptr, noL, noL); + MATRIX_FREE(here->CPLibr2Ibr1Ptr, noL, noL); for (m = 0; m < noL; m++) {