32 if (ckt->CKTorder == 2) {
33 ckt->
CKTag[0] = 2.0/ckt->CKTdelta;
43 if (ckt->CKTorder == 1) {
44 ckt->CKTag[0] = 1/ckt->CKTdelta;
45 ckt->CKTag[1] = -ckt->CKTag[0];
50 if (ckt->CKTintegrateMethod ==
GEAR) {
67 if (ckt->CKTorder < 1 || ckt->CKTorder > 6)
70 bzero(ckt->CKTag,7*
sizeof(
double));
71 ckt->CKTag[1] = -1/ckt->CKTdelta;
74 for (i = 0; i <= ckt->CKTorder; i++) { mat[0][i]=1; }
75 for (i = 1; i <= ckt->CKTorder; i++) { mat[i][0]=0; }
83 for (i = 1; i <= ckt->CKTorder; i++) {
84 arg += ckt->CKTdeltaOld[i-1];
86 for (j = 1; j <= ckt->CKTorder; j++) {
87 arg1 *= arg/ckt->CKTdelta;
99 for (i = 1; i <= ckt->CKTorder; i++) {
100 for (j = i+1; j <= ckt->CKTorder; j++) {
101 mat[j][i] /= mat[i][i];
102 for (k = i+1; k <= ckt->CKTorder; k++) {
103 mat[j][k] -= mat[j][i]*mat[i][k];
108 for (i = 1; i <= ckt->CKTorder; i++) {
109 for (j = i+1; j <= ckt->CKTorder; j++) {
110 ckt->CKTag[j] = ckt->CKTag[j]-mat[j][i]*ckt->CKTag[i];
114 ckt->CKTag[ckt->CKTorder] /= mat[ckt->CKTorder][ckt->CKTorder];
115 for (i = ckt->CKTorder-1; i >= 0; i--) {
116 for (j = i+1; j <= ckt->CKTorder; j++) {
117 ckt->CKTag[i] = ckt->CKTag[i] - mat[i][j]*ckt->CKTag[j];
119 ckt->CKTag[i] /= mat[i][i];
int bzero(char *ptr, int num)
int NIcomCof(CKTcircuit *ckt)