1 #include <../../nrnconf.h> 35 }
else if (x >= ta->
argvec[t1]) {
63 }
else if (x >= ta->
max) {
71 ta->
frac = x1 - (double)j;
81 return (1. - frac)*tab[
j] + frac*tab[j+1];
90 return (1. - frac)*x1 + frac*x2;
102 hoc_execerror(
"table not specified in hoc_func_table", (
char*)0);
106 for (i=0; i <
n; ++
i) {
119 y1 =
inter(fy, tab, j);
125 y2 =
inter(fy, tab, j1);
157 for (i=0; i <
n; ++
i) {
168 hoc_execerror(
"Vector arguments allowed only for functions",
"of one variable");
172 if (ns != ta[0].
nsize) {
176 for (i = 0; i <
n; ++
i) {
178 if (ta[i].
nsize < 1) {
184 if (ta[i].
max < ta[i].
min) {
void * ecalloc(size_t n, size_t size)
struct FuncTable FuncTable
int hoc_is_double_arg(int narg)
static int arg_index(TableArg *ta, double x)
static double interp(double frac, double x1, double x2)
double * hoc_pgetarg(int narg)
double hoc_func_table(void *vpft, int n, double *args)
int const size_t const size_t n
void hoc_execerror(const char *, const char *)
void hoc_spec_table(void **vppt, int n)
static double inter(double frac, double *tab, int j)
int hoc_is_object_arg(int narg)
int vector_arg_px(int, double **)