NEURON
neuronapi.h File Reference
#include <stdbool.h>
#include <stdio.h>
#include <stddef.h>

Go to the source code of this file.

Typedefs

typedef struct Symbol Symbol
 
typedef struct Object Object
 
typedef struct Section Section
 
typedef struct SectionListIterator SectionListIterator
 
typedef struct nrn_Item nrn_Item
 
typedef struct SymbolTableIterator SymbolTableIterator
 
typedef struct Symlist Symlist
 
typedef struct ShapePlotInterface ShapePlotInterface
 

Enumerations

enum  nrn_stack_types_t {
  STACK_IS_STR = 1 , STACK_IS_VAR = 2 , STACK_IS_NUM = 3 , STACK_IS_OBJVAR = 4 ,
  STACK_IS_OBJTMP = 5 , STACK_IS_INT = 6 , STACK_IS_SYM = 7 , STACK_UNKNOWN = -1
}
 

Functions

int nrn_init (int argc, const char **argv)
 
void nrn_stdout_redirect (int(*myprint)(int, char *))
 
Sectionnrn_section_new (const char *name)
 
void nrn_section_connect (Section *child_sec, double child_x, Section *parent_sec, double parent_x)
 
void nrn_section_length_set (Section *sec, double length)
 
double nrn_section_length_get (Section *sec)
 
double nrn_section_Ra_get (Section *sec)
 
void nrn_section_Ra_set (Section *sec, double val)
 
double nrn_section_rallbranch_get (const Section *sec)
 
void nrn_section_rallbranch_set (Section *sec, double val)
 
char const * nrn_secname (Section *sec)
 
void nrn_section_push (Section *sec)
 
void nrn_section_pop (void)
 
void nrn_mechanism_insert (Section *sec, const Symbol *mechanism)
 
nrn_Itemnrn_allsec (void)
 
nrn_Itemnrn_sectionlist_data (const Object *obj)
 
bool nrn_section_is_active (const Section *sec)
 
void nrn_section_ref (Section *sec)
 
void nrn_section_unref (Section *sec)
 
Sectionnrn_cas (void)
 
int nrn_nseg_get (const Section *sec)
 
void nrn_nseg_set (Section *sec, int nseg)
 
void nrn_segment_diam_set (Section *sec, double x, double diam)
 
double nrn_segment_diam_get (Section *sec, double x)
 
void nrn_rangevar_push (Symbol *sym, Section *sec, double x)
 
double nrn_rangevar_get (Symbol *sym, Section *sec, double x)
 
void nrn_rangevar_set (Symbol *sym, Section *sec, double x, double value)
 
Symbolnrn_symbol (const char *name)
 
void nrn_symbol_push (Symbol *sym)
 
int nrn_symbol_type (const Symbol *sym)
 
int nrn_symbol_subtype (const Symbol *sym)
 
double * nrn_symbol_dataptr (const Symbol *sym)
 
bool nrn_symbol_is_array (const Symbol *sym)
 
void nrn_double_push (double val)
 
double nrn_double_pop (void)
 
void nrn_double_ptr_push (double *addr)
 
double * nrn_double_ptr_pop (void)
 
void nrn_str_push (char **str)
 
char ** nrn_str_pop (void)
 
void nrn_int_push (int i)
 
int nrn_int_pop (void)
 
void nrn_object_push (Object *obj)
 
Objectnrn_object_pop (void)
 
nrn_stack_types_t nrn_stack_type (void)
 
char const * nrn_stack_type_name (nrn_stack_types_t id)
 
Objectnrn_object_new (Symbol *sym, int narg)
 
Symbolnrn_method_symbol (const Object *obj, const char *name)
 
void nrn_method_call (Object *obj, Symbol *method_sym, int narg)
 
void nrn_function_call (Symbol *sym, int narg)
 
int nrn_method_call_nothrow (Object *obj, Symbol *method_sym, int narg, char *error_msg, size_t error_msg_size)
 
int nrn_function_call_nothrow (Symbol *sym, int narg, char *error_msg, size_t error_msg_size)
 
void nrn_object_ref (Object *obj)
 
void nrn_object_unref (Object *obj)
 
char const * nrn_class_name (const Object *obj)
 
bool nrn_prop_exists (const Object *obj)
 
double nrn_distance (Section *sec0, double x0, Section *sec1, double x1)
 
ShapePlotInterfacenrn_get_plotshape_interface (Object *ps)
 
Objectnrn_get_plotshape_section_list (ShapePlotInterface *spi)
 
