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,
29  int(*)(), double**, int);
30 extern int sparse_thread(void**, int, int*, int*, double*, double*, double,
31  int(*)(void*, double*, double*, Datum*, Datum*, NrnThread*), int, Datum*, Datum*, NrnThread*);
32 extern int _ss_sparse(void**, int, int*, int*, double*, double*, double,
33  int(*)(), double**, int);
34 extern int _ss_sparse_thread(void**, int, int*, int*, double*, double*, double,
35  int(*)(void*, double*, double*, Datum*, Datum*, NrnThread*), int, void*, void*, void*);
36 extern int _cvode_sparse(void**, int, int*, double*,
37  int(*)(), double**);
38 extern int _cvode_sparse_thread(void**, int, int*, double*,
39  int(*)(void*, double*, double*, Datum*, Datum*, NrnThread*), void*, void*, void*);
40 extern int _nrn_destroy_sparseobj_thread(void*);
41 extern int derivimplicit(int, int, int*, int*, double*, double*, double, int(*)(), double**);
42 extern int derivimplicit_thread(int, int*, int*, double*, int(*)(double*, union Datum*, union Datum*, struct NrnThread*), void*, void*, void*);
43 extern int _ss_derivimplicit(int, int, int*, int*, double*, double*, double,
44  int(*)(), double**);
45 extern int _ss_derivimplicit_thread(int, int*, int*, double*,
46  int(*)(double*, union Datum*, union Datum*, struct NrnThread*), void*, void*, void*);
47 
48 extern int euler_thread(int, int*, int*, double*,
49  int(*)(double*, union Datum*, union Datum*, struct NrnThread*), union Datum*, union Datum*, struct NrnThread*);
50 
51 extern void register_mech(const char**, Pvmp, Pvmi, Pvmi, Pvmi, Pvmi, int, int);
52 extern int point_register_mech(const char**, Pvmp, Pvmi, Pvmi, Pvmi, Pvmi, int, int,
53  void*(*)(Object*), void(*)(void*), Member_func*);
54 extern int nrn_get_mechtype(const char*);
55 extern void nrn_writes_conc(int, int);
56 extern void add_nrn_has_net_event(int);
58 extern void hoc_register_synonym(int, void(*)(int, double**, Datum**));
59 extern void register_destructor(Pvmp);
60 extern void ion_reg(const char*, double);
61 extern void nrn_promote(Prop*, int, int);
62 extern void add_nrn_artcell(int, int);
64 extern void nrn_check_conc_write(Prop*, Prop*, int);
65 extern void nrn_wrote_conc(Symbol*, double*, int);
66 extern void nrn_update_ion_pointer(Symbol*, Datum*, int, int);
67 
68 extern Prop* need_memb(Symbol*);
69 
70 extern void* create_point_process(int, Object*);
71 extern void destroy_point_process(void*);
72 extern double has_loc_point(void*);
73 extern double get_loc_point_process(void*);
74 extern double loc_point_process(int, void*);
75 extern Prop* nrn_point_prop_;
76 
77 extern int at_time(NrnThread*, double);
78 
79 extern void artcell_net_send(void**, double*, Point_process*, double, double);
80 extern void artcell_net_move(void**, Point_process*, double);
81 
82 extern int ifarg(int);
83 
84 extern void nrn_complain(double*);
85 
86 extern void set_seed(double);
87 extern int v_structure_change;
88 
89 //nrnmech stuff
92 extern short* pnt_receive_size;
93 extern void nrn_net_send(void**, double*, Point_process*, double, double);
94 extern void nrn_net_event(Point_process*, double);
95 extern void nrn_net_move(void**, Point_process*, double);
96 
99 
100 #if defined(__cplusplus)
101 }
102 #endif
103 
104 #endif /* nrniv_mf_h */
pnt_receive_t * pnt_receive
Definition: init.cpp:171
void artcell_net_send(void **, double *, Point_process *, double, double)
Definition: netcvode.cpp:2375
void register_destructor(Pvmp)
Definition: init.cpp:796
void nrn_writes_conc(int, int)
Definition: init.cpp:706
int nrn_get_mechtype(const char *)
Definition: cabcode.cpp:2017
double loc_point_process(int, void *)
Definition: point.cpp:223
void(* pnt_receive_t)(Point_process *, double *, double)
Definition: nrniv_mf.h:14
void register_mech(const char **, Pvmp, Pvmi, Pvmi, Pvmi, Pvmi, int, int)
Definition: init.cpp:688
double * _nrn_thread_getelm(SparseObj *, int, int)
void nrn_wrote_conc(Symbol *, double *, int)
Definition: eion.cpp:265
int _ss_sparse_thread(void **, int, int *, int *, double *, double *, double, int(*)(void *, double *, double *, Datum *, Datum *, NrnThread *), int, void *, void *, void *)
int at_time(NrnThread *, double)
Definition: cvodestb.cpp:130
void ion_reg(const char *, double)
Definition: eion.cpp:132
void(* ldifusfunc_t)(ldifusfunc2_t, NrnThread *)
Definition: nrniv_mf.h:13
int point_register_mech(const char **, Pvmp, Pvmi, Pvmi, Pvmi, Pvmi, int, int, void *(*)(Object *), void(*)(void *), Member_func *)
int v_structure_change
Definition: cvodestb.cpp:99
void
Represent main neuron object computed by single thread.
Definition: multicore.h:58
void set_seed(double)
Definition: scoprand.cpp:97
void nrn_check_conc_write(Prop *, Prop *, int)
Definition: eion.cpp:379
int _ss_derivimplicit(int, int, int *, int *, double *, double *, double, int(*)(), double **)
Prop * nrn_point_prop_
Definition: point.cpp:28
void hoc_register_ldifus1(ldifusfunc_t)
Definition: ldifus.cpp:46
void nrn_complain(double *)
Definition: treeset.cpp:1879
void hoc_register_synonym(int, void(*)(int, double **, Datum **))
Definition: init.cpp:791
void ldifusfunc2_t(int, ldifusfunc3_t, void **, int, int, int, NrnThread *)
Definition: nrniv_mf.h:12
void * create_point_process(int, Object *)
Definition: point.cpp:32
int _ss_sparse(void **, int, int *, int *, double *, double *, double, int(*)(), double **, int)
int _cvode_sparse(void **, int, int *, double *, int(*)(), double **)
void(* Pvmp)(Prop *)
Definition: membfunc.h:19
void(* Pvmi)(struct NrnThread *, Memb_list *, int)
Definition: membfunc.h:18
int
Definition: nrnmusic.cpp:71
void nrn_net_event(Point_process *, double)
void add_nrn_has_net_event(int)
Definition: init.cpp:211
void artcell_net_move(void **, Point_process *, double)
Definition: netcvode.cpp:2285
NrnWatchAllocateFunc_t * nrn_watch_allocate_
Definition: init.cpp:182
double has_loc_point(void *)
Definition: point.cpp:260
Definition: model.h:57
int _nrn_destroy_sparseobj_thread(void *)
Point_process * ob2pntproc_0(Object *)
Definition: hocmech.cpp:78
Definition: section.h:213
int sparse_thread(void **, int, int *, int *, double *, double *, double, int(*)(void *, double *, double *, Datum *, Datum *, NrnThread *), int, Datum *, Datum *, NrnThread *)
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:97
pnt_receive_init_t * pnt_receive_init
Definition: init.cpp:172
Prop * need_memb_cl(Symbol *, int *, int *)
struct SparseObj SparseObj
Definition: nrniv_mf.h:8
short * pnt_receive_size
Definition: init.cpp:173
int _ss_derivimplicit_thread(int, int *, int *, double *, int(*)(double *, union Datum *, union Datum *, struct NrnThread *), void *, void *, void *)
double nrn_ion_charge(Symbol *)
Definition: eion.cpp:55
int sparse(void **, int, int *, int *, double *, double *, double, int(*)(), double **, int)
void nrn_net_move(void **, Point_process *, double)
int ifarg(int)
Definition: code.cpp:1562
double * _getelm(int, int)
Definition: hocdec.h:226
void add_nrn_artcell(int, int)
Definition: init.cpp:234
Point_process * ob2pntproc(Object *)
Definition: hocmech.cpp:88
int derivimplicit_thread(int, int *, int *, double *, int(*)(double *, union Datum *, union Datum *, struct NrnThread *), void *, void *, void *)
void nrn_net_send(void **, double *, Point_process *, double, double)
double get_loc_point_process(void *)
Definition: point.cpp:239
int derivimplicit(int, int, int *, int *, double *, double *, double, int(*)(), double **)
void hoc_register_cvode(int, nrn_ode_count_t, nrn_ode_map_t, Pvmi, Pvmi)
Definition: init.cpp:779
Prop * need_memb(Symbol *)
Definition: treeset.cpp:638
int euler_thread(int, int *, int *, double *, int(*)(double *, union Datum *, union Datum *, struct NrnThread *), union Datum *, union Datum *, struct NrnThread *)
Definition: section.h:132
void nrn_update_ion_pointer(Symbol *, Datum *, int, int)
Definition: cxprop.cpp:557
double(* ldifusfunc3_t)(int, double *, Datum *, double *, double *, Datum *, NrnThread *)
Definition: nrniv_mf.h:11
Definition: hocdec.h:176
void(* pnt_receive_init_t)(Point_process *, double *, double)
Definition: nrniv_mf.h:15
Prop * prop_alloc(Prop **, int, Node *)
Definition: treeset.cpp:688
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 destroy_point_process(void *)
Definition: point.cpp:77
void nrn_promote(Prop *, int, int)
Definition: eion.cpp:512