NEURON
hoc_init.cpp
Go to the documentation of this file.
1 #include <../../nrnconf.h>
2 /* /local/src/master/nrn/src/oc/hoc_init.cpp,v 1.25 1999/11/08 17:48:58 hines Exp */
3 
4 #include "hoc.h"
5 #include "parse.hpp"
6 #include <math.h>
7 #include "equation.h"
8 #include "nrnunits_modern.h"
9 
10 #include "ocfunc.h"
11 
12 
13 extern void hoc_nrnmpi_init();
14 
15 #if PVM
16 extern int numprocs(), myproc(), psync();
17 #endif
18 #if 0
19 extern int hoc_co();
20 #endif
21 #if DOS || defined(WIN32) /*|| defined(MAC)*/
22 extern double erf(), erfc(); /* supplied by unix */
23 #endif
24 #if defined(WIN32)
25 extern void hoc_winio_show(int b);
26 #endif
27 
28 #if MAC
29 static double Fabs(double x) {
30  return (x > 0.) ? x : -x;
31 }
32 static double Erf(double x) {
33  return erf(x);
34 }
35 static double Erfc(double x) {
36  return erfc(x);
37 }
38 #endif
39 
40 static struct { /* Keywords */
41  char* name;
42  int kval;
43 } keywords[] = {"proc",
44  parsePROC,
45  "func",
46  FUNC,
47  "obfunc",
48  HOCOBJFUNC,
49  "return",
50  RETURN,
51  "break",
52  BREAK,
53  "continue",
54  CONTINUE,
55  "stop",
56  STOPSTMT,
57  "if",
58  IF,
59  "else",
60  ELSE,
61  "while",
62  WHILE,
63  "for",
64  FOR,
65  "print",
66  PRINT,
67  "delete",
68  parseDELETE,
69  "read",
70  READ,
71  "debug",
72  DEBUG,
73  "double",
74  parseDOUBLE,
75  "depvar",
76  DEPENDENT,
77  "eqn",
78  EQUATION,
79  "local",
80  LOCAL,
81  "localobj",
82  LOCALOBJ,
83  "strdef",
84  STRDEF,
85  "parallel",
86  PARALLEL,
87  "help",
88  HELP,
89  "iterator",
90  ITERKEYWORD,
91  "iterator_statement",
92  ITERSTMT,
93 #if CABLE
94  "create",
95  SECTIONKEYWORD,
96  "connect",
97  CONNECTKEYWORD,
98  "setpointer",
99  SETPOINTERKEYWORD,
100  "access",
101  ACCESSKEYWORD,
102  "insert",
103  INSERTKEYWORD,
104  "uninsert",
105  UNINSERTKEYWORD,
106  "forall",
107  FORALL,
108  "ifsec",
109  IFSEC,
110  "forsec",
111  FORSEC,
112 #endif /*CABLE*/
113 #if OOP
114  "begintemplate",
115  BEGINTEMPLATE,
116  "endtemplate",
117  ENDTEMPLATE,
118  "objectvar",
119  OBJVARDECL,
120  "objref",
121  OBJVARDECL,
122  "public",
123  PUBLICDECL,
124  "external",
125  EXTERNALDECL,
126  "new",
127  NEW,
128 #endif
129  0,
130  0};
131 static struct { /* Constants */
132  char* name;
133  double cval;
134 } consts[] = {"PI",
135  3.14159265358979323846,
136  "E",
137  2.71828182845904523536,
138  "GAMMA",
139  0.57721566490153286060, /* Euler */
140  "DEG",
141  57.29577951308232087680, /* deg/radian */
142  "PHI",
143  1.61803398874989484820, /* golden ratio */
144  0,
145  0};
146 
147 /* Nov, 2017, from https://physics.nist.gov/cuu/Constants/index.html */
148 /* also see FARADAY and gasconstant in ../nrnoc/eion.c */
149 static struct { /* Modern, Legacy units constants */
150  char* name;
151  double cval[2];
152 } uconsts[] = {"FARADAY",
153  {_faraday_codata2018, 96485.309}, /*coulombs/mole*/
154  "R",
155  {_gasconstant_codata2018, 8.31441}, /*molar gas constant, joules/mole/deg-K*/
156  "Avogadro_constant",
157  {_avogadro_number_codata2018, 6.02214129e23}, /* note that the legacy value in
158  nrnunits.lib.in is 6.022169+23 */
159  0,
160  {0., 0.}};
161 
162 static struct { /* Built-ins */
163  char* name;
164  double (*func)(double);
165 } builtins[] = {"sin", sin, "cos", cos, "atan", atan,
166  "tanh", tanh, "log", Log, /* checks argument */
167  "log10", Log10, /* checks argument */
168  "exp", hoc1_Exp, /* checks argument */
169  "sqrt", Sqrt, /* checks argument */
170  "int", integer,
171 #if MAC
172  "abs", Fabs, "erf", Erf, "erfc", Erfc,
173 #else
174  "abs", fabs, "erf", erf, "erfc", erfc,
175 #endif
176  0, 0};
177 static struct { /* Builtin functions with multiple or variable args */
178  char* name;
180 } fun_bltin[] = {"atan2",
181  hoc_atan2,
182  "system",
183  hoc_System,
184  "prmat",
185  hoc_Prmat,
186  "solve",
187  hoc_solve,
188  "eqinit",
189  hoc_eqinit,
190  "plt",
191  hoc_Plt,
192  "axis",
193  hoc_axis,
194  "plot",
195  hoc_Plot,
196  "plotx",
197  hoc_plotx,
198  "ploty",
199  hoc_ploty,
200  "regraph",
201  hoc_regraph,
202  "symbols",
203  hoc_symbols,
204  "printf",
205  hoc_PRintf,
206  "xred",
207  hoc_Xred,
208  "sred",
209  hoc_Sred,
210  "ropen",
211  hoc_ropen,
212  "wopen",
213  hoc_wopen,
214  "xopen",
215  hoc_xopen,
216  "hoc_stdout",
217  hoc_stdout,
218  "chdir",
219  hoc_Chdir,
220  "fprint",
221  hoc_Fprint,
222  "fscan",
223  hoc_Fscan,
224  "sscanf",
225  hoc_sscanf,
226  "sprint",
227  hoc_Sprint,
228  "graph",
229  hoc_Graph,
230  "graphmode",
232  "fmenu",
233  hoc_fmenu,
234  "lw",
235  hoc_Lw,
236  "getstr",
237  hoc_Getstr,
238  "strcmp",
239  hoc_Strcmp,
240  "setcolor",
241  hoc_Setcolor,
242  "startsw",
243  hoc_startsw,
244  "stopsw",
245  hoc_stopsw,
246  "object_id",
248  "allobjectvars",
250  "allobjects",
252  "xpanel",
253  hoc_xpanel,
254  "xbutton",
255  hoc_xbutton,
256  "xcheckbox",
258  "xstatebutton",
260  "xlabel",
261  hoc_xlabel,
262  "xmenu",
263  hoc_xmenu,
264  "xvalue",
265  hoc_xvalue,
266  "xpvalue",
267  hoc_xpvalue,
268  "xradiobutton",
270  "xfixedvalue",
272  "xvarlabel",
274  "xslider",
275  hoc_xslider,
276  "boolean_dialog",
278  "continue_dialog",
280  "string_dialog",
282  "doEvents",
284  "doNotify",
286  "nrniv_bind_thread",
288  "ivoc_style",
289  ivoc_style,
290  "numarg",
291  hoc_Numarg,
292  "argtype",
293  hoc_Argtype,
294  "hoc_pointer_",
295  hoc_pointer, /* for internal use */
296  "nrn_mallinfo",
297  hoc_mallinfo,
298  "execute",
299  hoc_exec_cmd,
300  "execute1",
301  hoc_execute1,
302  "load_proc",
304  "load_func",
306  "load_template",
308  "load_file",
310  "unix_mac_pc",
312  "show_winio",
314  "nrn_load_dll",
316  "machine_name",
318  "saveaudit",
320  "retrieveaudit",
322  "coredump_on_error",
324  "checkpoint",
326  "quit",
327  hoc_quit,
328  "object_push",
330  "object_pop",
332  "pwman_place",
334  "save_session",
336  "print_session",
338  "show_errmess_always",
340  "execerror",
342  "variable_domain",
344  "name_declared",
346  "use_mcell_ran4",
348  "mcell_ran4",
349  hoc_mcran4,
350  "mcell_ran4_init",
352  "nrn_feenableexcept",
354  "nrnmpi_init",
356 #if PVM
357  "numprocs",
358  numprocs,
359  "myproc",
360  myproc,
361  "psync",
362  psync,
363 #endif
364 #if DOS
365  "settext",
366  hoc_settext,
367 #endif
368 #if defined(WIN32)
369  "WinExec",
370  hoc_win_exec,
371 #endif
372  0,
373  0};
374 
375 static struct { /* functions that return a string */
376  char* name;
378 } strfun_bltin[] = {"secname",
379  hoc_secname,
380  "units",
382  "neuronhome",
384  "getcwd",
385  hoc_getcwd,
386  "nrnversion",
388  0,
389  0};
390 
391 static struct { /* functions that return an object */
392  char* name;
394 } objfun_bltin[] = {"object_pushed", hoc_object_pushed, 0, 0};
395 
396 double hoc_epsilon = 1.e-11;
397 double hoc_ac_; /*known to the interpreter to evaluate expressions with hoc_oc() */
398 double* hoc_varpointer; /* executing hoc_pointer(&var) will put the address of
399  the variable in this location */
400 
401 double hoc_cross_x_, hoc_cross_y_; /* For Graph class in ivoc */
403 
405 char* nrn_mech_dll; /* but actually only for NEURON mswin and linux */
406 int nrn_noauto_dlopen_nrnmech; /* 0 except when binary special. */
409 int _nrnunit_use_legacy_; /* allow dynamic switching between legacy and modern units */
410 
411 void hoc_init(void) /* install constants and built-ins table */
412 {
413  int i;
414  Symbol* s;
415 
416 #if defined(DYNAMIC_UNITS_USE_LEGACY_DEFAULT)
417  _nrnunit_use_legacy_ = 1; /* legacy as default */
418 #else
419  _nrnunit_use_legacy_ = 0; /* new units as default */
420 #endif
421  { /* but check the environment variable if it exists */
422  const char* envvar = getenv("NRNUNIT_USE_LEGACY");
423  if (envvar) {
424  if (strcmp(envvar, "1") == 0) {
426  } else if (strcmp(envvar, "0") == 0) {
428  }
429  }
430  }
431 
432  use_mcell_ran4_ = 0;
433  nrn_xopen_broadcast_ = 255;
434  extern void hoc_init_space(void);
435  hoc_init_space();
436  for (i = 0; keywords[i].name; i++)
438  for (i = 0; consts[i].name; i++) {
439  s = install(consts[i].name, UNDEF, consts[i].cval, &symlist);
440  s->type = VAR;
441  s->u.pval = &consts[i].cval;
442  s->subtype = USERDOUBLE;
443  }
444  for (i = 0; uconsts[i].name; i++) {
445  s = install(uconsts[i].name, UNDEF, uconsts[i].cval[0], &symlist);
446  s->type = VAR;
447  s->u.pval = &uconsts[i].cval[0];
448  s->subtype = DYNAMICUNITS;
449  }
450  for (i = 0; builtins[i].name; i++) {
451  s = install(builtins[i].name, BLTIN, 0.0, &symlist);
452  s->u.ptr = builtins[i].func;
453  }
454  for (i = 0; fun_bltin[i].name; i++) {
455  s = install(fun_bltin[i].name, FUN_BLTIN, 0.0, &symlist);
456  s->u.u_proc->defn.pf = fun_bltin[i].fun_blt;
457  s->u.u_proc->nauto = 0;
458  s->u.u_proc->nobjauto = 0;
459  }
460  for (i = 0; strfun_bltin[i].name; i++) {
461  s = install(strfun_bltin[i].name, FUN_BLTIN, 0.0, &symlist);
462  s->type = STRINGFUNC;
463  s->u.u_proc->defn.pf = strfun_bltin[i].strfun_blt;
464  s->u.u_proc->nauto = 0;
465  s->u.u_proc->nobjauto = 0;
466  }
467  for (i = 0; objfun_bltin[i].name; i++) {
468  s = install(objfun_bltin[i].name, FUN_BLTIN, 0.0, &symlist);
469  s->type = OBJECTFUNC;
470  s->u.u_proc->defn.pf = objfun_bltin[i].objfun_blt;
471  s->u.u_proc->nauto = 0;
472  }
473  /* hoc_ac_ is a way to evaluate an expression using the interpreter */
474  hoc_install_var("hoc_ac_", &hoc_ac_);
475  hoc_install_var("float_epsilon", &hoc_epsilon);
476  hoc_install_var("hoc_cross_x_", &hoc_cross_x_);
477  hoc_install_var("hoc_cross_y_", &hoc_cross_y_);
478  hoc_install_var("default_dll_loaded_", &hoc_default_dll_loaded_);
479 
480  s = install("xopen_broadcast_", UNDEF, 0.0, &hoc_symlist);
481  s->type = VAR;
482  s->subtype = USERINT;
484 
485  /* initialize pointers ( why doesn't Vax do this?) */
486  hoc_access = (int*) 0;
487  spinit();
488 #if OOP
491  symlist = (Symlist*) 0;
492  /* start symlist and top level the same list */
494  symlist->first = symlist->last = (Symbol*) 0;
496 #endif
497 }
498 
499 void hoc_unix_mac_pc(void) {
500  hoc_ret();
501 #if defined(DARWIN)
502  hoc_pushx(4.);
503 #else
504 #if MAC
505  hoc_pushx(2.);
506 #else
507 #if defined(WIN32)
508  hoc_pushx(3.);
509 #else
510  hoc_pushx(1.);
511 #endif
512 #endif
513 #endif
514 }
515 void hoc_show_winio(void) {
516  int b;
517  b = (int) chkarg(1, 0., 1.);
518 #if MAC
519  hoc_sioux_show(b);
520 #endif
521 #if defined(WIN32)
522  hoc_winio_show(b);
523 #endif
524  hoc_ret();
525  hoc_pushx(0.);
526 }
527 
529 
530 void hoc_nrnversion(void) {
531  extern char* nrn_version(int);
532  char** p = hoc_temp_charptr();
533  int i;
534  i = 1;
535  if (ifarg(1)) {
536  i = (int) chkarg(1, 0., 20.);
537  }
538  hoc_ret();
539  *p = nrn_version(i);
540  hoc_pushstr(p);
541 }
542 
543 void hoc_Execerror(void) {
544  char* c2 = (char*) 0;
545  if (ifarg(2)) {
546  c2 = gargstr(2);
547  }
548  if (ifarg(1)) {
549  hoc_execerror(gargstr(1), c2);
550  } else {
551  hoc_execerror_mes(c2, c2, 0);
552  }
553  /* never get here */
554 }
void hoc_Saveaudit(void)
Definition: audit.cpp:152
void hoc_Retrieveaudit(void)
Definition: audit.cpp:193
void hoc_secname(void)
Definition: cabcode.cpp:2273
#define symlist
Definition: cabcode.cpp:17
void hoc_pointer(void)
Definition: code2.cpp:720
void hoc_Symbol_limits(void)
Definition: code2.cpp:75
void hoc_Strcmp(void)
Definition: code2.cpp:232
void hoc_sscanf(void)
Definition: code2.cpp:242
void hoc_neuronhome(void)
Definition: code2.cpp:208
void hoc_name_declared(void)
Definition: code2.cpp:743
void hoc_Symbol_units(void)
Definition: code2.cpp:146
void hoc_init_space(void)
Definition: code.cpp:359
void hoc_Numarg(void)
Definition: code.cpp:1538
void hoc_Argtype(void)
Definition: code.cpp:1550
#define FORALL(state, dstate)
Definition: deriv.cpp:288
double chkarg(int, double low, double high)
Definition: code2.cpp:638
int * hoc_access
Definition: nonlin.cpp:13
void hoc_load_template(void)
Definition: fileio.cpp:608
void hoc_Sprint(void)
Definition: fileio.cpp:327
void hoc_load_file(void)
Definition: fileio.cpp:614
void hoc_getcwd(void)
Definition: fileio.cpp:791
void hoc_load_func(void)
Definition: fileio.cpp:603
void hoc_machine_name(void)
Definition: fileio.cpp:819
void hoc_load_proc(void)
Definition: fileio.cpp:598
void hoc_Getstr(void)
Definition: fileio.cpp:396
void hoc_stdout(void)
Definition: fileio.cpp:40
void hoc_Chdir(void)
Definition: fileio.cpp:836
void hoc_fmenu(void)
Definition: fmenu.cpp:219
void hoc_execerror(const char *, const char *)
Definition: hoc.cpp:754
void hoc_startsw(void)
Definition: ftime.cpp:35
void hoc_stopsw(void)
Definition: ftime.cpp:39
void hoc_pushstr(char **d)
Definition: code.cpp:680
void hoc_class_registration(void)
Definition: classreg.cpp:27
void hoc_init(void)
Definition: hoc_init.cpp:411
void hoc_ret()
char ** hoc_temp_charptr(void)
Definition: code.cpp:642
Symbol * hoc_install_var(const char *, double *)
Definition: symbol.cpp:138
double hoc_ac_
Definition: hoc_init.cpp:397
void hoc_execerror_mes(const char *s, const char *t, int prnt)
Definition: hoc.cpp:702
int _nrnunit_use_legacy_
Definition: hoc_init.cpp:409
double hoc_epsilon
Definition: hoc_init.cpp:396
void nrn_feenableexcept()
Definition: hoc.cpp:81
void hoc_coredump_on_error(void)
Definition: hoc.cpp:774
void hoc_quit(void)
Definition: hoc.cpp:1162
void hoc_show_errmess_always(void)
Definition: hoc.cpp:672
void hoc_show_winio(void)
Definition: hoc_init.cpp:515
static struct @31 consts[]
double(* func)(double)
Definition: hoc_init.cpp:164
void hoc_unix_mac_pc(void)
Definition: hoc_init.cpp:499
int use_mcell_ran4_
Definition: hoc_init.cpp:407
void(* strfun_blt)(void)
Definition: hoc_init.cpp:377
double cval
Definition: hoc_init.cpp:133
static struct @34 fun_bltin[]
void hoc_nrnmpi_init()
Definition: ivocmain.cpp:368
char * nrn_mech_dll
Definition: hoc_init.cpp:405
double * hoc_varpointer
Definition: hoc_init.cpp:398
char * name
Definition: hoc_init.cpp:41
static struct @33 builtins[]
void(* objfun_blt)(void)
Definition: hoc_init.cpp:393
static struct @32 uconsts[]
int nrn_main_launch
Definition: hoc_init.cpp:528
void hoc_nrnversion(void)
Definition: hoc_init.cpp:530
static struct @36 objfun_bltin[]
void hoc_Execerror(void)
Definition: hoc_init.cpp:543
int nrn_xopen_broadcast_
Definition: hoc_init.cpp:408
double hoc_cross_x_
Definition: hoc_init.cpp:401
void(* fun_blt)(void)
Definition: hoc_init.cpp:179
static struct @35 strfun_bltin[]
double hoc_default_dll_loaded_
Definition: hoc_init.cpp:402
double hoc_cross_y_
Definition: hoc_init.cpp:401
char * neuron_home
Definition: hoc_init.cpp:404
int kval
Definition: hoc_init.cpp:42
static struct @30 keywords[]
int nrn_noauto_dlopen_nrnmech
Definition: hoc_init.cpp:406
void hoc_allobjects(void)
Definition: hoc_oop.cpp:1941
void hoc_allobjectvars(void)
Definition: hoc_oop.cpp:2001
void hoc_install_hoc_obj(void)
Definition: hoc_oop.cpp:44
void hoc_exec_cmd(void)
Definition: hoc_oop.cpp:356
void hoc_object_id(void)
Definition: hoc_oop.cpp:947
void hoc_object_push(void)
Definition: hoc_oop.cpp:243
void hoc_object_pushed(void)
Definition: hoc_oop.cpp:265
void hoc_object_pop(void)
Definition: hoc_oop.cpp:273
#define USERDOUBLE
Definition: hocdec.h:93
#define gargstr
Definition: hocdec.h:14
#define DYNAMICUNITS
Definition: hocdec.h:103
#define USERINT
Definition: hocdec.h:92
void
Symlist * hoc_top_level_symlist
Definition: code2.cpp:690
Symlist * hoc_built_in_symlist
Definition: ivocmac.cpp:76
void hoc_execute1()
Definition: ocjump.cpp:39
void nrniv_bind_thread(void)
Definition: ivoc.cpp:126
void hoc_nrn_load_dll()
Definition: ivocmac.cpp:160
Symlist * hoc_symlist
char * nrn_version(int)
Definition: nrnversion.cpp:27
int ifarg(int)
Definition: code.cpp:1581
void hoc_single_event_run()
Definition: ivocmain.cpp:876
void hoc_pushx(double)
hoc_settext()
Definition: macprt.cpp:164
hoc_Setcolor()
Definition: macprt.cpp:155
hoc_Lw()
Definition: macprt.cpp:160
hoc_Plt()
Definition: macprt.cpp:150
char * getenv(const char *s)
Definition: macprt.cpp:67
#define NEW(type)
Definition: matrix.h:136
void hoc_mcran4init()
Definition: mcran4.cpp:89
void hoc_usemcran4()
Definition: mcran4.cpp:98
void hoc_mcran4()
Definition: mcran4.cpp:78
#define i
Definition: md1redef.h:12
#define IGNORE(arg)
Definition: model.h:247
tanh
Definition: extdef.h:4
atan
Definition: extdef.h:4
sin
Definition: extdef.h:3
cos
Definition: extdef.h:3
fabs
Definition: extdef.h:3
erf
Definition: extdef.h:7
char * emalloc(unsigned n)
Definition: list.cpp:166
#define DEBUG
Definition: list.cpp:36
void hoc_Prmat(void)
Definition: nonlin.cpp:261
size_t p
#define _gasconstant_codata2018
#define _faraday_codata2018
#define _avogadro_number_codata2018
void hoc_regraph(void)
Definition: axis.cpp:189
void hoc_Plot(void)
Definition: axis.cpp:225
void hoc_ploty(void)
Definition: axis.cpp:301
void hoc_Graphmode(void)
Definition: axis.cpp:539
void hoc_axis(void)
Definition: axis.cpp:309
void hoc_Graph(void)
Definition: axis.cpp:501
void hoc_plotx(void)
Definition: axis.cpp:296
double Sqrt(double x)
Definition: math.cpp:71
double Log10(double x)
Definition: math.cpp:39
double hoc1_Exp(double x)
Definition: math.cpp:61
double integer(double x)
Definition: math.cpp:79
double Log(double x)
Definition: math.cpp:35
void hoc_atan2(void)
Definition: math.cpp:28
void hoc_eqinit(void)
void hoc_PRintf(void)
void hoc_Xred(void)
void hoc_solve(void)
void hoc_Fscan(void)
void hoc_xopen(void)
void hoc_wopen(void)
void hoc_ropen(void)
void hoc_Sred(void)
Definition: xred.cpp:104
void hoc_mallinfo(void)
Definition: symbol.cpp:450
void hoc_symbols(void)
void hoc_System(void)
void hoc_Fprint(void)
void hoc_continue_dialog()
Definition: ocnoiv1.cpp:123
void hoc_notify_iv()
Definition: ocnoiv1.cpp:22
void hoc_xpanel()
Definition: ocnoiv1.cpp:76
void hoc_xvalue()
Definition: ocnoiv1.cpp:69
void hoc_xbutton()
Definition: ocnoiv1.cpp:41
void hoc_xfixedvalue()
Definition: ocnoiv1.cpp:90
void hoc_save_session()
Definition: ocnoiv1.cpp:157
void hoc_xlabel()
Definition: ocnoiv1.cpp:34
void hoc_xstatebutton()
Definition: ocnoiv1.cpp:55
void hoc_xmenu()
Definition: ocnoiv1.cpp:62
void ivoc_style()
Definition: ocnoiv1.cpp:171
void hoc_xpvalue()
Definition: ocnoiv1.cpp:27
void hoc_xvarlabel()
Definition: ocnoiv1.cpp:97
void hoc_xslider()
Definition: ocnoiv1.cpp:104
void hoc_boolean_dialog()
Definition: ocnoiv1.cpp:111
void hoc_print_session()
Definition: ocnoiv1.cpp:164
void hoc_checkpoint()
Definition: ocnoiv1.cpp:142
void hoc_xradiobutton()
Definition: ocnoiv1.cpp:83
void hoc_xcheckbox()
Definition: ocnoiv1.cpp:48
void hoc_pwman_place()
Definition: ocnoiv1.cpp:150
void hoc_string_dialog()
Definition: ocnoiv1.cpp:130
#define install
Definition: redef.h:82
void spinit(SPTREE< SPBLK > *q)
Definition: sptree.h:136
int nauto
Definition: hocdec.h:80
Inst defn
Definition: hocdec.h:76
int nobjauto
Definition: hocdec.h:81
Definition: model.h:57
Proc * u_proc
Definition: hocdec.h:145
short type
Definition: model.h:58
double(* ptr)(double)
Definition: hocdec.h:144
int * pvalint
Definition: hocdec.h:141
long subtype
Definition: model.h:59
union Symbol::@18 u
double * pval
Definition: hocdec.h:137
Definition: hocdec.h:84
Pfrv pf
Definition: hocdec.h:52