const char * nrn_get_plotshape_varname (ShapePlotInterface *spi)
 
float nrn_get_plotshape_low (ShapePlotInterface *spi)
 
float nrn_get_plotshape_high (ShapePlotInterface *spi)
 
int nrn_hoc_call (char const *command)
 
SectionListIteratornrn_sectionlist_iterator_new (nrn_Item *my_sectionlist)
 
void nrn_sectionlist_iterator_free (SectionListIterator *sl)
 
Sectionnrn_sectionlist_iterator_next (SectionListIterator *sl)
 
int nrn_sectionlist_iterator_done (SectionListIterator *sl)
 
SymbolTableIteratornrn_symbol_table_iterator_new (Symlist *my_symbol_table)
 
void nrn_symbol_table_iterator_free (SymbolTableIterator *st)
 
Symbolnrn_symbol_table_iterator_next (SymbolTableIterator *st)
 
int nrn_symbol_table_iterator_done (SymbolTableIterator *st)
 
int nrn_vector_capacity (const Object *vec)
 
double * nrn_vector_data (Object *vec)
 
double nrn_property_get (const Object *obj, const char *name)
 
double nrn_property_array_get (const Object *obj, const char *name, int i)
 
void nrn_property_set (Object *obj, const char *name, double value)
 
void nrn_property_array_set (Object *obj, const char *name, int i, double value)
 
void nrn_property_push (Object *obj, const char *name)
 
void nrn_property_array_push (Object *obj, const char *name, int i)
 
char const * nrn_symbol_name (const Symbol *sym)
 
Symlistnrn_symbol_table (const Symbol *sym)
 
Symlistnrn_global_symbol_table (void)
 
Symlistnrn_top_level_symbol_table (void)
 
int nrn_symbol_array_length (const Symbol *sym)
 
void nrn_register_function (void(*proc)(), const char *func_name, int type)
 
void nrn_hoc_ret (void)
 
Object ** nrn_objgetarg (int arg)
 
char * nrn_gargstr (int arg)
 
double * nrn_getarg (int arg)
 
FILE * nrn_obj_file_arg (int i)
 
bool nrn_ifarg (int arg)
 
bool nrn_is_object_arg (int arg)
 
bool nrn_is_str_arg (int arg)
 
bool nrn_is_double_arg (int arg)
 
bool nrn_is_pdouble_arg (int arg)
 

Typedef Documentation

◆ nrn_Item

typedef struct nrn_Item nrn_Item

Definition at line 1 of file neuronapi.h.

◆ Object

typedef struct Object Object

Definition at line 1 of file neuronapi.h.

◆ Section

typedef struct Section Section

Definition at line 1 of file neuronapi.h.

◆ SectionListIterator

Definition at line 1 of file neuronapi.h.

◆ ShapePlotInterface

Definition at line 1 of file neuronapi.h.

◆ Symbol

typedef struct Symbol Symbol

Definition at line 1 of file neuronapi.h.

◆ SymbolTableIterator

Definition at line 1 of file neuronapi.h.

◆ Symlist

typedef struct Symlist Symlist

Definition at line 1 of file neuronapi.h.

Enumeration Type Documentation

◆ nrn_stack_types_t

Enumerator
STACK_IS_STR 
STACK_IS_VAR 
STACK_IS_NUM 
STACK_IS_OBJVAR 
STACK_IS_OBJTMP 
STACK_IS_INT 
STACK_IS_SYM 
STACK_UNKNOWN 

Definition at line 25 of file neuronapi.h.

Function Documentation

◆ nrn_allsec()

nrn_Item* nrn_allsec ( void  )

Definition at line 219 of file neuronapi.cpp.

◆ nrn_cas()

Section* nrn_cas ( void  )

Definition at line 166 of file neuronapi.cpp.

◆ nrn_class_name()

char const* nrn_class_name ( const Object obj)

Definition at line 422 of file neuronapi.cpp.

◆ nrn_distance()

double nrn_distance ( Section sec0,
double  x0,
Section sec1,
double  x1 
)

Definition at line 430 of file neuronapi.cpp.

◆ nrn_double_pop()

double nrn_double_pop ( void  )

Definition at line 262 of file neuronapi.cpp.

◆ nrn_double_ptr_pop()

double* nrn_double_ptr_pop ( void  )

Definition at line 270 of file neuronapi.cpp.

◆ nrn_double_ptr_push()

void nrn_double_ptr_push ( double *  addr)

Definition at line 266 of file neuronapi.cpp.

