NEURON
nrniv_mf.h
Go to the documentation of this file.
1 #pragma once
2 #include "classreg.h"
3 #include "hocdec.h"
4 #include "membfunc.h"
5 
6 struct Memb_list;
7 struct NrnThread;
8 struct Point_process;
9 
10 using ldifusfunc3_t = double (*)(int,
11  Memb_list*,
12  std::size_t,
13  Datum*,
14  double*,
15  double*,
16  Datum*,
17  NrnThread*,
20  void(int, ldifusfunc3_t, void**, int, int, int, neuron::model_sorted_token const&, NrnThread&);
22 typedef void (*pnt_receive_t)(Point_process*, double*, double);
23 typedef void (*pnt_receive_init_t)(Point_process*, double*, double);
24 
25 extern Prop* need_memb_cl(Symbol*, int*, int*);
26 extern Prop* prop_alloc(Prop**, int, Node*);
28 
29 [[deprecated("non-void* overloads are preferred")]] void artcell_net_send(void* v,
30  double* weight,
31  Point_process* pnt,
32  double td,
33  double flag);
34 void artcell_net_send(Datum* v, double* weight, Point_process* pnt, double td, double flag);
35 [[deprecated("non-void* overloads are preferred")]] void nrn_net_send(void* v,
36  double* weight,
37  Point_process* pnt,
38  double td,
39  double flag);
40 void nrn_net_send(Datum* v, double* weight, Point_process* pnt, double td, double flag);
41 
42 extern double nrn_ion_charge(Symbol*);
45 void register_mech(const char**, Pvmp, nrn_cur_t, nrn_jacob_t, nrn_state_t, nrn_init_t, int, int);
46 int point_register_mech(const char**,
47  Pvmp,
48  nrn_cur_t,
51  nrn_init_t,
52  int,
53  int,
54  ctor_f*,
55  dtor_f*,
56  Member_func*);
57 extern int nrn_get_mechtype(const char*);
58 extern void nrn_writes_conc(int, int);
59 extern void add_nrn_has_net_event(int);
62 extern void register_destructor(Pvmp);
63 extern void ion_reg(const char*, double);
64 extern void nrn_promote(Prop*, int, int);
65 extern void add_nrn_artcell(int, int);
67 extern void nrn_check_conc_write(Prop*, Prop*, int);
68 void nrn_wrote_conc(Symbol*, double& erev, double ci, double co, int);
69 
70 extern Prop* need_memb(Symbol*);
71 
72 extern void* create_point_process(int, Object*);
73 extern void destroy_point_process(void*);
74 extern double has_loc_point(void*);
75 extern double get_loc_point_process(void*);
76 extern double loc_point_process(int, void*);
77 extern Prop* nrn_point_prop_;
79 void steer_point_process(void* v);
80 
81 bool at_time(NrnThread*, double);
82 
83 void artcell_net_move(Datum*, Point_process*, double);
84 
85 extern int ifarg(int);
86 extern void set_seed(double);
87 extern int nrn_matrix_cnt_; // defined in treeset.cpp
88 extern int diam_changed; // defined in cabcode.cpp
89 extern int diam_change_cnt; // defined in treeset.cpp
90 extern int structure_change_cnt; // defined in treeset.cpp
91 extern int tree_changed; // defined in cabcode.cpp
92 extern int v_structure_change; // defined in treeset.cpp
93 
94 // nrnmech stuff
97 extern short* pnt_receive_size;
98 extern void nrn_net_event(Point_process*, double);
99 void nrn_net_move(Datum*, Point_process*, double);
100 
101 typedef void (*NrnWatchAllocateFunc_t)(Datum*);
103 
104 void* nrn_pool_alloc(void* pool);
105 void* nrn_pool_create(long count, int itemsize);
106 void nrn_pool_delete(void* pool);
107 void nrn_pool_freeall(void* pool);
void *(Object *) ctor_f
Definition: classreg.h:5
void(void *) dtor_f
Definition: classreg.h:6
#define v
Definition: md1redef.h:11
void(*)(Prop *, int, neuron::container::data_handle< double > *, neuron::container::data_handle< double > *, double *, int) nrn_ode_map_t
Definition: membfunc.h:39
void(* Pvmp)(Prop *)
Definition: membfunc.h:22
int(* nrn_ode_count_t)(int)
Definition: membfunc.h:23
nrn_cur_t nrn_ode_spec_t
Definition: membfunc.h:41
nrn_cur_t nrn_state_t
Definition: membfunc.h:43
nrn_cur_t nrn_init_t
Definition: membfunc.h:32
void(*)(neuron::model_sorted_token const &, NrnThread *, Memb_list *, int) nrn_cur_t
Definition: membfunc.h:31
nrn_cur_t nrn_ode_matsol_t
Definition: membfunc.h:40
nrn_cur_t nrn_jacob_t
Definition: membfunc.h:33
void(*)(neuron::model_sorted_token const &, NrnThread &, Memb_list &, int) nrn_ode_synonym_t
Definition: membfunc.h:42
void destroy_point_process(void *)
Definition: point.cpp:67
neuron::container::data_handle< double > point_process_pointer(Point_process *, Symbol *, int)
Definition: point.cpp:239
int diam_changed
Definition: cabcode.cpp:55
void(*)(ldifusfunc2_t, neuron::model_sorted_token const &, NrnThread &) ldifusfunc_t
Definition: nrniv_mf.h:21
void add_nrn_artcell(int, int)
Definition: init.cpp:217
Point_process * ob2pntproc(Object *)
Definition: hocmech.cpp:99
double loc_point_process(int, void *)
Definition: point.cpp:202
double has_loc_point(void *)
Definition: point.cpp:234
NrnWatchAllocateFunc_t * nrn_watch_allocate_
Definition: init.cpp:166
Prop * nrn_point_prop_
Definition: point.cpp:29
void * create_point_process(int, Object *)
Definition: point.cpp:33
void(* pnt_receive_t)(Point_process *, double *, double)
Definition: nrniv_mf.h:22
void nrn_net_move(Datum *, Point_process *, double)
Definition: netcvode.cpp:2189
void nrn_promote(Prop *, int, int)
Definition: eion.cpp:527
short * pnt_receive_size
Definition: init.cpp:157
void register_mech(const char **, Pvmp, nrn_cur_t, nrn_jacob_t, nrn_state_t, nrn_init_t, int, int)
Definition: init.cpp:726
void hoc_register_cvode(int, nrn_ode_count_t, nrn_ode_map_t, nrn_ode_spec_t, nrn_ode_matsol_t)
Definition: init.cpp:995
pnt_receive_init_t * pnt_receive_init
Definition: init.cpp:156
bool at_time(NrnThread *, double)
Definition: cvodestb.cpp:127
void register_destructor(Pvmp)
Definition: init.cpp:1009
void artcell_net_send(void *v, double *weight, Point_process *pnt, double td, double flag)
Definition: netcvode.cpp:2318
void nrn_wrote_conc(Symbol *, double &erev, double ci, double co, int)
Definition: eion.cpp:293
void set_seed(double)
Definition: scoprand.cpp:94
void add_nrn_has_net_event(int)
Definition: init.cpp:194
int structure_change_cnt
Definition: treeset.cpp:66
void(* pnt_receive_init_t)(Point_process *, double *, double)
Definition: nrniv_mf.h:23
int diam_change_cnt
Definition: treeset.cpp:67
void hoc_register_ldifus1(ldifusfunc_t)
Definition: ldifus.cpp:45
void * nrn_pool_alloc(void *pool)
Definition: cxprop.cpp:139
void nrn_net_send(void *v, double *weight, Point_process *pnt, double td, double flag)
Definition: netcvode.cpp:2322
void(int, ldifusfunc3_t, void **, int, int, int, neuron::model_sorted_token const &, NrnThread &) ldifusfunc2_t
Definition: nrniv_mf.h:20
void nrn_check_conc_write(Prop *, Prop *, int)
Definition: eion.cpp:422
Prop * prop_alloc(Prop **, int, Node *)
Definition: treeset.cpp:671
Point_process * ob2pntproc_0(Object *)
Definition: hocmech.cpp:89
void hoc_register_synonym(int, nrn_ode_synonym_t)
Definition: init.cpp:1005
int nrn_matrix_cnt_
Definition: treeset.cpp:57
int nrn_get_mechtype(const char *)
Definition: cabcode.cpp:1842
int ifarg(int)
Definition: code.cpp:1607
double get_loc_point_process(void *)
Definition: point.cpp:217
void * nrn_pool_create(long count, int itemsize)
Definition: cxprop.cpp:133
void ion_reg(const char *, double)
Definition: eion.cpp:162
int tree_changed
Definition: cabcode.cpp:51
void nrn_writes_conc(int, int)
Definition: init.cpp:745
Prop * need_memb(Symbol *)
Definition: treeset.cpp:622
Prop * need_memb_cl(Symbol *, int *, int *)
void nrn_pool_delete(void *pool)
Definition: cxprop.cpp:136
void prop_update_ion_variables(Prop *, Node *)
Definition: treeset.cpp:690
void(* NrnWatchAllocateFunc_t)(Datum *)
Definition: nrniv_mf.h:101
void artcell_net_move(Datum *, Point_process *, double)
Definition: netcvode.cpp:2206
pnt_receive_t * pnt_receive
Definition: init.cpp:155
int point_register_mech(const char **, Pvmp, nrn_cur_t, nrn_jacob_t, nrn_state_t, nrn_init_t, int, int, ctor_f *, dtor_f *, Member_func *)
double nrn_ion_charge(Symbol *)
Definition: eion.cpp:60
void nrn_pool_freeall(void *pool)
Definition: cxprop.cpp:145
void steer_point_process(void *v)
Definition: point.cpp:288
void nrn_net_event(Point_process *, double)
int v_structure_change
Definition: treeset.cpp:65
double(*)(int, Memb_list *, std::size_t, Datum *, double *, double *, Datum *, NrnThread *, neuron::model_sorted_token const &) ldifusfunc3_t
Definition: nrniv_mf.h:18
A view into a set of mechanism instances.
Definition: nrnoc_ml.h:34
Definition: section.h:105
Represent main neuron object computed by single thread.
Definition: multicore.h:58
Definition: hocdec.h:173
A point process is computed just like regular mechanisms.
Definition: section_fwd.hpp:77
Definition: section.h:231
Definition: model.h:47
Non-template stable handle to a generic value.