1 #include <../../nrnconf.h>
45 extern double chkarg(
int,
double,
double);
51 static double efun(
double*,
long int);
91 double minerrsav, *minargsav, maxstepsizesav, tolerancesav;
92 long int printmodesav;
94 Object *efun_py_save, *efun_py_arg_save;
95 void* vec_py_save_save;
99 double minerr_, *minarg_;
102 Object *efun_py_, *efun_py_arg_;
125 nvar_ = (int)
chkarg(1, 0., 1e6);
127 if (!efun_sym_ || (efun_sym_->
type !=
FUNCTION && efun_sym_->
type != FUN_BLTIN)) {
141 minarg_ = (
double*)
ecalloc(nvar_,
sizeof(
double));
144 hoc_execerror(
"call attr_praxis first to set attributes", 0);
151 after_quad = (
char*) 0;
199 for (
i = 0;
i < nvar_; ++
i) {
238 p1 = praxis_paxis(
i);
253 static double efun(
double*
v,
long int n) {
258 for (
i = 0;
i <
n; ++
i) {
262 for (
i = 0;
i <
n; ++
i) {
272 for (
i = 0;
i <
n; ++
i) {
int hoc_is_object_arg(int narg)
double hoc_call_func(Symbol *s, int narg)
void vector_resize(IvocVect *v, int n)
void hoc_pushpx(double *d)
void hoc_retpushx(double x)
IvocVect * vector_arg(int i)
void hoc_obj_ref(Object *obj)
Object ** vector_pobj(IvocVect *v)
double * hoc_pgetarg(int narg)
Symbol * hoc_lookup(const char *)
int hoc_is_pdouble_arg(int narg)
void hoc_obj_unref(Object *obj)
Object ** hoc_objgetarg(int)
static long int printmode
double chkarg(int, double, double)
static Object * efun_py_arg
void hoc_after_prax_quad(char *s)
void vector_delete(IvocVect *vec)
static double efun(double *, long int)
IvocVect * vector_new2(IvocVect *vec)
static double maxstepsize
static Symbol * hoc_efun_sym
static void * vec_py_save
int hoc_obj_run(const char *, Object *)
double * vector_vec(IvocVect *v)
void hoc_execerror(const char *s1, const char *s2)
void * ecalloc(size_t n, size_t size)
int vector_capacity(IvocVect *v)
impl_ptrs methods
Collection of pointers to functions with python-version-specific implementations.
int const size_t const size_t n
static double praxis_efun(Object *ho, Object *v)
double(* praxis_efun)(Object *pycallable, Object *hvec)