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 *, double(*)(Point_process*), int, Point_process*, int, double);
28 extern void _nrn_watch_allocate(Datum *, double(*)(Point_process*), int, Point_process*, double nrflag);
29 extern void hoc_reg_ba(int, nrn_bamech_t, int);
30 extern int nrn_pointing(double *);
31 
32 extern void nrn_pushsec(Section*);
33 extern void nrn_popsec(void);
34 extern Section* chk_access(void);
35 
36 extern Node* node_exact(Section*, double);
37 
38 #if defined(__cplusplus)
39 }
40 #endif
41 
42 extern int state_discon_allowed_;
43 extern int section_object_seen;
44 
45 extern int nrn_isecstack(void);
46 extern void nrn_secstack(int);
47 extern void new_sections(Object* ob, Symbol* sym, hoc_Item** pitm, int size);
48 extern void cable_prop_assign(Symbol* sym, double* pd, int op);
49 extern void nrn_parent_info(Section* s);
50 extern void nrn_relocate_old_points(Section* oldsec, Node* oldnode, Section* sec, Node* node);
51 extern int nrn_at_beginning(Section* sec);
52 extern void nrn_node_destruct1(Node*);
53 extern void mech_insert1(Section*, int);
54 extern void extcell_2d_alloc(Section* sec);
55 extern int nrn_is_ion(int);
56 extern void single_prop_free(Prop*);
57 extern void prop_free(Prop**);
58 extern int can_change_morph(Section*);
59 extern void nrn_area_ri(Section* sec);
60 extern void nrn_diam_change(Section*);
61 extern void sec_free(hoc_Item*);
62 extern int node_index(Section* sec, double x);
63 extern void extcell_node_create(Node*);
64 extern void extnode_free_elements(Extnode*);
65 extern const char* sec_and_position(Section* sec, Node* nd);
66 extern void section_order(void);
67 extern Section* nrn_sec_pop(void);
68 extern Node* node_ptr(Section* sec, double x, double* parea);
69 extern double* nrn_vext_pd(Symbol* s, int indx, Node* nd);
70 extern double* nrnpy_dprop(Symbol* s, int indx, Section* sec, short inode, int* err);
71 extern void nrn_disconnect(Section*);
72 extern void mech_uninsert1(Section* sec, Symbol* s);
73 extern Object* nrn_sec2cell(Section*);
74 extern int nrn_sec2cell_equals(Section*, Object*);
75 extern double* dprop(Symbol* s, int indx, Section* sec, short inode);
76 extern void nrn_initcode();
77 extern int segment_limits(double*);
78 extern void second_order_cur(NrnThread*);
79 extern void hoc_register_dparam_size(int, int);
80 extern void setup_topology(void);
81 extern int nrn_errno_check(int);
82 extern void long_difus_solve(int method, NrnThread* nt);
83 extern void nrn_fihexec(int);
84 extern int special_pnt_call(Object*, Symbol*, int);
85 extern void ob_sec_access_push(hoc_Item*);
86 extern void nrn_mk_prop_pools(int);
87 extern void SectionList_reg(void);
88 extern void SectionRef_reg(void);
89 
90 extern void hoc_symbol_tolerance(Symbol*, double);
91 extern void node_destruct(Node**, int);
92 extern void nrn_sec_ref(Section**, Section*);
93 extern void hoc_level_pushsec(Section*);
94 extern double nrn_ra(Section*);
95 extern int node_index_exact(Section*, double);
96 extern void nrn_cachevec(int);
97 extern void nrn_ba(NrnThread*, int);
98 extern void nrniv_recalc_ptrs(void);
99 extern void nrn_recalc_ptrvector(void);
100 extern void nrn_recalc_ptrs(double*(*r)(double*));
101 extern void nrn_rhs_ext(NrnThread*);
102 extern void nrn_setup_ext(NrnThread*);
103 extern void nrn_cap_jacob(NrnThread*, Memb_list*);
104 extern void clear_point_process_struct(Prop* p);
105 extern void ext_con_coef(void);
106 extern void nrn_multisplit_ptr_update(void);
107 extern void nrn_cache_prop_realloc();
108 extern void nrn_use_daspk(int);
109 extern void nrn_update_ps2nt(void);
110 
111 
112 extern void activstim_rhs(void);
113 extern void activclamp_rhs(void);
114 extern void activclamp_lhs(void);
115 extern void activsynapse_rhs(void);
116 extern void activsynapse_lhs(void);
117 extern void stim_prepare(void);
118 extern void clamp_prepare(void);
119 extern void synapse_prepare(void);
120 
121 extern void v_setup_vectors(void);
122 extern void section_ref(Section*);
123 extern void section_unref(Section*);
124 extern const char* secname(Section*);
125 extern const char* nrn_sec2pysecname(Section*);
126 extern void nrn_rangeconst(Section*, Symbol*, double* value, int op);
127 extern int nrn_exists(Symbol*, Node*);
128 extern double* nrn_rangepointer(Section*, Symbol*, double x);
129 extern double* cable_prop_eval_pointer(Symbol*); // section on stack will be popped
130 extern char* hoc_section_pathname(Section*);
131 extern double nrn_arc_position(Section*, Node*);
132 extern double node_dist(Section*, Node*); // distance of node to parent position
133 extern double nrn_section_orientation(Section*);
134 extern double nrn_connection_position(Section*);
135 extern Section* nrn_trueparent(Section*);
136 extern double topol_distance(Section*, Node*, Section*, Node*, Section**, Node**);
137 extern int arc0at0(Section*);
138 extern void nrn_clear_mark(void);
139 extern short nrn_increment_mark(Section*);
140 extern short nrn_value_mark(Section*);
141 extern int is_point_process(Object*);
142 extern int nrn_vartype(Symbol*); // nrnocCONST, DEP, STATE
143 extern void recalc_diam(void);
144 extern Prop* nrn_mechanism_check(int type, Section* sec, int inode);
145 extern int nrn_use_fast_imem;
146 extern void nrn_fast_imem_alloc();
147 extern void nrn_calc_fast_imem(NrnThread*);
148 extern Section* nrn_secarg(int iarg);
149 extern void nrn_seg_or_x_arg(int iarg, Section** psec, double* px);
150 extern void nrn_seg_or_x_arg2(int iarg, Section** psec, double* px);
151 extern Section* nrnpy_pysecname2sec(const char*);
152 extern const char* nrnpy_sec2pysecname(Section* sec);
153 extern void nrnpy_pysecname2sec_add(Section* sec);
155 extern void nrn_verify_ion_charge_defined();
156 
157 extern void nrn_pt3dclear(Section*, int);
158 extern void nrn_length_change(Section*, double);
159 extern void stor_pt3d(Section*, double x, double y, double z, double d);
160 extern int nrn_netrec_state_adjust;
161 extern int nrn_sparse_partrans;
162 
163 #endif
void hoc_register_dparam_size(int, int)
void _nrn_free_fornetcon(void **)
Definition: netcvode.cpp:4108
void nrn_diam_change(Section *)
Definition: treeset.cpp:1201
void setup_topology(void)
Definition: cabcode.cpp:1736
short type
Definition: cabvars.h:10
Node * node_ptr(Section *sec, double x, double *parea)
Definition: cabcode.cpp:2003
void _nrn_watch_activate(Datum *, double(*)(Point_process *), int, Point_process *, int, double)
Definition: netcvode.cpp:2431
void _nrn_free_watch(Datum *, int, int)
Called by Point_process destructor in translated mod file.
Definition: netcvode.cpp:2550
void nrn_popsec(void)
Definition: cabcode.cpp:122
void clear_point_process_struct(Prop *p)
Definition: point.cpp:376
void recalc_diam(void)
Definition: treeset.cpp:940
int nrn_vartype(Symbol *)
Definition: eion.cpp:488
void nrn_multisplit_ptr_update(void)
const char * sec_and_position(Section *sec, Node *nd)
Definition: cabcode.cpp:1922
void nrn_use_daspk(int)
Definition: netcvode.cpp:309
int arc0at0(Section *)
Definition: cabcode.cpp:387
void activclamp_rhs(void)
Definition: clamp.cpp:162
int segment_limits(double *)
Definition: cabcode.cpp:1934
double node_dist(Section *, Node *)
Definition: solve.cpp:151
void long_difus_solve(int method, NrnThread *nt)
Definition: ldifus.cpp:98
void oc_restore_cabcode(int *a1, int *a2)
Definition: cabcode.cpp:88
void nrn_cachevec(int)
Definition: treeset.cpp:2108
size_t p
Represent main neuron object computed by single thread.
Definition: multicore.h:58
void nrn_calc_fast_imem(NrnThread *)
Definition: fadvance.cpp:623
void nrn_disconnect(Section *)
Definition: cabcode.cpp:584
double * cable_prop_eval_pointer(Symbol *)
Definition: cabcode.cpp:1538
void ob_sec_access_push(hoc_Item *)
void nrn_secstack(int)
Definition: cabcode.cpp:58
void extcell_2d_alloc(Section *sec)
Definition: extcelln.cpp:343
void nrn_rangeconst(Section *, Symbol *, double *value, int op)
Definition: cabcode.cpp:956
Section * chk_access(void)
Definition: cabcode.cpp:437
Section * nrnpy_pysecname2sec(const char *)
nd
Definition: treeset.cpp:893
int special_pnt_call(Object *, Symbol *, int)
Definition: hocmech.cpp:96
static int narg()
Definition: ivocvect.cpp:135
void hoc_level_pushsec(Section *)
Definition: cabcode.cpp:2375
int nrn_exists(Symbol *, Node *)
Definition: cabcode.cpp:1317
double * nrn_rangepointer(Section *, Symbol *, double x)
Definition: cabcode.cpp:1334
void mech_insert1(Section *, int)
Definition: cabcode.cpp:845
short nrn_value_mark(Section *)
Definition: solve.cpp:457
inode
Definition: multicore.cpp:985
double nrn_arc_position(Section *, Node *)
Definition: cabcode.cpp:1880
void hoc_register_units(int, HocParmUnits *)
Definition: init.cpp:913
void nrn_initcode()
Definition: cabcode.cpp:72
void nrn_recalc_ptrvector(void)
Definition: cachevec.cpp:98
void hoc_register_tolerance(int, HocStateTolerance *, Symbol ***)
Definition: init.cpp:969
void nrn_recalc_ptrs(double *(*r)(double *))
Definition: treeset.cpp:2178
Prop * nrn_mechanism_check(int type, Section *sec, int inode)
Definition: cabcode.cpp:1092
double * nrn_vext_pd(Symbol *s, int indx, Node *nd)
Definition: cabcode.cpp:2044
void nrniv_recalc_ptrs(void)
Definition: cachevec.cpp:35
void mech_uninsert1(Section *sec, Symbol *s)
Definition: cabcode.cpp:913
void stor_pt3d(Section *, double x, double y, double z, double d)
Definition: treeset.cpp:1352
void hoc_register_dparam_semantics(int, int, const char *)
Definition: init.cpp:732
void nrn_sec_ref(Section **, Section *)
Definition: solve.cpp:569
double * dprop(Symbol *s, int indx, Section *sec, short inode)
Definition: cabcode.cpp:2073
void single_prop_free(Prop *)
Definition: treeset.cpp:736
_CONST char * s
Definition: system.cpp:74
void(* nrn_bamech_t)(Node *, double *, Datum *, Datum *, struct NrnThread *)
Definition: membfunc.h:24
double nrn_call_mech_func(Symbol *, int narg, Prop *, int type)
Definition: init.cpp:1060
static int indx
Definition: deriv.cpp:240
void sec_free(hoc_Item *)
Definition: solve.cpp:508
void nrn_mk_prop_pools(int)
Definition: cxprop.cpp:255
void nrn_cache_prop_realloc()
Definition: cxprop.cpp:572
void nrn_update_ps2nt(void)
Definition: netcvode.cpp:4850
void v_setup_vectors(void)
Definition: treeset.cpp:1623
short nrn_increment_mark(Section *)
Definition: solve.cpp:456
void nrn_pushsec(Section *)
Definition: cabcode.cpp:97
int nrn_errno_check(int)
Definition: fadvance.cpp:784
void nrn_fihexec(int)
Definition: finithnd.cpp:36
void nrn_node_destruct1(Node *)
Definition: solve.cpp:629
void activclamp_lhs(void)
Definition: clamp.cpp:180
void section_order(void)
Definition: solve.cpp:835
void nrn_verify_ion_charge_defined()
Definition: eion.cpp:232
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:2515
double topol_distance(Section *, Node *, Section *, Node *, Section **, Node **)
Definition: solve.cpp:166
Object * nrn_sec2cell(Section *)
Definition: cabcode.cpp:224
void activsynapse_rhs(void)
Definition: synapse.cpp:204
Section * nrn_secarg(int iarg)
Definition: seclist.cpp:50
int is_point_process(Object *)
Definition: point.cpp:405
void stim_prepare(void)
Definition: fstim.cpp:151
double * nrnpy_dprop(Symbol *s, int indx, Section *sec, short inode, int *err)
Definition: cabcode.cpp:2105
void nrn_seg_or_x_arg2(int iarg, Section **psec, double *px)
Definition: point.cpp:207
void cable_prop_assign(Symbol *sym, double *pd, int op)
Definition: cabcode.cpp:1602
void SectionList_reg(void)
Definition: seclist.cpp:280
void nrn_setup_ext(NrnThread *)
Definition: extcelln.cpp:438
Definition: model.h:57
const char * nrnpy_sec2pysecname(Section *sec)
Definition: section.h:213
void extnode_free_elements(Extnode *)
Definition: extcelln.cpp:211
int nrn_isecstack(void)
Definition: cabcode.cpp:54
void node_destruct(Node **, int)
Definition: solve.cpp:661
void new_sections(Object *ob, Symbol *sym, hoc_Item **pitm, int size)
double nrn_ra(Section *)
Definition: cabcode.cpp:392
Section * nrn_sec_pop(void)
Definition: cabcode.cpp:743
void ext_con_coef(void)
Definition: extcelln.cpp:507
static uint32_t value
Definition: scoprand.cpp:26
const char * nrn_sec2pysecname(Section *)
Definition: cabcode.cpp:1821
void nrn_relocate_old_points(Section *oldsec, Node *oldnode, Section *sec, Node *node)
Definition: point.cpp:162
void section_ref(Section *)
Definition: solve.cpp:563
void synapse_prepare(void)
Definition: synapse.cpp:196
void nrn_parent_info(Section *s)
Definition: cabcode.cpp:1689
void nrn_seg_or_x_arg(int iarg, Section **psec, double *px)
Definition: point.cpp:191
int node_index(Section *sec, double x)
Definition: cabcode.cpp:1470
void nrn_cap_jacob(NrnThread *, Memb_list *)
Definition: capac.cpp:32
int nrn_sparse_partrans
Definition: init.cpp:125
void prop_free(Prop **)
Definition: treeset.cpp:724
void activstim_rhs(void)
Definition: fstim.cpp:159
const char * secname(Section *)
Definition: cabcode.cpp:1787
Definition: hocdec.h:226
void extcell_node_create(Node *)
Definition: extcelln.cpp:303
int nrn_pointing(double *)
Definition: init.cpp:880
void add_nrn_fornetcons(int, int)
Definition: init.cpp:222
sec
Definition: solve.cpp:885
int nrn_sec2cell_equals(Section *, Object *)
Definition: cabcode.cpp:239
void hoc_reg_ba(int, nrn_bamech_t, int)
Definition: init.cpp:934
int node_index_exact(Section *, double)
Definition: cabcode.cpp:1496
void activsynapse_lhs(void)
Definition: synapse.cpp:214
void hoc_symbol_tolerance(Symbol *, double)
Definition: code2.cpp:109
int nrn_is_ion(int)
Definition: eion.cpp:45
void nrn_length_change(Section *, double)
Definition: treeset.cpp:1220
void modl_reg(void)
Needed for compilation.
Definition: inithoc.cpp:393
void nrn_pt3dclear(Section *, int)
Definition: treeset.cpp:1103
void nrnpy_pysecname2sec_add(Section *sec)
void oc_save_cabcode(int *a1, int *a2)
Definition: cabcode.cpp:82
void nrn_area_ri(Section *sec)
Definition: treeset.cpp:773
int nrn_use_fast_imem
Definition: fadvance.cpp:162
void nrn_clear_mark(void)
Definition: solve.cpp:450
void nrn_rhs_ext(NrnThread *)
Definition: extcelln.cpp:360
static Node * node(Object *)
Definition: netcvode.cpp:318
void section_unref(Section *)
Definition: solve.cpp:552
Definition: section.h:132
Definition: hocdec.h:176
void clamp_prepare(void)
Definition: clamp.cpp:144
double nrn_section_orientation(Section *)
Definition: cabcode.cpp:1651
void nrn_ba(NrnThread *, int)
Definition: fadvance.cpp:1041
Node * node_exact(Section *, double)
Definition: cabcode.cpp:1956
int can_change_morph(Section *)
Definition: treeset.cpp:1245
int nrn_netrec_state_adjust
Definition: init.cpp:124
int nrn_at_beginning(Section *sec)
Definition: cabcode.cpp:1656
void hoc_register_limits(int, HocParmLimits *)
Definition: init.cpp:892
void second_order_cur(NrnThread *)
Definition: eion.cpp:622
Section * nrn_trueparent(Section *)
Definition: cabcode.cpp:1676
void SectionRef_reg(void)
Definition: secref.cpp:365
double nrn_connection_position(Section *)
Definition: cabcode.cpp:1645
int section_object_seen
char * hoc_section_pathname(Section *)
Definition: cabcode.cpp:1846
void nrnpy_pysecname2sec_remove(Section *sec)
void nrn_fast_imem_alloc()
Definition: multicore.cpp:614
int state_discon_allowed_
Definition: init.cpp:121
Prop * nrn_mechanism(int type, Node *)
Definition: cabcode.cpp:1079