1 #include <../../nrnconf.h>
60 #define sentinal 123456789.e15
108 return it->second->path;
117 return it->second->sym;
136 return it->second->path;
161 char** pstr = (
char**) it.first;
164 double* pd = (
double*) it.first;
185 char** pstr = (
char**) it.first;
188 double* pd = (
double*) it.first;
200 Sprintf(path,
"%s%s.", cs.c_str(), str.c_str());
204 const auto& it =
table_.find(
v);
206 hoc_warning(
"table lookup failed for pointer for-", path);
210 if (pv->
path.empty()) {
217 const auto& it =
table_.find(
v);
253 for (sym = sl->
first; sym; sym = sym->
next) {
267 for (
i = 0;
i < total; ++
i) {
271 found(pd +
i, cs.c_str(), sym);
280 found(pstr, cs.c_str(), sym);
289 for (
i = 0;
i < total; ++
i)
290 if (obp[
i] && !obp[
i]->recurse) {
292 if (!
t->constructor) {
318 for (
i = 0;
i < total; ++
i) {
337 if (!
t->constructor) {
363 int size = vec->
size();
365 for (
size_t i = 0;
i < size; ++
i) {
393 if (
sec->prop->dparam[2].get<
double>() ==
sentinal) {
394 found(&(
sec->prop->dparam[2].literal_value<
double>()),
"L",
sym_L);
396 if (
sec->prop->dparam[4].get<
double>() ==
sentinal) {
399 if (
sec->prop->dparam[7].get<
double>() ==
sentinal) {
400 found(&(
sec->prop->dparam[7].literal_value<
double>()),
"Ra",
sym_Ra);
402 if (!
sec->parentsec &&
sec->parentnode) {
403 search(
sec->parentnode,
sec->prop->dparam[1].get<
double>());
405 for (
int i = 0;
i <
sec->nnode; ++
i) {
435 for (
p = nd->
prop;
p;
p =
p->next) {
454 int i, imax,
k = 0, ir, kmax = sym->
s_varn;
456 for (
k = 0;
k < kmax; ++
k) {
461 ir = psym->
u.
rng.index;
463 pd =
prop->ob->u.dataspace[ir].pval;
469 pd =
static_cast<double*
>(
prop->param_handle_legacy(ir));
473 for (
i = 0;
i < imax; ++
i) {
const char * secname(Section *sec)
name of section (for use in error messages)
double nrn_arc_position(Section *sec, Node *node)
HocDataPathImpl(int, int)
PathValue * found_v(void *, const char *, Symbol *)
std::map< void *, PathValue * > table_
std::vector< std::string > strlist_
void found(double *, const char *, Symbol *)
Symbol * retrieve_sym(double *) const
HocDataPaths(int=1000, int pathstyle=0)
std::string retrieve(double *) const
Symbol * hoc_table_lookup(const char *, Symlist *)
Symlist * hoc_top_level_symlist
static Symbol * sym_rallbranch
Objectdata * hoc_top_level_data
Symlist * hoc_built_in_symlist
size_t hoc_total_array_data(const Symbol *s, Objectdata *obd)
void hoc_assign_str(char **cpp, const char *buf)
char * hoc_araystr(Symbol *sym, int index, Objectdata *obd)
#define ITERATE(itm, lst)
double * vector_vec(IvocVect *v)
void hoc_warning(const char *s1, const char *s2)
int Sprintf(char(&buf)[N], const char *fmt, Args &&... args)
Redirect sprintf to snprintf if the buffer size can be deduced.
std::vector< Memb_func > memb_func
char ** object_pstr(Symbol *sym, Objectdata *od)
Object ** object_pobj(Symbol *sym, Objectdata *od)
hoc_Item ** object_psecitm(Symbol *sym, Objectdata *od)
double * object_pval(Symbol *sym, Objectdata *od)
A point process is computed just like regular mechanisms.
struct Symbol::@45::@46 rng