◆ nrn_double_push()

void nrn_double_push ( double  val)

Definition at line 258 of file neuronapi.cpp.

◆ nrn_function_call()

void nrn_function_call ( Symbol sym,
int  narg 
)

Definition at line 356 of file neuronapi.cpp.

◆ nrn_function_call_nothrow()

int nrn_function_call_nothrow ( Symbol sym,
int  narg,
char *  error_msg,
size_t  error_msg_size 
)

Definition at line 390 of file neuronapi.cpp.

◆ nrn_gargstr()

char* nrn_gargstr ( int  arg)

Definition at line 693 of file neuronapi.cpp.

◆ nrn_get_plotshape_high()

float nrn_get_plotshape_high ( ShapePlotInterface spi)

Definition at line 461 of file neuronapi.cpp.

◆ nrn_get_plotshape_interface()

ShapePlotInterface* nrn_get_plotshape_interface ( Object ps)

Definition at line 442 of file neuronapi.cpp.

◆ nrn_get_plotshape_low()

float nrn_get_plotshape_low ( ShapePlotInterface spi)

Definition at line 457 of file neuronapi.cpp.

◆ nrn_get_plotshape_section_list()

Object* nrn_get_plotshape_section_list ( ShapePlotInterface spi)

Definition at line 449 of file neuronapi.cpp.

◆ nrn_get_plotshape_varname()

const char* nrn_get_plotshape_varname ( ShapePlotInterface spi)

Definition at line 453 of file neuronapi.cpp.

◆ nrn_getarg()

double* nrn_getarg ( int  arg)

Definition at line 697 of file neuronapi.cpp.

◆ nrn_global_symbol_table()

Symlist* nrn_global_symbol_table ( void  )

Definition at line 661 of file neuronapi.cpp.

◆ nrn_hoc_call()

int nrn_hoc_call ( char const *  command)

Definition at line 468 of file neuronapi.cpp.

◆ nrn_hoc_ret()

void nrn_hoc_ret ( void  )

Definition at line 682 of file neuronapi.cpp.

◆ nrn_ifarg()

bool nrn_ifarg ( int  arg)

Definition at line 705 of file neuronapi.cpp.

◆ nrn_init()

int nrn_init ( int  argc,
const char **  argv 
)

Definition at line 57 of file neuronapi.cpp.

◆ nrn_int_pop()

int nrn_int_pop ( void  )

Definition at line 286 of file neuronapi.cpp.

◆ nrn_int_push()

void nrn_int_push ( int  i)

Definition at line 282 of file neuronapi.cpp.

◆ nrn_is_double_arg()

bool nrn_is_double_arg ( int  arg)

Definition at line 720 of file neuronapi.cpp.

◆ nrn_is_object_arg()

bool nrn_is_object_arg ( int  arg)

Definition at line 710 of file neuronapi.cpp.

◆ nrn_is_pdouble_arg()

bool nrn_is_pdouble_arg ( int  arg)

Definition at line 725 of file neuronapi.cpp.

◆ nrn_is_str_arg()

bool nrn_is_str_arg ( int  arg)

Definition at line 715 of file neuronapi.cpp.

◆ nrn_mechanism_insert()

void nrn_mechanism_insert ( Section sec,
const Symbol mechanism 
)

Definition at line 146 of file neuronapi.cpp.

◆ nrn_method_call()

void nrn_method_call ( Object obj,
Symbol method_sym,
int  narg 
)

Definition at line 352 of file neuronapi.cpp.

◆ nrn_method_call_nothrow()

int nrn_method_call_nothrow ( Object obj,
Symbol method_sym,
int  narg,
char *  error_msg,
size_t  error_msg_size 
)

Definition at line 362 of file neuronapi.cpp.

◆ nrn_method_symbol()

Symbol* nrn_method_symbol ( const Object obj,
const char *  name 
)

Definition at line 348 of file neuronapi.cpp.

◆ nrn_nseg_get()

int nrn_nseg_get ( const Section sec)

Definition at line 175 of file neuronapi.cpp.

◆ nrn_nseg_set()

void nrn_nseg_set ( Section sec,
int  nseg 
)

Definition at line 180 of file neuronapi.cpp.

◆ nrn_obj_file_arg()

FILE* nrn_obj_file_arg ( int  i)

Definition at line 701 of file neuronapi.cpp.

◆ nrn_object_new()

Object* nrn_object_new ( Symbol sym,
int  narg 
)

Definition at line 344 of file neuronapi.cpp.

