1 #ifndef NRN_NRNCORE_CALLBACKS_H 2 #define NRN_NRNCORE_CALLBACKS_H 12 typedef void*(*CNB)(...);
39 int*& output_gid,
int*& netcon_srcgid,
40 std::vector<int>& netcon_negsrcgid_tid);
42 int& nmech,
int*& tml_index,
int*& ml_nodecount,
int& nidata,
43 int& nvdata,
int& nweight);
45 double*&
area,
double*&
v,
double*& diamvec);
47 double*&
data,
int*&
pdata, std::vector<int>& pointer2type);
48 int nrnthread_dat2_3(
int tid,
int nweight,
int*& output_vindex,
double*& output_threshold,
49 int*& netcon_pnttype,
int*& netcon_pntindex,
double*& weights,
double*& delays);
52 int& icnt,
int& dcnt,
int*& iarray,
double*& darray);
55 int& ix,
int& sz,
double*& yvec,
double*& tvec,
56 int& last_index,
int& discon_index,
int& ubound_index);
72 int icnt,
int dcnt,
int* iarray,
double* darray);
82 int tar_type,
int tar_index,
83 double flag,
size_t nc_index,
int is_movable);
86 int tar_type,
int tar_index,
87 double flag,
int is_movable);
97 std::vector<double>
td;
116 void core2nrn_vecplay(
int tid,
int i_nrn,
int last_index,
int discon_index,
int ubound_index);
175 #endif //NRN_NRNCORE_CALLBACKS_H static core2nrn_callback_t cnbs[]
void * get_global_dbl_item(void *p, const char *&name, int &size, double *&val)
int * datum2int(int type, Memb_list *ml, NrnThread &nt, CellGroup &cg, DatumIndices &di, int ml_vdata_offset, std::vector< int > &pointer2type)
void nrn2core_PreSyn_flag(int tid, std::set< int > &presyns_flag_true)
void core2nrn_vecplay(int tid, int i_nrn, int last_index, int discon_index, int ubound_index)
getting one item at a time from CoreNEURON
void core2nrn_watch_activate(int tid, int type, int wbegin, Core2NrnWatchInfo &)
std::vector< std::pair< int, bool > > Core2NrnWatchInfoItem
int nrnthread_dat2_vecplay_inst(int tid, int i, int &vptype, int &mtype, int &ix, int &sz, double *&yvec, double *&tvec, int &last_index, int &discon_index, int &ubound_index)
void nrn2core_transfer_WATCH(void(*cb)(int, int, int, int, int))
void core2nrn_NetCon_event(int tid, double td, size_t nc_index)
Called from CoreNEURON core2nrn_tqueue_item.
Represent main neuron object computed by single thread.
int nrnthread_dat2_2(int tid, int *&v_parent_index, double *&a, double *&b, double *&area, double *&v, double *&diamvec)
int nrnthread_all_spike_vectors_return(std::vector< double > &spiketvec, std::vector< int > &spikegidvec)
NEURON callback used from CORENEURON to transfer all spike vectors after simulation.
int nrnthread_dat2_corepointer(int tid, int &n)
void map_coreneuron_callbacks(void *handle)
Populate function pointers by mapping function pointers for callback.
void core2nrn_vecplay_events()
start the vecplay events
void nrnthreads_all_weights_return(std::vector< double *> &weights)
Copy weights from all coreneuron::NrnThread to NetCon instances.
void core2nrn_PreSyn_flag(int tid, std::set< int > presyns_flag_true)
SetupTransferInfo * nrn_get_partrans_setup_info(int ngroup, int cn_nthread, size_t cn_sidt_sz)
NrnCoreTransferEvents * nrn2core_transfer_tqueue(int tid)
int get_global_int_item(const char *name)
int const size_t const size_t n
int nrnthread_dat2_vecplay(int tid, std::vector< int > &n)
std::vector< int > intdata
int nrnthread_dat1(int tid, int &n_presyn, int &n_netcon, int *&output_gid, int *&netcon_srcgid, std::vector< int > &netcon_negsrcgid_tid)
void nrn_watch_clear()
Watch info corenrn->nrn transfer requires all activated WatchCondition be deactivated prior to mirror...
void nrnthread_trajectory_return(int tid, int n_pr, int bsize, int vecsz, void **vpr, double t)
void core2nrn_SelfEvent_event(int tid, double td, int tar_type, int tar_index, double flag, size_t nc_index, int is_movable)
int nrnthread_dat2_3(int tid, int nweight, int *&output_vindex, double *&output_threshold, int *&netcon_pnttype, int *&netcon_pntindex, double *&weights, double *&delays)
void nrnthread_get_trajectory_requests(int tid, int &bsize, int &ntrajec, void **&vpr, int *&types, int *&indices, double **&pvars, double **&varrays)
int core2nrn_corepointer_mech(int tid, int type, int icnt, int dcnt, int *iarray, double *darray)
std::vector< Core2NrnWatchInfoItem > Core2NrnWatchInfo
int nrnthread_dat2_1(int tid, int &ngid, int &n_real_gid, int &nnode, int &ndiam, int &nmech, int *&tml_index, int *&ml_nodecount, int &nidata, int &nvdata, int &nweight)
size_t nrnthreads_type_return(int type, int tid, double *&data, double **&mdata)
Return location for CoreNEURON to copy data into.
std::vector< double > dbldata
void core2nrn_clear_queues(double t)
Initialize queues before transfer Probably aleady clear, but if binq then must be initialized to time...
int nrnthread_dat2_mech(int tid, size_t i, int dsz_inst, int *&nodeindices, double *&data, int *&pdata, std::vector< int > &pointer2type)
void nrn2core_patternstim(void **info)
void write_memb_mech_types_direct(std::ostream &s)
void nrnthread_trajectory_values(int tid, int n_pr, void **vpr, double t)
void core2nrn_SelfEvent_event_noweight(int tid, double td, int tar_type, int tar_index, double flag, int is_movable)
int nrnthread_dat2_corepointer_mech(int tid, int type, int &icnt, int &dcnt, int *&iarray, double *&darray)
struct core2nrn_callback_t core2nrn_callback_t
void nrnthread_group_ids(int *groupids)