![]() |
NEURON
|
#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) |
IvocVect * | vector_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) |
IvocVect * | vector_new (int n, Object *o) |
IvocVect * | vector_new0 () |
IvocVect * | vector_new1 (int n) |
IvocVect * | vector_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... | |
Object * | hoc_thisobject |
Symlist * | hoc_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 Symbol * | svec_ |
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 [] |
#define BYTEHEADER |
Definition at line 85 of file ivocvect.cpp.
#define BYTESWAP | ( | _X__, | |
_TYPE__ | |||
) |
Definition at line 90 of file ivocvect.cpp.
#define EPSILON 1e-9 |
Definition at line 134 of file ivocvect.cpp.
#define FRead | ( | arg1, | |
arg2, | |||
arg3, | |||
arg4 | |||
) |
Definition at line 53 of file ivocvect.cpp.
#define FWrite | ( | arg1, | |
arg2, | |||
arg3, | |||
arg4 | |||
) |
Definition at line 50 of file ivocvect.cpp.
#define M_PI 3.14159265358979323846 |
Definition at line 46 of file ivocvect.cpp.
#define MAX_FIT_PARAMS 20 |
Definition at line 128 of file ivocvect.cpp.
#define ONE_BYTE_HALF 128. |
Definition at line 132 of file ivocvect.cpp.
#define ONE_BYTE_HIGH 255. |
Definition at line 131 of file ivocvect.cpp.
#define PI M_PI |
Definition at line 48 of file ivocvect.cpp.
#define PUBLIC_TYPE 1 |
#define SIMPLEX_ALPHA 2.0 |
Definition at line 2467 of file ivocvect.cpp.
#define SIMPLEX_BETA 1.4 |
Definition at line 2468 of file ivocvect.cpp.
#define SIMPLEX_DELTA 0.3 |
Definition at line 2470 of file ivocvect.cpp.
#define SIMPLEX_GAMMA 0.7 |
Definition at line 2469 of file ivocvect.cpp.
#define SIMPLEX_INORM 1.2 |
Definition at line 2459 of file ivocvect.cpp.
#define SIMPLEX_MAXN 1e+300 |
Definition at line 2458 of file ivocvect.cpp.
#define TWO_BYTE_HIGH 65535. |
Definition at line 130 of file ivocvect.cpp.
Definition at line 2715 of file ivocvect.cpp.
int cmpfcn | ( | double | a, |
double | b | ||
) |
Definition at line 137 of file ivocvect.cpp.
Definition at line 2483 of file ivocvect.cpp.
Definition at line 2562 of file ivocvect.cpp.
double* ivoc_vector_ptr | ( | Object * | o, |
int | index | ||
) |
Definition at line 3843 of file ivocvect.cpp.
int ivoc_vector_size | ( | Object * | o | ) |
Definition at line 3838 of file ivocvect.cpp.
|
static |
Definition at line 121 of file ivocvect.cpp.
Definition at line 386 of file ivocvect.cpp.
void nrn_vecsim_add | ( | void * | v, |
bool | record | ||
) |
Definition at line 28 of file vrecord.cpp.
void nrn_vecsim_remove | ( | void * | v | ) |
Definition at line 21 of file vrecord.cpp.
|
static |
Definition at line 405 of file ivocvect.cpp.
Definition at line 1676 of file ivocvect.cpp.
Definition at line 199 of file ivocvect.cpp.
Definition at line 2579 of file ivocvect.cpp.
|
static |
Definition at line 1584 of file ivocvect.cpp.
|
static |
Definition at line 3849 of file ivocvect.cpp.
|
static |
Definition at line 3588 of file ivocvect.cpp.
|
static |
Definition at line 2316 of file ivocvect.cpp.
|
static |
Definition at line 2002 of file ivocvect.cpp.
|
static |
Definition at line 1399 of file ivocvect.cpp.
|
static |
Definition at line 2037 of file ivocvect.cpp.
Object** v_as_numpy | ( | void * | v | ) |
Definition at line 3702 of file ivocvect.cpp.
|
static |
Definition at line 1563 of file ivocvect.cpp.
|
static |
Definition at line 1357 of file ivocvect.cpp.
|
static |
Definition at line 1620 of file ivocvect.cpp.
|
static |
Definition at line 1624 of file ivocvect.cpp.
|
static |
Definition at line 1381 of file ivocvect.cpp.
|
static |
Definition at line 231 of file ivocvect.cpp.
|
static |
Definition at line 1470 of file ivocvect.cpp.
|
static |
Definition at line 2874 of file ivocvect.cpp.
|
static |
Definition at line 1482 of file ivocvect.cpp.
|
static |
Definition at line 2828 of file ivocvect.cpp.
|
static |
Definition at line 3151 of file ivocvect.cpp.
|
static |
Definition at line 254 of file ivocvect.cpp.
|
static |
Definition at line 2366 of file ivocvect.cpp.
|
static |
Definition at line 2293 of file ivocvect.cpp.
|
static |
Definition at line 2409 of file ivocvect.cpp.
|
static |
Definition at line 3021 of file ivocvect.cpp.
|
static |
Definition at line 1953 of file ivocvect.cpp.
|
static |
Definition at line 2969 of file ivocvect.cpp.
|
static |
Definition at line 2738 of file ivocvect.cpp.
|
static |
Definition at line 3608 of file ivocvect.cpp.
|
static |
Definition at line 446 of file ivocvect.cpp.
|
static |
Definition at line 2304 of file ivocvect.cpp.
Object** v_from_python | ( | void * | v | ) |
Definition at line 3687 of file ivocvect.cpp.
|
static |
Definition at line 420 of file ivocvect.cpp.
|
static |
Definition at line 1387 of file ivocvect.cpp.
|
static |
Definition at line 1181 of file ivocvect.cpp.
|
static |
Definition at line 1154 of file ivocvect.cpp.
|
static |
Definition at line 1330 of file ivocvect.cpp.
|
static |
Definition at line 3648 of file ivocvect.cpp.
|
static |
Definition at line 1965 of file ivocvect.cpp.
|
static |
Definition at line 1864 of file ivocvect.cpp.
|
static |
Definition at line 1780 of file ivocvect.cpp.
|
static |
Definition at line 3479 of file ivocvect.cpp.
|
static |
Definition at line 1416 of file ivocvect.cpp.
|
static |
Definition at line 3198 of file ivocvect.cpp.
|
static |
Definition at line 1630 of file ivocvect.cpp.
|
static |
Definition at line 188 of file ivocvect.cpp.
|
static |
Definition at line 1053 of file ivocvect.cpp.
|
static |
Definition at line 3356 of file ivocvect.cpp.
|
static |
Definition at line 3376 of file ivocvect.cpp.
|
static |
Definition at line 2299 of file ivocvect.cpp.
|
static |
Definition at line 1104 of file ivocvect.cpp.
|
static |
Definition at line 2132 of file ivocvect.cpp.
|
static |
Definition at line 2147 of file ivocvect.cpp.
|
static |
Definition at line 2187 of file ivocvect.cpp.
|
static |
Definition at line 2261 of file ivocvect.cpp.
|
static |
Definition at line 3262 of file ivocvect.cpp.
|
static |
Definition at line 3301 of file ivocvect.cpp.
|
static |
Definition at line 2101 of file ivocvect.cpp.
|
static |
Definition at line 2116 of file ivocvect.cpp.
|
static |
Definition at line 2349 of file ivocvect.cpp.
|
static |
Definition at line 933 of file ivocvect.cpp.
|
static |
Definition at line 415 of file ivocvect.cpp.
|
static |
Definition at line 940 of file ivocvect.cpp.
|
static |
Definition at line 1008 of file ivocvect.cpp.
|
static |
Definition at line 3519 of file ivocvect.cpp.
|
static |
Definition at line 755 of file ivocvect.cpp.
|
static |
Definition at line 3442 of file ivocvect.cpp.
|
static |
Definition at line 3396 of file ivocvect.cpp.
|
static |
Definition at line 922 of file ivocvect.cpp.
|
static |
Definition at line 2076 of file ivocvect.cpp.
|
static |
Definition at line 1453 of file ivocvect.cpp.
|
static |
Definition at line 3422 of file ivocvect.cpp.
|
static |
Definition at line 1375 of file ivocvect.cpp.
|
static |
Definition at line 3331 of file ivocvect.cpp.
|
static |
Definition at line 3099 of file ivocvect.cpp.
|
static |
Definition at line 2386 of file ivocvect.cpp.
|
static |
Definition at line 806 of file ivocvect.cpp.
|
static |
Definition at line 870 of file ivocvect.cpp.
|
static |
Definition at line 1392 of file ivocvect.cpp.
|
static |
Definition at line 2019 of file ivocvect.cpp.
|
static |
Definition at line 3338 of file ivocvect.cpp.
|
static |
Definition at line 1351 of file ivocvect.cpp.
|
static |
Definition at line 1248 of file ivocvect.cpp.
|
static |
Definition at line 3325 of file ivocvect.cpp.
|
static |
Definition at line 1594 of file ivocvect.cpp.
|
static |
Definition at line 2931 of file ivocvect.cpp.
|
static |
Definition at line 3064 of file ivocvect.cpp.
|
static |
Definition at line 3568 of file ivocvect.cpp.
|
static |
Definition at line 2243 of file ivocvect.cpp.
|
static |
Definition at line 2225 of file ivocvect.cpp.
|
static |
Definition at line 2333 of file ivocvect.cpp.
|
static |
Definition at line 2163 of file ivocvect.cpp.
|
static |
Definition at line 1209 of file ivocvect.cpp.
|
static |
Definition at line 2175 of file ivocvect.cpp.
|
static |
Definition at line 3628 of file ivocvect.cpp.
Object** v_to_python | ( | void * | v | ) |
Definition at line 3695 of file ivocvect.cpp.
|
static |
Definition at line 3225 of file ivocvect.cpp.
|
static |
Definition at line 2207 of file ivocvect.cpp.
|
static |
Definition at line 641 of file ivocvect.cpp.
|
static |
Definition at line 521 of file ivocvect.cpp.
|
static |
Definition at line 1688 of file ivocvect.cpp.
void Vector_reg | ( | ) |
Definition at line 3859 of file ivocvect.cpp.
|
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.
|
extern |
Definition at line 121 of file hoc_oop.cpp.
Definition at line 119 of file ivocvect.cpp.
Object**(* nrnpy_vec_as_numpy_helper_) (int, double *) | ( | int | , |
double * | |||
) |
Definition at line 118 of file ivocvect.cpp.
IvocVect*(* nrnpy_vec_from_python_p_) (void *) | ( | void * | ) |
Definition at line 116 of file ivocvect.cpp.
Object**(* nrnpy_vec_to_python_p_) (void *) | ( | void * | ) |
Definition at line 117 of file ivocvect.cpp.
|
static |
Definition at line 186 of file ivocvect.cpp.
|
static |
Definition at line 2480 of file ivocvect.cpp.
|
static |
Definition at line 2479 of file ivocvect.cpp.
|
static |
Definition at line 258 of file ivocvect.cpp.
|
static |
Definition at line 3713 of file ivocvect.cpp.
|
static |
Definition at line 3756 of file ivocvect.cpp.
|
static |
Definition at line 3832 of file ivocvect.cpp.