◆ nrn_object_pop()

Object* nrn_object_pop ( void  )

Definition at line 294 of file neuronapi.cpp.

◆ nrn_object_push()

void nrn_object_push ( Object obj)

Definition at line 290 of file neuronapi.cpp.

◆ nrn_object_ref()

void nrn_object_ref ( Object obj)

Definition at line 414 of file neuronapi.cpp.

◆ nrn_object_unref()

void nrn_object_unref ( Object obj)

Definition at line 418 of file neuronapi.cpp.

◆ nrn_objgetarg()

Object** nrn_objgetarg ( int  arg)

Definition at line 689 of file neuronapi.cpp.

◆ nrn_prop_exists()

bool nrn_prop_exists ( const Object obj)

Definition at line 426 of file neuronapi.cpp.

◆ nrn_property_array_get()

double nrn_property_array_get ( const Object obj,
const char *  name,
int  i 
)

Definition at line 587 of file neuronapi.cpp.

◆ nrn_property_array_push()

void nrn_property_array_push ( Object obj,
const char *  name,
int  i 
)

Definition at line 638 of file neuronapi.cpp.

◆ nrn_property_array_set()

void nrn_property_array_set ( Object obj,
const char *  name,
int  i,
double  value 
)

Definition at line 613 of file neuronapi.cpp.

◆ nrn_property_get()

double nrn_property_get ( const Object obj,
const char *  name 
)

Definition at line 574 of file neuronapi.cpp.

◆ nrn_property_push()

void nrn_property_push ( Object obj,
const char *  name 
)

Definition at line 626 of file neuronapi.cpp.

◆ nrn_property_set()

void nrn_property_set ( Object obj,
const char *  name,
double  value 
)

Definition at line 600 of file neuronapi.cpp.

◆ nrn_rangevar_get()

double nrn_rangevar_get ( Symbol sym,
Section sec,
double  x 
)

Definition at line 207 of file neuronapi.cpp.

◆ nrn_rangevar_push()

void nrn_rangevar_push ( Symbol sym,
Section sec,
double  x 
)

Definition at line 215 of file neuronapi.cpp.

◆ nrn_rangevar_set()

void nrn_rangevar_set ( Symbol sym,
Section sec,
double  x,
double  value 
)

Definition at line 211 of file neuronapi.cpp.

◆ nrn_register_function()

void nrn_register_function ( void(*)()  proc,
const char *  func_name,
int  type 
)

Definition at line 674 of file neuronapi.cpp.

◆ nrn_secname()

char const* nrn_secname ( Section sec)

Definition at line 134 of file neuronapi.cpp.

◆ nrn_section_connect()

void nrn_section_connect ( Section child_sec,
double  child_x,
Section parent_sec,
double  parent_x 
)

Definition at line 88 of file neuronapi.cpp.

◆ nrn_section_is_active()

bool nrn_section_is_active ( const Section sec)

Definition at line 151 of file neuronapi.cpp.

◆ nrn_section_length_get()

double nrn_section_length_get ( Section sec)

Definition at line 107 of file neuronapi.cpp.

◆ nrn_section_length_set()

void nrn_section_length_set ( Section sec,
double  length 
)

Definition at line 96 of file neuronapi.cpp.

◆ nrn_section_new()

Section* nrn_section_new ( const char *  name)

Definition at line 75 of file neuronapi.cpp.

◆ nrn_section_pop()

void nrn_section_pop ( void  )

Definition at line 142 of file neuronapi.cpp.

◆ nrn_section_push()

void nrn_section_push ( Section sec)

Definition at line 138 of file neuronapi.cpp.

◆ nrn_section_Ra_get()

double nrn_section_Ra_get ( Section sec)

Definition at line 111 of file neuronapi.cpp.

◆ nrn_section_Ra_set()

void nrn_section_Ra_set ( Section sec,
double  val 
)

Definition at line 115 of file neuronapi.cpp.

◆ nrn_section_rallbranch_get()

double nrn_section_rallbranch_get ( const Section sec)

Definition at line 123 of file neuronapi.cpp.

◆ nrn_section_rallbranch_set()

void nrn_section_rallbranch_set ( Section sec,
double  val 
)

Definition at line 127 of file neuronapi.cpp.

◆ nrn_section_ref()

void nrn_section_ref ( Section sec)

Definition at line 158 of file neuronapi.cpp.

◆ nrn_section_unref()

void nrn_section_unref ( Section sec)

Definition at line 162 of file neuronapi.cpp.

