NEURON
ivocvect.cpp File Reference
#include <../../nrnconf.h>
#include "code.h"
#include <algorithm>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <cerrno>
#include <numeric>
#include <functional>
#include <string>
#include "fourier.h"
#include "mymath.h"
#include "classreg.h"
#include "gui-redirect.h"
#include "utils/logger.hpp"
#include "ivocvect.h"
#include "Rand.hpp"
#include <Uniform.h>
#include "oc2iv.h"
#include "oc_ansi.h"
#include "ocfile.h"
#include "ocfunc.h"
#include "parse.hpp"

Go to the source code of this file.

Classes

struct  SortIndex
 

Macros

#define M_PI   3.14159265358979323846
 
#define PI   M_PI
 
#define FWrite(arg1, arg2, arg3, arg4)
 
#define FRead(arg1, arg2, arg3, arg4)
 
#define BYTEHEADER
 
#define BYTESWAP(_X__, _TYPE__)
 
#define MAX_FIT_PARAMS   20
 
#define TWO_BYTE_HIGH   65535.
 
#define ONE_BYTE_HIGH   255.
 
#define ONE_BYTE_HALF   128.
 
#define EPSILON   1e-9
 
#define PUBLIC_TYPE   1
 
#define SIMPLEX_MAXN   1e+300
 
#define SIMPLEX_INORM   1.2
 
#define SIMPLEX_ALPHA   2.0
 
#define SIMPLEX_BETA   1.4
 
#define SIMPLEX_GAMMA   0.7
 
#define SIMPLEX_DELTA   0.3
 

Functions

static int narg ()
 
int cmpfcn (double a, double b)
 
int vector_arg_px (int, double **)
 
static const char ** v_label (void *v)
 
static void same_err (const char *s, Vect *x, Vect *y)
 
static void * v_cons (Object *o)
 
static void v_destruct (void *v)
 
void vector_delete (Vect *v)
 
IvocVectvector_arg (int i)
 
int vector_buffer_size (IvocVect *v)
 
int vector_buffer_size (void *v)
 
int vector_capacity (IvocVect *v)
 
int vector_capacity (void *v)
 
IvocVectvector_new (int n, Object *o)
 
IvocVectvector_new0 ()
 
IvocVectvector_new1 (int n)
 
IvocVectvector_new2 (IvocVect *v)
 
Object ** vector_pobj (IvocVect *v)
 
Object ** vector_pobj (void *v)
 
void vector_resize (IvocVect *v, int n)
 
void vector_resize (void *v, int n)
 
double * vector_vec (IvocVect *v)
 
double * vector_vec (void *v)
 
Object ** vector_temp_objvar (Vect *v)
 
char * vector_get_label (Vect *v)
 
void vector_set_label (Vect *v, char *s)
 
void vector_append (Vect *v, double x)
 
void install_vector_method (const char *name, double(*f)(void *))
 
int vector_instance_px (void *v, double **px)
 
int is_vector_arg (int i)
 
Object ** new_vect (Vect *v, ssize_t delta, ssize_t start, ssize_t step)
 
void nrn_vecsim_add (void *, bool)
 
void nrn_vecsim_remove (void *)
 
static int possible_destvec (int arg, Vect *&dest)
 
static double v_play_remove (void *v)
 
static double v_fwrite (void *v)
 
static double v_fread (void *v)
 
static double v_vwrite (void *v)
 
static double v_vread (void *v)
 
static double v_printf (void *v)
 
static double v_scanf (void *v)
 
static double v_scantil (void *v)
 
static Object ** v_record (void *v)
 
static Object ** v_play (void *v)
 
static Object ** v_plot (void *v)
 
static Object ** v_ploterr (void *v)
 
static Object ** v_line (void *v)
 
static Object ** v_mark (void *v)
 
static Object ** v_histogram (void *v)
 
static Object ** v_hist (void *v)
 
static Object ** v_sumgauss (void *v)
 
static Object ** v_smhist (void *v)
 
static Object ** v_ind (void *v)
 
static double v_size (void *v)
 
static double v_buffer_size (void *v)
 
static Object ** v_resize (void *v)
 
static Object ** v_clear (void *v)
 
static double v_get (void *v)
 
