17 extern double DEVpnjlim(
double,
double,
double,
double,
int*);
18 extern double DEVfetlim(
double,
double,
double);
19 extern void DEVqmeyer(
double,
double,
double,
double,
double*,
double*,
20 double*,
double,
double);
59 int (*
DEVtrunc)(GENmodel*,CKTcircuit*,
double*);
73 int (*
DEVsetic)(GENmodel*,CKTcircuit*);
75 int (*
DEVask)(CKTcircuit*,GENinstance*,int,IFvalue*,IFvalue*);
77 int (*
DEVmodAsk)(CKTcircuit*,GENmodel*,int,IFvalue*);
83 int (*
DEVdisto)(int,GENmodel*,CKTcircuit*);
118 #define IP(a,b,c,d) { a , b , c|IF_SET , d } 119 #define OP(a,b,c,d) { a , b , c|IF_ASK , d } 120 #define IOP(a,b,c,d) { a , b , c|IF_SET|IF_ASK , d } 121 #define P(a,b,c,d) { a , b , c , d } 124 #define TSTALLOC(ptr,first,second) \ 125 if((here->ptr = spGetElement(matrix,here->first,here->second))==(double *)NULL){\ 130 #define NI_SUM(ckt,ceq,qcap){ \ 131 if(ckt->CKTintegrateMethod==TRAPEZOIDAL){ \ 132 if(ckt->CKTorder==1) \ 133 ceq=ckt->CKTag[1]* *(ckt->CKTstate1+qcap); \ 135 ceq= - *(ckt->CKTstate1+qcap+1)*ckt->CKTag[1]- \ 136 ckt->CKTag[0]* *(ckt->CKTstate1+qcap); \ 138 else {error=NIsum(ckt,&ceq,qcap); if(error) return(error);}\ 141 #define NI_INTEG(ckt,geq,ceq,cap,qcap){ \ 142 if (ckt->CKTintegrateMethod==TRAPEZOIDAL){ \ 143 if (ckt->CKTorder==1) \ 144 ceq=ckt->CKTag[1]* *(ckt->CKTstate1+qcap); \ 146 ceq= - *(ckt->CKTstate1+qcap+1)*ckt->CKTag[1]- \ 147 ckt->CKTag[0]* *(ckt->CKTstate1+qcap); \ 148 *(ckt->CKTstate0+qcap+1)= \ 149 ckt->CKTag[0]* *(ckt->CKTstate0+qcap)+ceq; \ 150 geq=ckt->CKTag[0]*cap; \ 152 else {error=NIintegrate(ckt,&geq,&ceq,cap,qcap); if(error) return(error);} \