◆ nrn_sectionlist_data()

nrn_Item* nrn_sectionlist_data ( const Object obj)

Definition at line 223 of file neuronapi.cpp.

◆ nrn_sectionlist_iterator_done()

int nrn_sectionlist_iterator_done ( SectionListIterator sl)

Definition at line 544 of file neuronapi.cpp.

◆ nrn_sectionlist_iterator_free()

void nrn_sectionlist_iterator_free ( SectionListIterator sl)

Definition at line 536 of file neuronapi.cpp.

◆ nrn_sectionlist_iterator_new()

SectionListIterator* nrn_sectionlist_iterator_new ( nrn_Item my_sectionlist)

Definition at line 532 of file neuronapi.cpp.

◆ nrn_sectionlist_iterator_next()

Section* nrn_sectionlist_iterator_next ( SectionListIterator sl)

Definition at line 540 of file neuronapi.cpp.

◆ nrn_segment_diam_get()

double nrn_segment_diam_get ( Section sec,
double  x 
)

Definition at line 197 of file neuronapi.cpp.

◆ nrn_segment_diam_set()

void nrn_segment_diam_set ( Section sec,
double  x,
double  diam 
)

Definition at line 184 of file neuronapi.cpp.

◆ nrn_stack_type()

nrn_stack_types_t nrn_stack_type ( void  )

Definition at line 303 of file neuronapi.cpp.

◆ nrn_stack_type_name()

char const* nrn_stack_type_name ( nrn_stack_types_t  id)

Definition at line 323 of file neuronapi.cpp.

◆ nrn_stdout_redirect()

void nrn_stdout_redirect ( int(*)(int, char *)  myprint)

Definition at line 64 of file neuronapi.cpp.

◆ nrn_str_pop()

char** nrn_str_pop ( void  )

Definition at line 278 of file neuronapi.cpp.

◆ nrn_str_push()

void nrn_str_push ( char **  str)

Definition at line 274 of file neuronapi.cpp.

◆ nrn_symbol()

Symbol* nrn_symbol ( const char *  name)

Definition at line 232 of file neuronapi.cpp.

◆ nrn_symbol_array_length()

int nrn_symbol_array_length ( const Symbol sym)

Definition at line 669 of file neuronapi.cpp.

◆ nrn_symbol_dataptr()

double* nrn_symbol_dataptr ( const Symbol sym)

Definition at line 246 of file neuronapi.cpp.

◆ nrn_symbol_is_array()

bool nrn_symbol_is_array ( const Symbol sym)

Definition at line 250 of file neuronapi.cpp.

◆ nrn_symbol_name()

char const* nrn_symbol_name ( const Symbol sym)

Definition at line 651 of file neuronapi.cpp.

◆ nrn_symbol_push()

void nrn_symbol_push ( Symbol sym)

Definition at line 254 of file neuronapi.cpp.

◆ nrn_symbol_subtype()

int nrn_symbol_subtype ( const Symbol sym)

Definition at line 242 of file neuronapi.cpp.

◆ nrn_symbol_table()

Symlist* nrn_symbol_table ( const Symbol sym)

Definition at line 655 of file neuronapi.cpp.

◆ nrn_symbol_table_iterator_done()

int nrn_symbol_table_iterator_done ( SymbolTableIterator st)

Definition at line 560 of file neuronapi.cpp.

◆ nrn_symbol_table_iterator_free()

void nrn_symbol_table_iterator_free ( SymbolTableIterator st)

Definition at line 552 of file neuronapi.cpp.

◆ nrn_symbol_table_iterator_new()

SymbolTableIterator* nrn_symbol_table_iterator_new ( Symlist my_symbol_table)

Definition at line 548 of file neuronapi.cpp.

◆ nrn_symbol_table_iterator_next()

Symbol* nrn_symbol_table_iterator_next ( SymbolTableIterator st)

Definition at line 556 of file neuronapi.cpp.

◆ nrn_symbol_type()

int nrn_symbol_type ( const Symbol sym)

Definition at line 236 of file neuronapi.cpp.

◆ nrn_top_level_symbol_table()

Symlist* nrn_top_level_symbol_table ( void  )

Definition at line 665 of file neuronapi.cpp.

◆ nrn_vector_capacity()

int nrn_vector_capacity ( const Object vec)

Definition at line 564 of file neuronapi.cpp.

◆ nrn_vector_data()

double* nrn_vector_data ( Object vec)

Definition at line 569 of file neuronapi.cpp.