static Object ** v_set (void *v)
 
static Object ** v_append (void *v)
 
static Object ** v_insert (void *v)
 
static Object ** v_remove (void *v)
 
static double v_contains (void *v)
 
static Object ** v_copy (void *v)
 
static Object ** v_at (void *v)
 
static int sort_index_cmp (const void *a, const void *b)
 
static Object ** v_sortindex (void *v)
 
static Object ** v_c (void *v)
 
static Object ** v_cl (void *v)
 
static Object ** v_interpolate (void *v)
 
static int possible_srcvec (Vect *&src, Vect *dest, int &flag)
 
static Object ** v_where (void *v)
 
static double v_indwhere (void *v)
 
static Object ** v_indvwhere (void *v)
 
static Object ** v_fill (void *v)
 
static Object ** v_indgen (void *v)
 
static Object ** v_addrand (void *v)
 
static Object ** v_setrand (void *v)
 
static Object ** v_apply (void *v)
 
static double v_reduce (void *v)
 
static double v_min (void *v)
 
static double v_min_ind (void *v)
 
static double v_max (void *v)
 
static double v_max_ind (void *v)
 
static double v_sum (void *v)
 
static double v_sumsq (void *v)
 
static double v_mean (void *v)
 
static double v_var (void *v)
 
static double v_stdev (void *v)
 
static double v_stderr (void *v)
 
static double v_meansqerr (void *v1)
 
static double v_dot (void *v1)
 
static double v_mag (void *v1)
 
static Object ** v_from_double (void *v)
 
static Object ** v_add (void *v1)
 
static Object ** v_sub (void *v1)
 
static Object ** v_mul (void *v1)
 
static Object ** v_div (void *v1)
 
static double v_scale (void *v1)
 
static double v_eq (void *v1)
 
static double eval (double *p, int n, Vect *x, Vect *y, char *fcn)
 
static double eval_error (double *p, int n, Vect *x, Vect *y, char *fcn)
 
static double simplex (double *p, int n, Vect *x, Vect *y, char *fcn)
 
double call_simplex (double *p, int n, Vect *x, Vect *y, char *fcn, int trial)
 
static double v_fit (void *v)
 
static Object ** v_correl (void *v)
 
static Object ** v_convlv (void *v)
 
static Object ** v_spctrm (void *v)
 
static Object ** v_filter (void *v)
 
static Object ** v_fft (void *v)
 
static Object ** v_spikebin (void *v)
 
static Object ** v_rotate (void *v)
 
static Object ** v_deriv (void *v)
 
static Object ** v_integral (void *v)
 
static double v_trigavg (void *v)
 
static Object ** v_medfltr (void *v)
 
static double v_median (void *v)
 
static Object ** v_sort (void *v)
 
static Object ** v_reverse (void *v)
 
static Object ** v_sin (void *v)
 
static Object ** v_log (void *v)
 
static Object ** v_log10 (void *v)
 
static Object ** v_rebin (void *v)
 
static Object ** v_resample (void *v)
 
static Object ** v_psth (void *v)
 
static Object ** v_inf (void *x)
 
static Object ** v_pow (void *v)
 
static Object ** v_sqrt (void *v)
 
static Object ** v_abs (void *v)
 
static Object ** v_floor (void *v)
 
static Object ** v_tanh (void *v)
 
static Object ** v_index (void *v)
 
Object ** v_from_python (void *v)
 
Object ** v_to_python (void *v)
 
Object ** v_as_numpy (void *v)
 
int hoc_araypt (Symbol *, int)
 
int ivoc_vector_size (Object *o)
 
double * ivoc_vector_ptr (Object *o, int index)
 
static void steer_x (void *v)
 
void Vector_reg ()
 
int nrn_mlh_gsort (double *vec, int *base_ptr, int total_elems, int(*cmp)(double, double))
 

Variables

static double dmaxint_ = 9007199254740992
 As all parameters are passed from hoc as double, we need to calculate max integer that can fit into double variable. More...
 
Objecthoc_thisobject
 
Symlisthoc_top_level_symlist
 
IvocVect *(* nrnpy_vec_from_python_p_ )(void *)
 
Object **(* nrnpy_vec_to_python_p_ )(void *)
 
