1 #include <../../nmodlconf.h> 148 char sname[256], dname[257];
156 diag(
buf,
"is user defined and cant be used for SENS");
161 newfun->
u.
i = oldfun->
u.
i;
163 nstate = oldfun->
used;
164 if (type == DERIVATIVE) {
195 if (type == DERIVATIVE) {
196 Sprintf(
buf,
"error=trajecsens(%d, _slist%d, _dlist%d,\ 197 _p, &%s, %s, %s, %d, _slist%d+%d, _dlist%d+%d);\n if(error){abort_run(error);}\n",
204 }
else if (type == NONLINEAR) {
205 Sprintf(
buf,
"error=steadysens(%d, _slist%d, _p, &%s, %s,\ 206 _dlist%d, %d, _slist%d+%d);\n if(error){abort_run(error);}\n",
212 }
else if (type == LINEAR) {
213 Sprintf(
buf,
"error=linearsens(%d, _slist%d, _p, &%s, %s,\ 214 _coef%d, %d, _slist%d+%d);\n if(error){abort_run(error);}\n",
236 if (type == DERIVATIVE) {
243 _slist%d[%d+_i] = (%s + _i) - _p; _dlist%d[%d+_i] = (%s + _i) - _p;}\n",
SYM(q1)->araydim,
244 fn, j + nstate*i, sname, fn, j + nstate*i, dname);
246 Sprintf(
buf,
"_slist%d[%d] = &(%s) - _p; _dlist%d[%d] = &(%s) - _p;\n",
247 fn, j + nstate*i, sname, fn, j + nstate*i, dname);
249 }
else if (type == NONLINEAR || type == LINEAR) {
252 _slist%d[%d+_i] = (%s + _i) - _p;}\n",
SYM(q1)->araydim,
253 fn, j + nstate*i, sname);
256 fn, j + nstate*i, sname);
270 Sprintf(
buf,
"static int _eplist%d[%d], _emlist%d[%d];\n",
271 fn, nstate*
sens_parm, fn, nstate*sens_parm);
276 Sprintf(
buf,
"envelope(_p, _slist%d, %d, %s, U_%s,\ 277 _slist%d+%d, _eplist%d + %d, _emlist%d + %d);\n",
316 _eplist%d[%d+_i] = (%s + _i) - _p; _emlist%d[%d+_i] = (%s + _i) - _p;}\n",
SYM(q1)->araydim,
317 fn, j + nstate*i, sname, fn, j + nstate*i, dname);
319 Sprintf(
buf,
"_eplist%d[%d] = &(%s) - _p; _emlist%d[%d] = &(%s) - _p;\n",
320 fn, j + nstate*i, sname, fn, j + nstate*i, dname);
326 if (type == DERIVATIVE) {
343 if (!sensinfo)
return;
346 if (
SYM(q1) == fun) {
#define ITERATE(itm, lst)
Item * lappendsym(List *list, Symbol *sym)
void add_sens_statelist(Symbol *s)
void sensparm(Item *qparm)
Symbol * ifnew_parminstall(char *name, char *num, char *units, char *limits)
void depinstall(int type, Symbol *n, int index, char *from, char *to, char *units, Item *qs, int makeconst, char *abstol)
void sens_nonlin_out(Item *q, Symbol *fun)
NMODL parser global flags / functions.
void freelist(List **plist)
void sensmassage(int type, Item *qfun, int fn)