diff --git a/src/maths/ni/nipred.c b/src/maths/ni/nipred.c index d7d54298a..127708193 100644 --- a/src/maths/ni/nipred.c +++ b/src/maths/ni/nipred.c @@ -2,16 +2,14 @@ Copyright 1990 Regents of the University of California. All rights reserved. Author: 1985 Thomas L. Quarles **********/ + /* + * NIpred(ckt) + * + * This subroutine does node voltage prediction based on the + * integration method */ - /* - * NIpred(ckt) - * - * This subroutine does node voltage prediction based on the - * integration method - */ - #include "ngspice/ngspice.h" #include "ngspice/trandefs.h" #include "ngspice/cktdefs.h" @@ -19,9 +17,9 @@ Author: 1985 Thomas L. Quarles #include "ngspice/smpdefs.h" #ifdef PREDICTOR + int NIpred(CKTcircuit * ckt) - { int i; int size; @@ -38,33 +36,33 @@ NIpred(CKTcircuit * ckt) size = SMPmatSize(ckt->CKTmatrix); - - switch(ckt->CKTintegrateMethod) { + + switch (ckt->CKTintegrateMethod) { case TRAPEZOIDAL: { - double dd0,dd1,a,b; - switch(ckt->CKTorder) { + double dd0, dd1, a, b; + switch (ckt->CKTorder) { case 1: - for(i=0;i<=size;i++) { - dd0=(ckt->CKTsols[0][i]-ckt->CKTsols[1][i])/ - (ckt->CKTdeltaOld[1]); - ckt->CKTpred[i] = ckt->CKTrhs[i] = ckt->CKTsols[0][i]+ - ckt->CKTdeltaOld[0]*dd0; + for (i = 0; i <= size; i++) { + dd0 = (ckt->CKTsols[0][i] - ckt->CKTsols[1][i]) / + ckt->CKTdeltaOld[1]; + ckt->CKTpred[i] = ckt->CKTrhs[i] = ckt->CKTsols[0][i] + + ckt->CKTdeltaOld[0] * dd0; } break; case 2: - for(i=0;i<=size;i++) { - b = -ckt->CKTdeltaOld[0]/(2*ckt->CKTdeltaOld[1]); - a = 1-b; - dd0=(ckt->CKTsols[0][i]-ckt->CKTsols[1][i])/ - (ckt->CKTdeltaOld[1]); - dd1= ((ckt->CKTsols[1][i]-ckt->CKTsols[2][i])/ - ckt->CKTdeltaOld[2] ); - ckt->CKTpred[i] = ckt->CKTrhs[i] = - ckt->CKTsols[0][i]+ - (b*dd1 + a*dd0)* ckt->CKTdeltaOld[0]; + for (i = 0; i <= size; i++) { + b = - ckt->CKTdeltaOld[0] / (2*ckt->CKTdeltaOld[1]); + a = 1 - b; + dd0 = (ckt->CKTsols[0][i] - ckt->CKTsols[1][i]) / + ckt->CKTdeltaOld[1]; + dd1 = (ckt->CKTsols[1][i] - ckt->CKTsols[2][i]) / + ckt->CKTdeltaOld[2]; + ckt->CKTpred[i] = ckt->CKTrhs[i] = + ckt->CKTsols[0][i] + + (b * dd1 + a * dd0) * ckt->CKTdeltaOld[0]; } break; @@ -72,81 +70,83 @@ NIpred(CKTcircuit * ckt) return(E_ORDER); } } - break; + break; - case GEAR: + case GEAR: node = ckt->CKTnodes; - switch(ckt->CKTorder) { + switch (ckt->CKTorder) { case 1: - for(i=0;i<=size;i++) { - ckt->CKTpred[i]=ckt->CKTrhs[i] = - ckt->CKTagp[0]* ckt->CKTsols[0][i] + - ckt->CKTagp[1]* ckt->CKTsols[1][i] ; + for (i = 0; i <= size; i++) { + ckt->CKTpred[i] = ckt->CKTrhs[i] = + ckt->CKTagp[0] * ckt->CKTsols[0][i] + + ckt->CKTagp[1] * ckt->CKTsols[1][i] ; node = node->next; } break; case 2: - for(i=0;i<=size;i++) { - ckt->CKTpred[i]=ckt->CKTrhs[i] = - ckt->CKTagp[0]* ckt->CKTsols[0][i] + - ckt->CKTagp[1]* ckt->CKTsols[1][i] + - ckt->CKTagp[2]* ckt->CKTsols[2][i] ; + for (i = 0; i <= size; i++) { + ckt->CKTpred[i] = ckt->CKTrhs[i] = + ckt->CKTagp[0] * ckt->CKTsols[0][i] + + ckt->CKTagp[1] * ckt->CKTsols[1][i] + + ckt->CKTagp[2] * ckt->CKTsols[2][i] ; node = node->next; } break; case 3: - for(i=0;i<=size;i++) { - ckt->CKTpred[i]=ckt->CKTrhs[i] = - ckt->CKTagp[0]* ckt->CKTsols[0][i] + - ckt->CKTagp[1]* ckt->CKTsols[1][i] + - ckt->CKTagp[2]* ckt->CKTsols[2][i] + - ckt->CKTagp[3]* ckt->CKTsols[3][i] ; + for (i = 0; i <= size; i++) { + ckt->CKTpred[i] = ckt->CKTrhs[i] = + ckt->CKTagp[0] * ckt->CKTsols[0][i] + + ckt->CKTagp[1] * ckt->CKTsols[1][i] + + ckt->CKTagp[2] * ckt->CKTsols[2][i] + + ckt->CKTagp[3] * ckt->CKTsols[3][i] ; } break; case 4: - for(i=0;i<=size;i++) { - ckt->CKTpred[i]=ckt->CKTrhs[i] = - ckt->CKTagp[0]* ckt->CKTsols[0][i] + - ckt->CKTagp[1]* ckt->CKTsols[1][i] + - ckt->CKTagp[2]* ckt->CKTsols[2][i] + - ckt->CKTagp[3]* ckt->CKTsols[3][i] + - ckt->CKTagp[4]* ckt->CKTsols[4][i] ; + for (i = 0; i <= size; i++) { + ckt->CKTpred[i] = ckt->CKTrhs[i] = + ckt->CKTagp[0] * ckt->CKTsols[0][i] + + ckt->CKTagp[1] * ckt->CKTsols[1][i] + + ckt->CKTagp[2] * ckt->CKTsols[2][i] + + ckt->CKTagp[3] * ckt->CKTsols[3][i] + + ckt->CKTagp[4] * ckt->CKTsols[4][i] ; } break; case 5: - for(i=0;i<=size;i++) { - ckt->CKTpred[i]=ckt->CKTrhs[i] = - ckt->CKTagp[0]* ckt->CKTsols[0][i] + - ckt->CKTagp[1]* ckt->CKTsols[1][i] + - ckt->CKTagp[2]* ckt->CKTsols[2][i] + - ckt->CKTagp[3]* ckt->CKTsols[3][i] + - ckt->CKTagp[4]* ckt->CKTsols[4][i] + - ckt->CKTagp[5]* ckt->CKTsols[5][i] ; + for (i = 0; i <= size; i++) { + ckt->CKTpred[i] = ckt->CKTrhs[i] = + ckt->CKTagp[0] * ckt->CKTsols[0][i] + + ckt->CKTagp[1] * ckt->CKTsols[1][i] + + ckt->CKTagp[2] * ckt->CKTsols[2][i] + + ckt->CKTagp[3] * ckt->CKTsols[3][i] + + ckt->CKTagp[4] * ckt->CKTsols[4][i] + + ckt->CKTagp[5] * ckt->CKTsols[5][i] ; } break; case 6: - for(i=0;i<=size;i++) { - ckt->CKTpred[i]=ckt->CKTrhs[i] = - ckt->CKTagp[0]* ckt->CKTsols[0][i] + - ckt->CKTagp[1]* ckt->CKTsols[1][i] + - ckt->CKTagp[2]* ckt->CKTsols[2][i] + - ckt->CKTagp[3]* ckt->CKTsols[3][i] + - ckt->CKTagp[4]* ckt->CKTsols[4][i] + - ckt->CKTagp[5]* ckt->CKTsols[5][i] + - ckt->CKTagp[6]* ckt->CKTsols[6][i] ; + for (i = 0; i <= size; i++) { + ckt->CKTpred[i] = ckt->CKTrhs[i] = + ckt->CKTagp[0] * ckt->CKTsols[0][i] + + ckt->CKTagp[1] * ckt->CKTsols[1][i] + + ckt->CKTagp[2] * ckt->CKTsols[2][i] + + ckt->CKTagp[3] * ckt->CKTsols[3][i] + + ckt->CKTagp[4] * ckt->CKTsols[4][i] + + ckt->CKTagp[5] * ckt->CKTsols[5][i] + + ckt->CKTagp[6] * ckt->CKTsols[6][i] ; } break; default: return(E_ORDER); } - break; + break; default: return(E_METHOD); } + return(OK); } + #else int Dummy_Symbol; #endif /* PREDICTOR */