Object **(* nrnpy_vec_as_numpy_helper_ )(int, double *)
 
double(* nrnpy_call_func )(Object *, double)
 
static const char * nullstr = ""
 
static Symbolsvec_
 
static double splx_evl_
 
static int renew_
 
static Member_func v_members []
 
static Member_ret_obj_func v_retobj_members []
 
static Member_ret_str_func v_retstr_members []
 

Macro Definition Documentation

◆ BYTEHEADER

#define BYTEHEADER
Value:
int _II__; \
char* _IN__; \
char _OUT__[16]; \
int BYTESWAP_FLAG = 0;

Definition at line 85 of file ivocvect.cpp.

◆ BYTESWAP

#define BYTESWAP (   _X__,
  _TYPE__ 
)
Value:
if (BYTESWAP_FLAG == 1) { \
_IN__ = (char*) &(_X__); \
for (_II__ = 0; _II__ < sizeof(_TYPE__); _II__++) { \
_OUT__[_II__] = _IN__[sizeof(_TYPE__) - _II__ - 1]; \
} \
(_X__) = *((_TYPE__*) &_OUT__); \
}

Definition at line 90 of file ivocvect.cpp.

◆ EPSILON

#define EPSILON   1e-9

Definition at line 134 of file ivocvect.cpp.

◆ FRead

#define FRead (   arg1,
  arg2,
  arg3,
  arg4 
)
Value:
if (fread(arg1, arg2, arg3, arg4) != arg3) { \
}

Definition at line 53 of file ivocvect.cpp.

◆ FWrite

#define FWrite (   arg1,
  arg2,
  arg3,
  arg4 
)
Value:
if (fwrite(arg1, arg2, arg3, arg4) != arg3) { \
}

Definition at line 50 of file ivocvect.cpp.

◆ M_PI

#define M_PI   3.14159265358979323846

Definition at line 46 of file ivocvect.cpp.

◆ MAX_FIT_PARAMS

#define MAX_FIT_PARAMS   20

Definition at line 128 of file ivocvect.cpp.

◆ ONE_BYTE_HALF

#define ONE_BYTE_HALF   128.

Definition at line 132 of file ivocvect.cpp.

◆ ONE_BYTE_HIGH

#define ONE_BYTE_HIGH   255.

Definition at line 131 of file ivocvect.cpp.

◆ PI

#define PI   M_PI

Definition at line 48 of file ivocvect.cpp.

◆ PUBLIC_TYPE

#define PUBLIC_TYPE   1

◆ SIMPLEX_ALPHA

#define SIMPLEX_ALPHA   2.0

Definition at line 2467 of file ivocvect.cpp.

◆ SIMPLEX_BETA

#define SIMPLEX_BETA   1.4

Definition at line 2468 of file ivocvect.cpp.

◆ SIMPLEX_DELTA

#define SIMPLEX_DELTA   0.3

Definition at line 2470 of file ivocvect.cpp.

◆ SIMPLEX_GAMMA

#define SIMPLEX_GAMMA   0.7

Definition at line 2469 of file ivocvect.cpp.

◆ SIMPLEX_INORM

#define SIMPLEX_INORM   1.2

Definition at line 2459 of file ivocvect.cpp.

◆ SIMPLEX_MAXN

#define SIMPLEX_MAXN   1e+300

Definition at line 2458 of file ivocvect.cpp.

◆ TWO_BYTE_HIGH

#define TWO_BYTE_HIGH   65535.

Definition at line 130 of file ivocvect.cpp.

Function Documentation

◆ call_simplex()

double call_simplex ( double *  p,
int  n,
Vect x,
Vect y,
char *  fcn,
int  trial 
)

Definition at line 2715 of file ivocvect.cpp.

◆ cmpfcn()

int cmpfcn ( double  a,
double  b 
)

Definition at line 137 of file ivocvect.cpp.

◆ eval()

static double eval ( double *  p,
int  n,
Vect x,
Vect y,
char *  fcn 
)
static

Definition at line 2483 of file ivocvect.cpp.

◆ eval_error()

static double eval_error ( double *  p,
int  n,
Vect x,
Vect y,
char *  fcn 
)
static

Definition at line 2562 of file ivocvect.cpp.

◆ hoc_araypt()

