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)
 
int nrn_segment_node_index (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 233 of file neuronapi.cpp.

◆ nrn_cas()

Section* nrn_cas ( void  )

Definition at line 167 of file neuronapi.cpp.

◆ nrn_class_name()

char const* nrn_class_name ( const Object obj)

Definition at line 448 of file neuronapi.cpp.

◆ nrn_distance()

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

Definition at line 456 of file neuronapi.cpp.

◆ nrn_double_pop()

double nrn_double_pop ( void  )

Definition at line 288 of file neuronapi.cpp.

◆ nrn_double_ptr_pop()

double* nrn_double_ptr_pop ( void  )

Definition at line 296 of file neuronapi.cpp.

◆ nrn_double_ptr_push()

void nrn_double_ptr_push ( double *  addr)

Definition at line 292 of file neuronapi.cpp.

◆ nrn_double_push()

void nrn_double_push ( double  val)

Definition at line 284 of file neuronapi.cpp.

◆ nrn_function_call()

void nrn_function_call ( Symbol sym,
int  narg 
)

Definition at line 382 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 416 of file neuronapi.cpp.

◆ nrn_gargstr()

char* nrn_gargstr ( int  arg)

Definition at line 719 of file neuronapi.cpp.

◆ nrn_get_plotshape_high()

float nrn_get_plotshape_high ( ShapePlotInterface spi)

Definition at line 487 of file neuronapi.cpp.

◆ nrn_get_plotshape_interface()

ShapePlotInterface* nrn_get_plotshape_interface ( Object ps)

Definition at line 468 of file neuronapi.cpp.

◆ nrn_get_plotshape_low()

float nrn_get_plotshape_low ( ShapePlotInterface spi)

Definition at line 483 of file neuronapi.cpp.

◆ nrn_get_plotshape_section_list()

Object* nrn_get_plotshape_section_list ( ShapePlotInterface spi)

Definition at line 475 of file neuronapi.cpp.

◆ nrn_get_plotshape_varname()

const char* nrn_get_plotshape_varname ( ShapePlotInterface spi)

Definition at line 479 of file neuronapi.cpp.

◆ nrn_getarg()

double* nrn_getarg ( int  arg)

Definition at line 723 of file neuronapi.cpp.

◆ nrn_global_symbol_table()

Symlist* nrn_global_symbol_table ( void  )

Definition at line 687 of file neuronapi.cpp.

◆ nrn_hoc_call()

int nrn_hoc_call ( char const *  command)

Definition at line 494 of file neuronapi.cpp.

◆ nrn_hoc_ret()

void nrn_hoc_ret ( void  )

Definition at line 708 of file neuronapi.cpp.

◆ nrn_ifarg()

bool nrn_ifarg ( int  arg)

Definition at line 731 of file neuronapi.cpp.

◆ nrn_init()

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

Definition at line 58 of file neuronapi.cpp.

◆ nrn_int_pop()

int nrn_int_pop ( void  )

Definition at line 312 of file neuronapi.cpp.

◆ nrn_int_push()

void nrn_int_push ( int  i)

Definition at line 308 of file neuronapi.cpp.

◆ nrn_is_double_arg()

bool nrn_is_double_arg ( int  arg)

Definition at line 746 of file neuronapi.cpp.

◆ nrn_is_object_arg()

bool nrn_is_object_arg ( int  arg)

Definition at line 736 of file neuronapi.cpp.

◆ nrn_is_pdouble_arg()

bool nrn_is_pdouble_arg ( int  arg)

Definition at line 751 of file neuronapi.cpp.

◆ nrn_is_str_arg()

bool nrn_is_str_arg ( int  arg)

Definition at line 741 of file neuronapi.cpp.

◆ nrn_mechanism_insert()

void nrn_mechanism_insert ( Section sec,
const Symbol mechanism 
)

Definition at line 147 of file neuronapi.cpp.

◆ nrn_method_call()

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

Definition at line 378 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 388 of file neuronapi.cpp.

◆ nrn_method_symbol()

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

Definition at line 374 of file neuronapi.cpp.

◆ nrn_nseg_get()

int nrn_nseg_get ( const Section sec)

Definition at line 176 of file neuronapi.cpp.

◆ nrn_nseg_set()

void nrn_nseg_set ( Section sec,
int  nseg 
)

Definition at line 181 of file neuronapi.cpp.

◆ nrn_obj_file_arg()

FILE* nrn_obj_file_arg ( int  i)

Definition at line 727 of file neuronapi.cpp.

◆ nrn_object_new()

Object* nrn_object_new ( Symbol sym,
int  narg 
)

Definition at line 370 of file neuronapi.cpp.

◆ nrn_object_pop()

Object* nrn_object_pop ( void  )

Definition at line 320 of file neuronapi.cpp.

◆ nrn_object_push()

void nrn_object_push ( Object obj)

Definition at line 316 of file neuronapi.cpp.

◆ nrn_object_ref()

void nrn_object_ref ( Object obj)

Definition at line 440 of file neuronapi.cpp.

◆ nrn_object_unref()

void nrn_object_unref ( Object obj)

Definition at line 444 of file neuronapi.cpp.

◆ nrn_objgetarg()

Object** nrn_objgetarg ( int  arg)

Definition at line 715 of file neuronapi.cpp.

◆ nrn_prop_exists()

bool nrn_prop_exists ( const Object obj)

Definition at line 452 of file neuronapi.cpp.

◆ nrn_property_array_get()

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

Definition at line 613 of file neuronapi.cpp.

◆ nrn_property_array_push()

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

Definition at line 664 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 639 of file neuronapi.cpp.

◆ nrn_property_get()

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

Definition at line 600 of file neuronapi.cpp.

◆ nrn_property_push()

void nrn_property_push ( Object obj,
const char *  name 
)

Definition at line 652 of file neuronapi.cpp.

◆ nrn_property_set()

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

Definition at line 626 of file neuronapi.cpp.

◆ nrn_rangevar_get()

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

Definition at line 221 of file neuronapi.cpp.

◆ nrn_rangevar_push()

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

Definition at line 229 of file neuronapi.cpp.

◆ nrn_rangevar_set()

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

Definition at line 225 of file neuronapi.cpp.

◆ nrn_register_function()

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

Definition at line 700 of file neuronapi.cpp.

◆ nrn_secname()

char const* nrn_secname ( Section sec)

Definition at line 135 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 89 of file neuronapi.cpp.

◆ nrn_section_is_active()

bool nrn_section_is_active ( const Section sec)

Definition at line 152 of file neuronapi.cpp.

◆ nrn_section_length_get()

double nrn_section_length_get ( Section sec)

Definition at line 108 of file neuronapi.cpp.

◆ nrn_section_length_set()

void nrn_section_length_set ( Section sec,
double  length 
)

Definition at line 97 of file neuronapi.cpp.

◆ nrn_section_new()

Section* nrn_section_new ( const char *  name)

Definition at line 76 of file neuronapi.cpp.

◆ nrn_section_pop()

void nrn_section_pop ( void  )

Definition at line 143 of file neuronapi.cpp.

◆ nrn_section_push()

void nrn_section_push ( Section sec)

Definition at line 139 of file neuronapi.cpp.

◆ nrn_section_Ra_get()

double nrn_section_Ra_get ( Section sec)

Definition at line 112 of file neuronapi.cpp.

◆ nrn_section_Ra_set()

void nrn_section_Ra_set ( Section sec,
double  val 
)

Definition at line 116 of file neuronapi.cpp.

◆ nrn_section_rallbranch_get()

double nrn_section_rallbranch_get ( const Section sec)

Definition at line 124 of file neuronapi.cpp.

◆ nrn_section_rallbranch_set()

void nrn_section_rallbranch_set ( Section sec,
double  val 
)

Definition at line 128 of file neuronapi.cpp.

◆ nrn_section_ref()

void nrn_section_ref ( Section sec)

Definition at line 159 of file neuronapi.cpp.

◆ nrn_section_unref()

void nrn_section_unref ( Section sec)

Definition at line 163 of file neuronapi.cpp.

◆ nrn_sectionlist_data()

nrn_Item* nrn_sectionlist_data ( const Object obj)

Definition at line 237 of file neuronapi.cpp.

◆ nrn_sectionlist_iterator_done()

int nrn_sectionlist_iterator_done ( SectionListIterator sl)

Definition at line 570 of file neuronapi.cpp.

◆ nrn_sectionlist_iterator_free()

void nrn_sectionlist_iterator_free ( SectionListIterator sl)

Definition at line 562 of file neuronapi.cpp.

◆ nrn_sectionlist_iterator_new()

SectionListIterator* nrn_sectionlist_iterator_new ( nrn_Item my_sectionlist)

Definition at line 558 of file neuronapi.cpp.

◆ nrn_sectionlist_iterator_next()

Section* nrn_sectionlist_iterator_next ( SectionListIterator sl)

Definition at line 566 of file neuronapi.cpp.

◆ nrn_segment_diam_get()

double nrn_segment_diam_get ( Section sec,
double  x 
)

Definition at line 198 of file neuronapi.cpp.

◆ nrn_segment_diam_set()

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

Definition at line 185 of file neuronapi.cpp.

◆ nrn_segment_node_index()

int nrn_segment_node_index ( Section sec,
double  x 
)

Definition at line 214 of file neuronapi.cpp.

◆ nrn_stack_type()

nrn_stack_types_t nrn_stack_type ( void  )

Definition at line 329 of file neuronapi.cpp.

◆ nrn_stack_type_name()

char const* nrn_stack_type_name ( nrn_stack_types_t  id)

Definition at line 349 of file neuronapi.cpp.

◆ nrn_stdout_redirect()

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

Definition at line 65 of file neuronapi.cpp.

◆ nrn_str_pop()

char** nrn_str_pop ( void  )

Definition at line 304 of file neuronapi.cpp.

◆ nrn_str_push()

void nrn_str_push ( char **  str)

Definition at line 300 of file neuronapi.cpp.

◆ nrn_symbol()

Symbol* nrn_symbol ( const char *  name)

Definition at line 246 of file neuronapi.cpp.

◆ nrn_symbol_array_length()

int nrn_symbol_array_length ( const Symbol sym)

Definition at line 695 of file neuronapi.cpp.

◆ nrn_symbol_dataptr()

double* nrn_symbol_dataptr ( const Symbol sym)

Definition at line 260 of file neuronapi.cpp.

◆ nrn_symbol_is_array()

bool nrn_symbol_is_array ( const Symbol sym)

Definition at line 276 of file neuronapi.cpp.

◆ nrn_symbol_name()

char const* nrn_symbol_name ( const Symbol sym)

Definition at line 677 of file neuronapi.cpp.

◆ nrn_symbol_push()

void nrn_symbol_push ( Symbol sym)

Definition at line 280 of file neuronapi.cpp.

◆ nrn_symbol_subtype()

int nrn_symbol_subtype ( const Symbol sym)

Definition at line 256 of file neuronapi.cpp.

◆ nrn_symbol_table()

Symlist* nrn_symbol_table ( const Symbol sym)

Definition at line 681 of file neuronapi.cpp.

◆ nrn_symbol_table_iterator_done()

int nrn_symbol_table_iterator_done ( SymbolTableIterator st)

Definition at line 586 of file neuronapi.cpp.

◆ nrn_symbol_table_iterator_free()

void nrn_symbol_table_iterator_free ( SymbolTableIterator st)

Definition at line 578 of file neuronapi.cpp.

◆ nrn_symbol_table_iterator_new()

SymbolTableIterator* nrn_symbol_table_iterator_new ( Symlist my_symbol_table)

Definition at line 574 of file neuronapi.cpp.

◆ nrn_symbol_table_iterator_next()

Symbol* nrn_symbol_table_iterator_next ( SymbolTableIterator st)

Definition at line 582 of file neuronapi.cpp.

◆ nrn_symbol_type()

int nrn_symbol_type ( const Symbol sym)

Definition at line 250 of file neuronapi.cpp.

◆ nrn_top_level_symbol_table()

Symlist* nrn_top_level_symbol_table ( void  )

Definition at line 691 of file neuronapi.cpp.

◆ nrn_vector_capacity()

int nrn_vector_capacity ( const Object vec)

Definition at line 590 of file neuronapi.cpp.

◆ nrn_vector_data()

double* nrn_vector_data ( Object vec)

Definition at line 595 of file neuronapi.cpp.