NEURON
nrn_ansi.h
Go to the documentation of this file.
1 #ifndef nrn_ansi_h
2 #define nrn_ansi_h
3 
4 #if defined(__cplusplus)
5 extern "C" {
6 #endif
7 
8 // nocpout.cpp
9 extern void hoc_register_limits(int, HocParmLimits*);
10 extern void hoc_register_units(int, HocParmUnits*);
11 extern void hoc_register_dparam_semantics(int, int, const char*);
12 extern void add_nrn_fornetcons(int, int);
13 extern void hoc_register_tolerance(int, HocStateTolerance*, Symbol***);
14 
15 extern void oc_save_cabcode(int* a1, int* a2);
16 extern void oc_restore_cabcode(int* a1, int* a2);
17 
18 extern void modl_reg(void);
19 
20 // nrnmech stuff
21 extern void _nrn_free_fornetcon(void**);
22 extern double nrn_call_mech_func(Symbol*, int narg, Prop*, int type);
23 extern Prop* nrn_mechanism(int type, Node*);
24 
25 // mod stuff
26 extern void _nrn_free_watch(Datum*, int, int);
27 extern void _nrn_watch_activate(Datum*,
28  double (*)(Point_process*),
29  int,
31  int,
32  double);
33 extern void _nrn_watch_allocate(Datum*,
34  double (*)(Point_process*),
35  int,
37  double nrflag);
38 extern void hoc_reg_ba(int, nrn_bamech_t, int);
39 extern int nrn_pointing(double*);
40 
41 extern void nrn_pushsec(Section*);
42 extern void nrn_popsec(void);
43 extern Section* chk_access(void);
44 
45 extern Node* node_exact(Section*, double);
46 
47 #if defined(__cplusplus)
48 }
49 #endif
50 
51 extern int state_discon_allowed_;
52 extern int section_object_seen;
53 
54 extern int nrn_isecstack(void);
55 extern void nrn_secstack(int);
56 extern void new_sections(Object* ob, Symbol* sym, hoc_Item** pitm, int size);
57 extern void cable_prop_assign(Symbol* sym, double* pd, int op);
58 extern void nrn_parent_info(Section* s);
59 extern void nrn_relocate_old_points(Section* oldsec, Node* oldnode, Section* sec, Node* node);
60 extern int nrn_at_beginning(Section* sec);
61 extern void nrn_node_destruct1(Node*);
62 extern void mech_insert1(Section*, int);
63 extern void extcell_2d_alloc(Section* sec);
64 extern int nrn_is_ion(int);
65 extern void single_prop_free(Prop*);
66 extern void prop_free(Prop**);
67 extern int can_change_morph(Section*);
68 extern void nrn_area_ri(Section* sec);
69 extern void nrn_diam_change(Section*);
70 extern void sec_free(hoc_Item*);
71 extern int node_index(Section* sec, double x);
72 extern void extcell_node_create(Node*);
73 extern void extnode_free_elements(Extnode*);
74 extern const char* sec_and_position(Section* sec, Node* nd);
75 extern void section_order(void);
76 extern Section* nrn_sec_pop(void);
77 extern Node* node_ptr(Section* sec, double x, double* parea);
78 extern double* nrn_vext_pd(Symbol* s, int indx, Node* nd);
79 extern double* nrnpy_dprop(Symbol* s, int indx, Section* sec, short inode, int* err);
80 extern void nrn_disconnect(Section*);
81 extern void mech_uninsert1(Section* sec, Symbol* s);
82 extern Object* nrn_sec2cell(Section*);
83 extern int nrn_sec2cell_equals(Section*, Object*);
84 extern double* dprop(Symbol* s, int indx, Section* sec, short inode);
85 extern void nrn_initcode();
86 extern int segment_limits(double*);
87 extern void second_order_cur(NrnThread*);
88 extern void hoc_register_dparam_size(int, int);
89 extern void setup_topology(void);
90 extern int nrn_errno_check(int);
91 extern void long_difus_solve(int method, NrnThread* nt);
92 extern void nrn_fihexec(int);
93 extern int special_pnt_call(Object*, Symbol*, int);
95 extern void nrn_mk_prop_pools(int);
96 extern void SectionList_reg(void);
97 extern void SectionRef_reg(void);
98 
99 extern void hoc_symbol_tolerance(Symbol*, double);
100 extern void node_destruct(Node**, int);
101 extern void nrn_sec_ref(Section**, Section*);
102 extern void hoc_level_pushsec(Section*);
103 extern double nrn_ra(Section*);
104 extern int node_index_exact(Section*, double);
105 extern void nrn_cachevec(int);
106 extern void nrn_ba(NrnThread*, int);
107 extern void nrniv_recalc_ptrs(void);
108 extern void nrn_recalc_ptrvector(void);
109 extern void nrn_recalc_ptrs(double* (*r)(double*) );
110 extern void nrn_rhs_ext(NrnThread*);
111 extern void nrn_setup_ext(NrnThread*);
112 extern void nrn_cap_jacob(NrnThread*, Memb_list*);
113 extern void clear_point_process_struct(Prop* p);
114 extern void ext_con_coef(void);
115 extern void nrn_multisplit_ptr_update(void);
116 extern void nrn_cache_prop_realloc();
117 extern void nrn_use_daspk(int);
118 extern void nrn_update_ps2nt(void);
119 
120 
121 extern void activstim_rhs(void);
122 extern void activclamp_rhs(void);
123 extern void activclamp_lhs(void);
124 extern void activsynapse_rhs(void);
125 extern void activsynapse_lhs(void);
126 extern void stim_prepare(void);
127 extern void clamp_prepare(void);
128 extern void synapse_prepare(void);
129 
130 extern void v_setup_vectors(void);
131 extern void section_ref(Section*);
132 extern void section_unref(Section*);
133 extern const char* secname(Section*);
134 extern const char* nrn_sec2pysecname(Section*);
135 extern void nrn_rangeconst(Section*, Symbol*, double* value, int op);
136 extern int nrn_exists(Symbol*, Node*);
137 extern double* nrn_rangepointer(Section*, Symbol*, double x);
138 extern double* cable_prop_eval_pointer(Symbol*); // section on stack will be popped
139 extern char* hoc_section_pathname(Section*);
140 extern double nrn_arc_position(Section*, Node*);
141 extern double node_dist(Section*, Node*); // distance of node to parent position
142 extern double nrn_section_orientation(Section*);
143 extern double nrn_connection_position(Section*);
144 extern Section* nrn_trueparent(Section*);
145 extern double topol_distance(Section*, Node*, Section*, Node*, Section**, Node**);
146 extern int arc0at0(Section*);
147 extern void nrn_clear_mark(void);
148 extern short nrn_increment_mark(Section*);
149 extern short nrn_value_mark(Section*);
150 extern int is_point_process(Object*);
151 extern int nrn_vartype(Symbol*); // nrnocCONST, DEP, STATE
152 extern void recalc_diam(void);
153 extern Prop* nrn_mechanism_check(int type, Section* sec, int inode);
154 extern int nrn_use_fast_imem;
155 extern void nrn_fast_imem_alloc();
156 extern void nrn_calc_fast_imem(NrnThread*);
157 extern Section* nrn_secarg(int iarg);
158 extern void nrn_seg_or_x_arg(int iarg, Section** psec, double* px);
159 extern void nrn_seg_or_x_arg2(int iarg, Section** psec, double* px);
160 extern Section* nrnpy_pysecname2sec(const char*);
161 extern const char* nrnpy_sec2pysecname(Section* sec);
162 extern void nrnpy_pysecname2sec_add(Section* sec);
164 extern void nrn_verify_ion_charge_defined();
165 
166 extern void nrn_pt3dclear(Section*, int);
167 extern void nrn_length_change(Section*, double);
168 extern void stor_pt3d(Section*, double x, double y, double z, double d);
169 extern int nrn_netrec_state_adjust;
170 extern int nrn_sparse_partrans;
171 
172 #endif
short type
Definition: cabvars.h:9
static int indx
Definition: deriv.cpp:294
static int narg()
Definition: ivocvect.cpp:150
#define sec
Definition: md1redef.h:13
void(* nrn_bamech_t)(Node *, double *, Datum *, Datum *, struct NrnThread *)
Definition: membfunc.h:24
static Node * node(Object *)
Definition: netcvode.cpp:340
void SectionRef_reg(void)
Definition: secref.cpp:376
double nrn_arc_position(Section *, Node *)
Definition: cabcode.cpp:1867
int is_point_process(Object *)
Definition: point.cpp:396
double nrn_call_mech_func(Symbol *, int narg, Prop *, int type)
Definition: init.cpp:1049
void activclamp_lhs(void)
Definition: clamp.cpp:190
void activsynapse_rhs(void)
Definition: synapse.cpp:208
void extnode_free_elements(Extnode *)
Definition: extcelln.cpp:214
double * nrn_rangepointer(Section *, Symbol *, double x)
Definition: cabcode.cpp:1335
void nrn_clear_mark(void)
Definition: solve.cpp:459
void nrn_rhs_ext(NrnThread *)
Definition: extcelln.cpp:364
void nrn_pt3dclear(Section *, int)
Definition: treeset.cpp:1117
void nrn_cache_prop_realloc()
Definition: cxprop.cpp:633
int nrn_pointing(double *)
Definition: init.cpp:862
Node * node_exact(Section *, double)
Definition: cabcode.cpp:1940
void oc_save_cabcode(int *a1, int *a2)
Definition: cabcode.cpp:86
int nrn_vartype(Symbol *)
Definition: eion.cpp:515
void hoc_register_limits(int, HocParmLimits *)
Definition: init.cpp:874
void mech_uninsert1(Section *sec, Symbol *s)
Definition: cabcode.cpp:916
void nrn_cachevec(int)
Definition: treeset.cpp:2127
void nrn_calc_fast_imem(NrnThread *)
Definition: fadvance.cpp:653
void nrn_recalc_ptrs(double *(*r)(double *))
Definition: treeset.cpp:2203
double * nrn_vext_pd(Symbol *s, int indx, Node *nd)
Definition: cabcode.cpp:2027
void nrn_update_ps2nt(void)
Definition: netcvode.cpp:5007
void _nrn_watch_allocate(Datum *, double(*)(Point_process *), int, Point_process *, double nrflag)
Introduced so corenrn->nrn can request the mod file to make sure all WatchCondition are allocated.
Definition: netcvode.cpp:2594
void _nrn_watch_activate(Datum *, double(*)(Point_process *), int, Point_process *, int, double)
Definition: netcvode.cpp:2507
void nrn_verify_ion_charge_defined()
Definition: eion.cpp:256
void nrn_recalc_ptrvector(void)
Definition: cachevec.cpp:104
void add_nrn_fornetcons(int, int)
Definition: init.cpp:184
void long_difus_solve(int method, NrnThread *nt)
Definition: ldifus.cpp:104
void ext_con_coef(void)
Definition: extcelln.cpp:514
int nrn_is_ion(int)
Definition: eion.cpp:51
Node * node_ptr(Section *sec, double x, double *parea)
Definition: cabcode.cpp:1986
void nrn_parent_info(Section *s)
Definition: cabcode.cpp:1678
int special_pnt_call(Object *, Symbol *, int)
Definition: hocmech.cpp:96
void new_sections(Object *ob, Symbol *sym, hoc_Item **pitm, int size)
double * cable_prop_eval_pointer(Symbol *)
Definition: cabcode.cpp:1536
void hoc_level_pushsec(Section *)
Definition: cabcode.cpp:2369
void nrn_seg_or_x_arg2(int iarg, Section **psec, double *px)
Definition: point.cpp:201
void nrn_rangeconst(Section *, Symbol *, double *value, int op)
Definition: cabcode.cpp:958
char * hoc_section_pathname(Section *)
Definition: cabcode.cpp:1835
void cable_prop_assign(Symbol *sym, double *pd, int op)
Definition: cabcode.cpp:1598
void hoc_register_dparam_semantics(int, int, const char *)
Definition: init.cpp:715
short nrn_value_mark(Section *)
Definition: solve.cpp:470
void nrn_relocate_old_points(Section *oldsec, Node *oldnode, Section *sec, Node *node)
Definition: point.cpp:158
void setup_topology(void)
Definition: cabcode.cpp:1724
void nrn_area_ri(Section *sec)
Definition: treeset.cpp:779
void second_order_cur(NrnThread *)
Definition: eion.cpp:649
void clamp_prepare(void)
Definition: clamp.cpp:154
void nrn_mk_prop_pools(int)
Definition: cxprop.cpp:268
void synapse_prepare(void)
Definition: synapse.cpp:200
void activstim_rhs(void)
Definition: fstim.cpp:164
int nrn_isecstack(void)
Definition: cabcode.cpp:54
int nrn_netrec_state_adjust
Definition: init.cpp:100
void nrn_initcode()
Definition: cabcode.cpp:76
void hoc_register_units(int, HocParmUnits *)
Definition: init.cpp:891
int segment_limits(double *)
Definition: cabcode.cpp:1919
void nrn_cap_jacob(NrnThread *, Memb_list *)
Definition: capac.cpp:32
const char * nrnpy_sec2pysecname(Section *sec)
void activclamp_rhs(void)
Definition: clamp.cpp:172
void mech_insert1(Section *, int)
Definition: cabcode.cpp:849
int node_index(Section *sec, double x)
Definition: cabcode.cpp:1471
void hoc_reg_ba(int, nrn_bamech_t, int)
Definition: init.cpp:908
void stor_pt3d(Section *, double x, double y, double z, double d)
Definition: treeset.cpp:1362
double * dprop(Symbol *s, int indx, Section *sec, short inode)
Definition: cabcode.cpp:2061
void nrnpy_pysecname2sec_add(Section *sec)
int state_discon_allowed_
Definition: init.cpp:97
void section_ref(Section *)
Definition: solve.cpp:575
void stim_prepare(void)
Definition: fstim.cpp:156
double nrn_ra(Section *)
Definition: cabcode.cpp:403
void clear_point_process_struct(Prop *p)
Definition: point.cpp:367
void hoc_symbol_tolerance(Symbol *, double)
Definition: code2.cpp:109
void hoc_register_tolerance(int, HocStateTolerance *, Symbol ***)
Definition: init.cpp:961
void hoc_register_dparam_size(int, int)
int section_object_seen
void nrn_node_destruct1(Node *)
Definition: solve.cpp:638
double node_dist(Section *, Node *)
Definition: solve.cpp:155
double topol_distance(Section *, Node *, Section *, Node *, Section **, Node **)
Definition: solve.cpp:169
Section * nrn_sec_pop(void)
Definition: cabcode.cpp:751
int can_change_morph(Section *)
Definition: treeset.cpp:1258
int nrn_exists(Symbol *, Node *)
Definition: cabcode.cpp:1319
void section_unref(Section *)
Definition: solve.cpp:565
const char * secname(Section *)
Definition: cabcode.cpp:1776
void nrn_pushsec(Section *)
Definition: cabcode.cpp:99
void modl_reg(void)
Needed for compilation.
Definition: inithoc.cpp:392
Object * nrn_sec2cell(Section *)
Definition: cabcode.cpp:233
void prop_free(Prop **)
Definition: treeset.cpp:730
Section * chk_access(void)
Definition: cabcode.cpp:444
void activsynapse_lhs(void)
Definition: synapse.cpp:217
void extcell_2d_alloc(Section *sec)
Definition: extcelln.cpp:348
void section_order(void)
Definition: solve.cpp:846
void sec_free(hoc_Item *)
Definition: solve.cpp:521
void nrn_diam_change(Section *)
Definition: treeset.cpp:1215
Prop * nrn_mechanism_check(int type, Section *sec, int inode)
Definition: cabcode.cpp:1092
void nrn_seg_or_x_arg(int iarg, Section **psec, double *px)
Definition: point.cpp:185
void nrn_fast_imem_alloc()
Definition: multicore.cpp:629
void nrn_multisplit_ptr_update(void)
void nrn_use_daspk(int)
Definition: netcvode.cpp:331
void _nrn_free_watch(Datum *, int, int)
Called by Point_process destructor in translated mod file.
Definition: netcvode.cpp:2633
const char * sec_and_position(Section *sec, Node *nd)
Definition: cabcode.cpp:1908
double * nrnpy_dprop(Symbol *s, int indx, Section *sec, short inode, int *err)
Definition: cabcode.cpp:2092
void node_destruct(Node **, int)
Definition: solve.cpp:672
void nrn_length_change(Section *, double)
Definition: treeset.cpp:1235
void nrn_fihexec(int)
Definition: finithnd.cpp:33
void oc_restore_cabcode(int *a1, int *a2)
Definition: cabcode.cpp:91
void single_prop_free(Prop *)
Definition: treeset.cpp:742
void SectionList_reg(void)
Definition: seclist.cpp:265
void nrn_popsec(void)
Definition: cabcode.cpp:123
double nrn_connection_position(Section *)
Definition: cabcode.cpp:1639
void extcell_node_create(Node *)
Definition: extcelln.cpp:308
void nrniv_recalc_ptrs(void)
Definition: cachevec.cpp:35
void recalc_diam(void)
Definition: treeset.cpp:953
Section * nrn_trueparent(Section *)
Definition: cabcode.cpp:1666
int nrn_sec2cell_equals(Section *, Object *)
Definition: cabcode.cpp:248
int nrn_errno_check(int)
Definition: fadvance.cpp:837
void v_setup_vectors(void)
Definition: treeset.cpp:1631
int nrn_use_fast_imem
Definition: fadvance.cpp:167
void _nrn_free_fornetcon(void **)
Definition: netcvode.cpp:4243
void nrn_sec_ref(Section **, Section *)
Definition: solve.cpp:580
int arc0at0(Section *)
Definition: cabcode.cpp:399
const char * nrn_sec2pysecname(Section *)
Definition: cabcode.cpp:1811
Prop * nrn_mechanism(int type, Node *)
Definition: cabcode.cpp:1079
Section * nrn_secarg(int iarg)
Definition: seclist.cpp:49
double nrn_section_orientation(Section *)
Definition: cabcode.cpp:1644
void nrn_secstack(int)
Definition: cabcode.cpp:58
void nrnpy_pysecname2sec_remove(Section *sec)
int nrn_sparse_partrans
Definition: init.cpp:101
short nrn_increment_mark(Section *)
Definition: solve.cpp:467
void ob_sec_access_push(hoc_Item *)
void nrn_disconnect(Section *)
Definition: cabcode.cpp:594
void nrn_ba(NrnThread *, int)
Definition: fadvance.cpp:1104
int node_index_exact(Section *, double)
Definition: cabcode.cpp:1497
int nrn_at_beginning(Section *sec)
Definition: cabcode.cpp:1648
Section * nrnpy_pysecname2sec(const char *)
void nrn_setup_ext(NrnThread *)
Definition: extcelln.cpp:443
size_t p
static uint32_t value
Definition: scoprand.cpp:25
Definition: section.h:133
Represent main neuron object computed by single thread.
Definition: multicore.h:58
Definition: hocdec.h:227
Definition: section.h:214
Definition: model.h:57
Definition: hocdec.h:177