int hoc_araypt ( Symbol sp,
int  type 
)

Definition at line 2340 of file code.cpp.

◆ ivoc_vector_ptr()

double* ivoc_vector_ptr ( Object o,
int  index 
)

Definition at line 3843 of file ivocvect.cpp.

◆ ivoc_vector_size()

int ivoc_vector_size ( Object o)

Definition at line 3838 of file ivocvect.cpp.

◆ narg()

static int narg ( )
static

Definition at line 121 of file ivocvect.cpp.

◆ new_vect()

Object** new_vect ( Vect v,
ssize_t  delta,
ssize_t  start,
ssize_t  step 
)

Definition at line 386 of file ivocvect.cpp.

◆ nrn_vecsim_add()

void nrn_vecsim_add ( void *  v,
bool  record 
)

Definition at line 28 of file vrecord.cpp.

◆ nrn_vecsim_remove()

void nrn_vecsim_remove ( void *  v)

Definition at line 21 of file vrecord.cpp.

◆ possible_destvec()

static int possible_destvec ( int  arg,
Vect *&  dest 
)
static

Definition at line 405 of file ivocvect.cpp.

◆ possible_srcvec()

static int possible_srcvec ( Vect *&  src,
Vect dest,
int &  flag 
)
static

Definition at line 1676 of file ivocvect.cpp.

◆ same_err()

static void same_err ( const char *  s,
Vect x,
Vect y 
)
static

Definition at line 199 of file ivocvect.cpp.

◆ simplex()

static double simplex ( double *  p,
int  n,
Vect x,
Vect y,
char *  fcn 
)
static

Definition at line 2579 of file ivocvect.cpp.

◆ sort_index_cmp()

static int sort_index_cmp ( const void *  a,
const void *  b 
)
static

Definition at line 1584 of file ivocvect.cpp.

◆ steer_x()

static void steer_x ( void *  v)
static

Definition at line 3849 of file ivocvect.cpp.

◆ v_abs()

static Object** v_abs ( void *  v)
static

Definition at line 3588 of file ivocvect.cpp.

◆ v_add()

static Object** v_add ( void *  v1)
static

Definition at line 2316 of file ivocvect.cpp.

◆ v_addrand()

static Object** v_addrand ( void *  v)
static

Definition at line 2002 of file ivocvect.cpp.

◆ v_append()

static Object** v_append ( void *  v)
static

Definition at line 1399 of file ivocvect.cpp.

◆ v_apply()

static Object** v_apply ( void *  v)
static

Definition at line 2037 of file ivocvect.cpp.

◆ v_as_numpy()

Object** v_as_numpy ( void *  v)

Definition at line 3702 of file ivocvect.cpp.

◆ v_at()

static Object** v_at ( void *  v)
static

Definition at line 1563 of file ivocvect.cpp.

◆ v_buffer_size()

static double v_buffer_size ( void *  v)
static

Definition at line 1357 of file ivocvect.cpp.

◆ v_c()

static Object** v_c ( void *  v)
static

Definition at line 1620 of file ivocvect.cpp.

◆ v_cl()

static Object** v_cl ( void *  v)
static

Definition at line 1624 of file ivocvect.cpp.

◆ v_clear()

static Object** v_clear ( void *  v)
static

Definition at line 1381 of file ivocvect.cpp.

◆ v_cons()

static void* v_cons ( Object o)
static

Definition at line 231 of file ivocvect.cpp.

◆ v_contains()

static double v_contains ( void *  v)
static

Definition at line 1470 of file ivocvect.cpp.

◆ v_convlv()

static Object** v_convlv ( void *  v)
static

Definition at line 2874 of file ivocvect.cpp.

◆ v_copy()

static Object** v_copy ( void *  v)
static

Definition at line 1482 of file ivocvect.cpp.

◆ v_correl()

static Object** v_correl ( void *  v)
static

Definition at line 2828 of file ivocvect.cpp.

◆ v_deriv()

static Object** v_deriv ( void *  v)
static

Definition at line 3151 of file ivocvect.cpp.

◆ v_destruct()

static void v_destruct ( void *  v)
static

Definition at line 254 of file ivocvect.cpp.

◆ v_div()

static Object** v_div ( void *  v1)
static

