NEURON
nrniv_mf.h
Go to the documentation of this file.
1 #ifndef nrniv_mf_h
2 #define nrniv_mf_h
3 
4 #include "membfunc.h"
5 #include <hoc_membf.h>
6 
7 struct NrnThread;
8 typedef struct SparseObj SparseObj;
9 union Datum;
10 
11 typedef double (*ldifusfunc3_t)(int, double*, Datum*, double*, double*, Datum*, NrnThread*);
12 typedef void ldifusfunc2_t(int, ldifusfunc3_t, void**, int, int, int, NrnThread*);
14 typedef void (*pnt_receive_t)(Point_process*, double*, double);
15 typedef void (*pnt_receive_init_t)(Point_process*, double*, double);
16 
17 extern Prop* need_memb_cl(Symbol*, int*, int*);
18 extern Prop* prop_alloc(Prop**, int, Node*);
19 
20 extern double nrn_ion_charge(Symbol*);
21 #if defined(__cplusplus)
22 extern "C" {
23 #endif
26 extern double* _getelm(int, int);
27 extern double* _nrn_thread_getelm(SparseObj*, int, int);
28 extern int sparse(void**, int, int*, int*, double*, double*, double, int (*)(), double**, int);
29 extern int sparse_thread(void**,
30  int,
31  int*,
32  int*,
33  double*,
34  double*,
35  double,
36  int (*)(void*, double*, double*, Datum*, Datum*, NrnThread*),
37  int,
38  Datum*,
39  Datum*,
40  NrnThread*);
41 extern int _ss_sparse(void**, int, int*, int*, double*, double*, double, int (*)(), double**, int);
42 extern int _ss_sparse_thread(void**,
43  int,
44  int*,
45  int*,
46  double*,
47  double*,
48  double,
49  int (*)(void*, double*, double*, Datum*, Datum*, NrnThread*),
50  int,
51  void*,
52  void*,
53  void*);
54 extern int _cvode_sparse(void**, int, int*, double*, int (*)(), double**);
55 extern int _cvode_sparse_thread(void**,
56  int,
57  int*,
58  double*,
59  int (*)(void*, double*, double*, Datum*, Datum*, NrnThread*),
60  void*,
61  void*,
62  void*);
64 extern int derivimplicit(int, int, int*, int*, double*, double*, double, int (*)(), double**);
65 extern int derivimplicit_thread(int,
66  int*,
67  int*,
68  double*,
69  int (*)(double*, union Datum*, union Datum*, struct NrnThread*),
70  void*,
71  void*,
72  void*);
73 extern int _ss_derivimplicit(int, int, int*, int*, double*, double*, double, int (*)(), double**);
74 extern int _ss_derivimplicit_thread(int,
75  int*,
76  int*,
77  double*,
78  int (*)(double*, union Datum*, union Datum*, struct NrnThread*),
79  void*,
80  void*,
81  void*);
82 
83 extern int euler_thread(int,
84  int*,
85  int*,
86  double*,
87  int (*)(double*, union Datum*, union Datum*, struct NrnThread*),
88  union Datum*,
89  union Datum*,
90  struct NrnThread*);
91 
92 extern void register_mech(const char**, Pvmp, Pvmi, Pvmi, Pvmi, Pvmi, int, int);
93 extern int point_register_mech(const char**,
94  Pvmp,
95  Pvmi,
96  Pvmi,
97  Pvmi,
98  Pvmi,
99  int,
100  int,
101  void* (*) (Object*),
102  void (*)(void*),
103  Member_func*);
104 extern int nrn_get_mechtype(const char*);
105 extern void nrn_writes_conc(int, int);
106 extern void add_nrn_has_net_event(int);
108 extern void hoc_register_synonym(int, void (*)(int, double**, Datum**));
109 extern void register_destructor(Pvmp);
110 extern void ion_reg(const char*, double);
111 extern void nrn_promote(Prop*, int, int);
112 extern void add_nrn_artcell(int, int);
114 extern void nrn_check_conc_write(Prop*, Prop*, int);
115 extern void nrn_wrote_conc(Symbol*, double*, int);
116 extern void nrn_update_ion_pointer(Symbol*, Datum*, int, int);
117 
118 extern Prop* need_memb(Symbol*);
119 
120 extern void* create_point_process(int, Object*);
121 extern void destroy_point_process(void*);
122 extern double has_loc_point(void*);
123 extern double get_loc_point_process(void*);
124 extern double loc_point_process(int, void*);
125 extern Prop* nrn_point_prop_;
126 
127 extern int at_time(NrnThread*, double);
128 
129 extern void artcell_net_send(void**, double*, Point_process*, double, double);
130 extern void artcell_net_move(void**, Point_process*, double);
131 
132 extern int ifarg(int);
133 
134 extern void nrn_complain(double*);
135 
136 extern void set_seed(double);
137 extern int v_structure_change;
138 
139 // nrnmech stuff
140 extern pnt_receive_t* pnt_receive;
142 extern short* pnt_receive_size;
143 extern void nrn_net_send(void**, double*, Point_process*, double, double);
144 extern void nrn_net_event(Point_process*, double);
145 extern void nrn_net_move(void**, Point_process*, double);
146 
149 
150 #if defined(__cplusplus)
151 }
152 #endif
153 
154 #endif /* nrniv_mf_h */
void
void(* Pvmp)(Prop *)
Definition: membfunc.h:19
void(* nrn_ode_map_t)(int, double **, double **, double *, Datum *, double *, int)
Definition: membfunc.h:21
int(* nrn_ode_count_t)(int)
Definition: membfunc.h:20
void(* Pvmi)(struct NrnThread *, Memb_list *, int)
Definition: membfunc.h:18
void destroy_point_process(void *)
Definition: point.cpp:75
void add_nrn_artcell(int, int)
Definition: init.cpp:196
double(* ldifusfunc3_t)(int, double *, Datum *, double *, double *, Datum *, NrnThread *)
Definition: nrniv_mf.h:11
void nrn_update_ion_pointer(Symbol *, Datum *, int, int)
Definition: cxprop.cpp:586
void nrn_net_send(void **, double *, Point_process *, double, double)
Point_process * ob2pntproc(Object *)
Definition: hocmech.cpp:88
double loc_point_process(int, void *)
Definition: point.cpp:217
int at_time(NrnThread *, double)
Definition: cvodestb.cpp:130
double has_loc_point(void *)
Definition: point.cpp:252
void register_mech(const char **, Pvmp, Pvmi, Pvmi, Pvmi, Pvmi, int, int)
Definition: init.cpp:674
NrnWatchAllocateFunc_t * nrn_watch_allocate_
Definition: init.cpp:144
Prop * nrn_point_prop_
Definition: point.cpp:28
void * create_point_process(int, Object *)
Definition: point.cpp:32
void(* pnt_receive_t)(Point_process *, double *, double)
Definition: nrniv_mf.h:14
void ldifusfunc2_t(int, ldifusfunc3_t, void **, int, int, int, NrnThread *)
Definition: nrniv_mf.h:12
void nrn_promote(Prop *, int, int)
Definition: eion.cpp:539
short * pnt_receive_size
Definition: init.cpp:135
void nrn_complain(double *)
Definition: treeset.cpp:1891
int _nrn_destroy_sparseobj_thread(void *)
pnt_receive_init_t * pnt_receive_init
Definition: init.cpp:134
void register_destructor(Pvmp)
Definition: init.cpp:782
void set_seed(double)
Definition: scoprand.cpp:95
int _ss_derivimplicit(int, int, int *, int *, double *, double *, double, int(*)(), double **)
struct SparseObj SparseObj
Definition: nrniv_mf.h:8
void add_nrn_has_net_event(int)
Definition: init.cpp:173
void(* pnt_receive_init_t)(Point_process *, double *, double)
Definition: nrniv_mf.h:15
int _ss_sparse(void **, int, int *, int *, double *, double *, double, int(*)(), double **, int)
int _ss_sparse_thread(void **, int, int *, int *, double *, double *, double, int(*)(void *, double *, double *, Datum *, Datum *, NrnThread *), int, void *, void *, void *)
void hoc_register_ldifus1(ldifusfunc_t)
Definition: ldifus.cpp:46
void nrn_net_move(void **, Point_process *, double)
void nrn_check_conc_write(Prop *, Prop *, int)
Definition: eion.cpp:405
Prop * prop_alloc(Prop **, int, Node *)
Definition: treeset.cpp:694
Point_process * ob2pntproc_0(Object *)
Definition: hocmech.cpp:78
double * _getelm(int, int)
void artcell_net_send(void **, double *, Point_process *, double, double)
Definition: netcvode.cpp:2446
int nrn_get_mechtype(const char *)
Definition: cabcode.cpp:2000
int ifarg(int)
Definition: code.cpp:1581
double get_loc_point_process(void *)
Definition: point.cpp:232
int _ss_derivimplicit_thread(int, int *, int *, double *, int(*)(double *, union Datum *, union Datum *, struct NrnThread *), void *, void *, void *)
double * _nrn_thread_getelm(SparseObj *, int, int)
void hoc_register_synonym(int, void(*)(int, double **, Datum **))
Definition: init.cpp:777
int euler_thread(int, int *, int *, double *, int(*)(double *, union Datum *, union Datum *, struct NrnThread *), union Datum *, union Datum *, struct NrnThread *)
int _cvode_sparse(void **, int, int *, double *, int(*)(), double **)
void ion_reg(const char *, double)
Definition: eion.cpp:154
void nrn_writes_conc(int, int)
Definition: init.cpp:689
int derivimplicit(int, int, int *, int *, double *, double *, double, int(*)(), double **)
Prop * need_memb(Symbol *)
Definition: treeset.cpp:645
Prop * need_memb_cl(Symbol *, int *, int *)
int _cvode_sparse_thread(void **, int, int *, double *, int(*)(void *, double *, double *, Datum *, Datum *, NrnThread *), void *, void *, void *)
void(* NrnWatchAllocateFunc_t)(Datum *)
Definition: nrniv_mf.h:147
int sparse_thread(void **, int, int *, int *, double *, double *, double, int(*)(void *, double *, double *, Datum *, Datum *, NrnThread *), int, Datum *, Datum *, NrnThread *)
pnt_receive_t * pnt_receive
Definition: init.cpp:133
int sparse(void **, int, int *, int *, double *, double *, double, int(*)(), double **, int)
double nrn_ion_charge(Symbol *)
Definition: eion.cpp:61
void artcell_net_move(void **, Point_process *, double)
Definition: netcvode.cpp:2350
void(* ldifusfunc_t)(ldifusfunc2_t, NrnThread *)
Definition: nrniv_mf.h:13
void nrn_net_event(Point_process *, double)
int v_structure_change
Definition: cvodestb.cpp:99
void nrn_wrote_conc(Symbol *, double *, int)
Definition: eion.cpp:291
int derivimplicit_thread(int, int *, int *, double *, int(*)(double *, union Datum *, union Datum *, struct NrnThread *), void *, void *, void *)
int point_register_mech(const char **, Pvmp, Pvmi, Pvmi, Pvmi, Pvmi, int, int, void *(*)(Object *), void(*)(void *), Member_func *)
void hoc_register_cvode(int, nrn_ode_count_t, nrn_ode_map_t, Pvmi, Pvmi)
Definition: init.cpp:767
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