Definition at line 2366 of file ivocvect.cpp.

◆ v_dot()

static double v_dot ( void *  v1)
static

Definition at line 2293 of file ivocvect.cpp.

◆ v_eq()

static double v_eq ( void *  v1)
static

Definition at line 2409 of file ivocvect.cpp.

◆ v_fft()

static Object** v_fft ( void *  v)
static

Definition at line 3021 of file ivocvect.cpp.

◆ v_fill()

static Object** v_fill ( void *  v)
static

Definition at line 1953 of file ivocvect.cpp.

◆ v_filter()

static Object** v_filter ( void *  v)
static

Definition at line 2969 of file ivocvect.cpp.

◆ v_fit()

static double v_fit ( void *  v)
static

Definition at line 2738 of file ivocvect.cpp.

◆ v_floor()

static Object** v_floor ( void *  v)
static

Definition at line 3608 of file ivocvect.cpp.

◆ v_fread()

static double v_fread ( void *  v)
static

Definition at line 446 of file ivocvect.cpp.

◆ v_from_double()

static Object** v_from_double ( void *  v)
static

Definition at line 2304 of file ivocvect.cpp.

◆ v_from_python()

Object** v_from_python ( void *  v)

Definition at line 3687 of file ivocvect.cpp.

◆ v_fwrite()

static double v_fwrite ( void *  v)
static

Definition at line 420 of file ivocvect.cpp.

◆ v_get()

static double v_get ( void *  v)
static

Definition at line 1387 of file ivocvect.cpp.

◆ v_hist()

static Object** v_hist ( void *  v)
static

Definition at line 1181 of file ivocvect.cpp.

◆ v_histogram()

static Object** v_histogram ( void *  v)
static

Definition at line 1154 of file ivocvect.cpp.

◆ v_ind()

static Object** v_ind ( void *  v)
static

Definition at line 1330 of file ivocvect.cpp.

◆ v_index()

static Object** v_index ( void *  v)
static

Definition at line 3648 of file ivocvect.cpp.

◆ v_indgen()

static Object** v_indgen ( void *  v)
static

Definition at line 1965 of file ivocvect.cpp.

◆ v_indvwhere()

static Object** v_indvwhere ( void *  v)
static

Definition at line 1864 of file ivocvect.cpp.

◆ v_indwhere()

static double v_indwhere ( void *  v)
static

Definition at line 1780 of file ivocvect.cpp.

◆ v_inf()

static Object** v_inf ( void *  x)
static

Definition at line 3479 of file ivocvect.cpp.

◆ v_insert()

static Object** v_insert ( void *  v)
static

Definition at line 1416 of file ivocvect.cpp.

◆ v_integral()

static Object** v_integral ( void *  v)
static

Definition at line 3198 of file ivocvect.cpp.

◆ v_interpolate()

static Object** v_interpolate ( void *  v)
static

Definition at line 1630 of file ivocvect.cpp.

◆ v_label()

static const char** v_label ( void *  v)
static

Definition at line 188 of file ivocvect.cpp.

◆ v_line()

static Object** v_line ( void *  v)
static

Definition at line 1053 of file ivocvect.cpp.

◆ v_log()

static Object** v_log ( void *  v)
static

Definition at line 3356 of file ivocvect.cpp.

◆ v_log10()

static Object** v_log10 ( void *  v)
static

Definition at line 3376 of file ivocvect.cpp.

◆ v_mag()

static double v_mag ( void *  v1)
static

Definition at line 2299 of file ivocvect.cpp.

◆ v_mark()

static Object** v_mark ( void *  v)
static

Definition at line 1104 of file ivocvect.cpp.

◆ v_max()

static double v_max ( void *  v)
static

Definition at line 2132 of file ivocvect.cpp.

◆ v_max_ind()

static double v_max_ind ( void *  v)
static

Definition at line 2147 of file ivocvect.cpp.

◆ v_mean()

static double v_mean ( void *  v)
static

Definition at line 2187 of file ivocvect.cpp.

◆ v_meansqerr()

static double v_meansqerr ( void *  v1)
static

Definition at line 2261 of file ivocvect.cpp.

◆ v_medfltr()

static Object** v_medfltr ( void *  v)
static

Definition at line 3262 of file ivocvect.cpp.

◆ v_median()

static double v_median ( void *  v)
static

Definition at line 3301 of file ivocvect.cpp.

◆ v_min()

static double v_min ( void *  v)
static

Definition at line 2101 of file ivocvect.cpp.

◆ v_min_ind()

static double v_min_ind ( void *  v)
static

Definition at line 2116 of file ivocvect.cpp.

◆ v_mul()

static Object** v_mul ( void *  v1)
static

Definition at line 2349 of file ivocvect.cpp.

◆ v_play()

static Object** v_play ( void *  v)
static

Definition at line 933 of file ivocvect.cpp.

◆ v_play_remove()

static double v_play_remove ( void *  v)
static

Definition at line 415 of file ivocvect.cpp.

◆ v_plot()

static Object** v_plot ( void *  v)
static

Definition at line 940 of file ivocvect.cpp.

◆ v_ploterr()

static Object** v_ploterr ( void *  v)
static

Definition at line 1008 of file ivocvect.cpp.

◆ v_pow()

static Object** v_pow ( void *  v)
static

Definition at line 3519 of file ivocvect.cpp.

◆ v_printf()

static double v_printf ( void *  v)
static

Definition at line 755 of file ivocvect.cpp.

◆ v_psth()

static Object** v_psth ( void *  v)
static

Definition at line 3442 of file ivocvect.cpp.

◆ v_rebin()

static Object** v_rebin ( void *  v)
static

Definition at line 3396 of file ivocvect.cpp.

◆ v_record()

static Object** v_record ( void *  v)
static

Definition at line 922 of file ivocvect.cpp.

◆ v_reduce()

static double v_reduce ( void *  v)
static

Definition at line 2076 of file ivocvect.cpp.

◆ v_remove()

static Object** v_remove ( void *  v)
static

Definition at line 1453 of file ivocvect.cpp.

◆ v_resample()

static Object** v_resample ( void *  v)
static

Definition at line 3422 of file ivocvect.cpp.

◆ v_resize()

static Object** v_resize ( void *  v)
static

Definition at line 1375 of file ivocvect.cpp.

◆ v_reverse()

static Object** v_reverse ( void *  v)
static

Definition at line 3331 of file ivocvect.cpp.

◆ v_rotate()

static Object** v_rotate ( void *  v)
static

Definition at line 3099 of file ivocvect.cpp.

◆ v_scale()

static double v_scale ( void *  v1)
static

Definition at line 2386 of file ivocvect.cpp.

◆ v_scanf()

static double v_scanf ( void *  v)
static

Definition at line 806 of file ivocvect.cpp.

◆ v_scantil()

static double v_scantil ( void *  v)
static

Definition at line 870 of file ivocvect.cpp.

◆ v_set()

static Object** v_set ( void *  v)
static

Definition at line 1392 of file ivocvect.cpp.

◆ v_setrand()

static Object** v_setrand ( void *  v)
static

Definition at line 2019 of file ivocvect.cpp.

◆ v_sin()

static Object** v_sin ( void *  v)
static

Definition at line 3338 of file ivocvect.cpp.

◆ v_size()

static double v_size ( void *  v)
static

Definition at line 1351 of file ivocvect.cpp.

◆ v_smhist()

static Object** v_smhist ( void *  v)
static

Definition at line 1248 of file ivocvect.cpp.

◆ v_sort()

static Object** v_sort ( void *  v)
static

Definition at line 3325 of file ivocvect.cpp.

◆ v_sortindex()

static Object** v_sortindex ( void *  v)
static

Definition at line 1594 of file ivocvect.cpp.

◆ v_spctrm()

static Object** v_spctrm ( void *  v)
static

Definition at line 2931 of file ivocvect.cpp.

◆ v_spikebin()

static Object** v_spikebin ( void *  v)
static

Definition at line 3064 of file ivocvect.cpp.

◆ v_sqrt()

static Object** v_sqrt ( void *  v)
static

Definition at line 3568 of file ivocvect.cpp.

◆ v_stderr()

static double v_stderr ( void *  v)
static

Definition at line 2243 of file ivocvect.cpp.

◆ v_stdev()

static double v_stdev ( void *  v)
static

Definition at line 2225 of file ivocvect.cpp.

◆ v_sub()

static Object** v_sub ( void *  v1)
static

Definition at line 2333 of file ivocvect.cpp.

◆ v_sum()

static double v_sum ( void *  v)
static

Definition at line 2163 of file ivocvect.cpp.

◆ v_sumgauss()

static Object** v_sumgauss ( void *  v)
static

Definition at line 1209 of file ivocvect.cpp.

◆ v_sumsq()

static double v_sumsq ( void *  v)
static

Definition at line 2175 of file ivocvect.cpp.

◆ v_tanh()

static Object** v_tanh ( void *  v)
static

Definition at line 3628 of file ivocvect.cpp.

◆ v_to_python()

Object** v_to_python ( void *  v)

Definition at line 3695 of file ivocvect.cpp.

◆ v_trigavg()

static double v_trigavg ( void *  v)
static

Definition at line 3225 of file ivocvect.cpp.

◆ v_var()

static double v_var ( void *  v)
static

Definition at line 2207 of file ivocvect.cpp.

◆ v_vread()

static double v_vread ( void *  v)
static

Definition at line 641 of file ivocvect.cpp.

◆ v_vwrite()

static double v_vwrite ( void *  v)
static

Definition at line 521 of file ivocvect.cpp.

◆ v_where()

static Object** v_where ( void *  v)
static

Definition at line 1688 of file ivocvect.cpp.

◆ Vector_reg()

void Vector_reg ( )

Definition at line 3859 of file ivocvect.cpp.

Variable Documentation

◆ dmaxint_

double dmaxint_ = 9007199254740992
static

As all parameters are passed from hoc as double, we need to calculate max integer that can fit into double variable.

With IEEE 64-bit double has 52 bits of mantissa, so it's 2^53. calculating it with approach while (dbl + 1 != dbl) dbl++; has issues with SSE and other 32 bits platform. So we are using direct value here.

The maximum mantissa 0xFFFFFFFFFFFFF which is 52 bits all 1. In Python it's:

(2.**53).hex()

'0x1.0000000000000p+53'

(2.**53)

9007199254740992.0

See https://stackoverflow.com/questions/1848700/biggest-integer-that-can-be-stored-in-a-double

Definition at line 76 of file ivocvect.cpp.

◆ hoc_thisobject

Object* hoc_thisobject
extern

Definition at line 121 of file hoc_oop.cpp.

◆ hoc_top_level_symlist

Symlist * hoc_top_level_symlist
extern

Definition at line 677 of file code2.cpp.

◆ nrnpy_call_func

double(* nrnpy_call_func) (Object *, double) ( Object ,
double   
)

Definition at line 119 of file ivocvect.cpp.

◆ nrnpy_vec_as_numpy_helper_

Object**(* nrnpy_vec_as_numpy_helper_) (int, double *) ( int  ,
double *   
)

Definition at line 118 of file ivocvect.cpp.

◆ nrnpy_vec_from_python_p_

IvocVect*(* nrnpy_vec_from_python_p_) (void *) ( void *  )

Definition at line 116 of file ivocvect.cpp.

◆ nrnpy_vec_to_python_p_

Object**(* nrnpy_vec_to_python_p_) (void *) ( void *  )

Definition at line 117 of file ivocvect.cpp.

◆ nullstr

const char* nullstr = ""
static

Definition at line 186 of file ivocvect.cpp.

◆ renew_

int renew_
static

Definition at line 2480 of file ivocvect.cpp.

◆ splx_evl_

double splx_evl_
static

Definition at line 2479 of file ivocvect.cpp.

◆ svec_

Symbol* svec_
static

Definition at line 258 of file ivocvect.cpp.

◆ v_members

Member_func v_members[]
static

Definition at line 3713 of file ivocvect.cpp.

◆ v_retobj_members

Member_ret_obj_func v_retobj_members[]
static

Definition at line 3756 of file ivocvect.cpp.

◆ v_retstr_members

Member_ret_str_func v_retstr_members[]
static
Initial value:
= {{"label", v_label},
{nullptr, nullptr}}
static const char ** v_label(void *v)
Definition: ivocvect.cpp:188

Definition at line 3832 of file ivocvect.cpp.