![]() |
NEURON
|
#include <../../nrnconf.h>#include <stdio.h>#include <stdlib.h>#include <ivstream.h>#include <math.h>#include <errno.h>#include <numeric>#include <functional>#include "fourier.h"#include <InterViews/resource.h>#include <OS/list.h>#include "classreg.h"#include "gui-redirect.h"#include "ivocvect.h"#include "random1.h"#include <Uniform.h>#include "oc2iv.h"#include "parse.hpp"#include "ocfile.h"Go to the source code of this file.
Classes | |
| struct | SortIndex |
Macros | |
| #define | M_PI 3.14159265358979323846 |
| #define | PI M_PI |
| #define | BrainDamaged 0 |
| #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 |
| #define | BYTES_PER_WORD 8 |
| #define | BYTES_PER_LONG 4 |
| #define | STACK_SIZE (BYTES_PER_WORD * BYTES_PER_LONG) |
| #define | PUSH(LOW, HIGH) |
| #define | POP(LOW, HIGH) |
| #define | STACK_NOT_EMPTY (stack < top) |
| #define | MAX_THRESH 4 |
Typedefs | |
| typedef int(* | doubleComparator) (double, double) |
Functions | |
| void | nrn_exit (int) |
| double | hoc_Log (double x) |
| double | hoc_Log10 (double x) |
| double | hoc_Sqrt (double x) |
| double | hoc_scan (FILE *) |
| double | hoc_Exp (double) |
| static int | narg () |
| int | cmpfcn (double a, double b) |
| void | install_vector_method (const char *name, Pfrd_vp) |
| int | vector_instance_px (void *, double **) |
| int | nrn_mlh_gsort (double *vec, int *base_ptr, int total_elems, doubleComparator cmp) |
| int | vector_arg_px (int, double **) |
| void | notify_freed_val_array (double *, size_t) |
| 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) |
| Vect * | vector_new (int n, Object *o) |
| Vect * | vector_new0 () |
| Vect * | vector_new1 (int n) |
| Vect * | vector_new2 (Vect *v) |
| void | vector_delete (Vect *v) |
| int | vector_buffer_size (Vect *v) |
| int | vector_capacity (Vect *v) |
| void | vector_resize (Vect *v, int n) |
| Object ** | vector_temp_objvar (Vect *v) |
| double * | vector_vec (Vect *v) |
| Object ** | vector_pobj (Vect *v) |
| char * | vector_get_label (Vect *v) |
| void | vector_set_label (Vect *v, char *s) |
| void | vector_append (Vect *v, double x) |
| Vect * | vector_arg (int i) |
| int | is_vector_arg (int i) |
| 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 () |
| static void | SWAP (int *A, int *B) |
Variables | |
| Object **(* | nrnpy_gui_helper_ )(const char *name, Object *obj) |
| double(* | nrnpy_object_to_double_ )(Object *) |
| 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 *) |
| int | hoc_return_type_code |
| 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 BrainDamaged 0 |
Definition at line 61 of file ivocvect.cpp.
| #define BYTEHEADER |
Definition at line 108 of file ivocvect.cpp.
| #define BYTES_PER_LONG 4 |
Definition at line 3990 of file ivocvect.cpp.
| #define BYTES_PER_WORD 8 |
Definition at line 3989 of file ivocvect.cpp.
| #define BYTESWAP | ( | _X__, | |
| _TYPE__ | |||
| ) |
Definition at line 113 of file ivocvect.cpp.
| #define EPSILON 1e-9 |
Definition at line 163 of file ivocvect.cpp.
| #define FRead | ( | arg1, | |
| arg2, | |||
| arg3, | |||
| arg4 | |||
| ) |
Definition at line 75 of file ivocvect.cpp.
| #define FWrite | ( | arg1, | |
| arg2, | |||
| arg3, | |||
| arg4 | |||
| ) |
Definition at line 72 of file ivocvect.cpp.
| #define M_PI 3.14159265358979323846 |
Definition at line 57 of file ivocvect.cpp.
| #define MAX_FIT_PARAMS 20 |
Definition at line 157 of file ivocvect.cpp.
| #define MAX_THRESH 4 |
Definition at line 4009 of file ivocvect.cpp.
| #define ONE_BYTE_HALF 128. |
Definition at line 161 of file ivocvect.cpp.
| #define ONE_BYTE_HIGH 255. |
Definition at line 160 of file ivocvect.cpp.
| #define PI M_PI |
Definition at line 59 of file ivocvect.cpp.
| #define POP | ( | LOW, | |
| HIGH | |||
| ) |
Definition at line 4000 of file ivocvect.cpp.
| #define PUBLIC_TYPE 1 |
| #define PUSH | ( | LOW, | |
| HIGH | |||
| ) |
Definition at line 3995 of file ivocvect.cpp.
| #define SIMPLEX_ALPHA 2.0 |
Definition at line 2464 of file ivocvect.cpp.
| #define SIMPLEX_BETA 1.4 |
Definition at line 2465 of file ivocvect.cpp.
| #define SIMPLEX_DELTA 0.3 |
Definition at line 2467 of file ivocvect.cpp.
| #define SIMPLEX_GAMMA 0.7 |
Definition at line 2466 of file ivocvect.cpp.
| #define SIMPLEX_INORM 1.2 |
Definition at line 2456 of file ivocvect.cpp.
| #define SIMPLEX_MAXN 1e+300 |
Definition at line 2455 of file ivocvect.cpp.
| #define STACK_NOT_EMPTY (stack < top) |
Definition at line 4005 of file ivocvect.cpp.
| #define STACK_SIZE (BYTES_PER_WORD * BYTES_PER_LONG) |
Definition at line 3994 of file ivocvect.cpp.
| #define TWO_BYTE_HIGH 65535. |
Definition at line 159 of file ivocvect.cpp.
| typedef int(* doubleComparator) (double, double) |
Definition at line 169 of file ivocvect.cpp.
Definition at line 2712 of file ivocvect.cpp.
| int cmpfcn | ( | double | a, |
| double | b | ||
| ) |
Definition at line 166 of file ivocvect.cpp.
Definition at line 2480 of file ivocvect.cpp.
Definition at line 2559 of file ivocvect.cpp.
| int hoc_araypt | ( | Symbol * | , |
| int | |||
| ) |
| double hoc_Log | ( | double | x | ) |
| double hoc_Log10 | ( | double | x | ) |
| double hoc_scan | ( | FILE * | fi | ) |
Definition at line 339 of file fileio.cpp.
| double hoc_Sqrt | ( | double | x | ) |
| double* ivoc_vector_ptr | ( | Object * | o, |
| int | index | ||
| ) |
Definition at line 3941 of file ivocvect.cpp.
| int ivoc_vector_size | ( | Object * | o | ) |
Definition at line 3936 of file ivocvect.cpp.
|
static |
Definition at line 150 of file ivocvect.cpp.
Definition at line 18 of file datapath.cpp.
Definition at line 21 of file datapath.cpp.
|
static |
Definition at line 422 of file ivocvect.cpp.
Definition at line 1689 of file ivocvect.cpp.
Definition at line 238 of file ivocvect.cpp.
Definition at line 2576 of file ivocvect.cpp.
Definition at line 1596 of file ivocvect.cpp.
Definition at line 3947 of file ivocvect.cpp.
|
inlinestatic |
Definition at line 3982 of file ivocvect.cpp.
Definition at line 3585 of file ivocvect.cpp.
Definition at line 2317 of file ivocvect.cpp.
Definition at line 2015 of file ivocvect.cpp.
Definition at line 1407 of file ivocvect.cpp.
Definition at line 2050 of file ivocvect.cpp.
Definition at line 3699 of file ivocvect.cpp.
Definition at line 1572 of file ivocvect.cpp.
|
static |
Definition at line 1365 of file ivocvect.cpp.
Definition at line 1632 of file ivocvect.cpp.
Definition at line 1636 of file ivocvect.cpp.
Definition at line 1389 of file ivocvect.cpp.
Definition at line 270 of file ivocvect.cpp.
|
static |
Definition at line 1478 of file ivocvect.cpp.
Definition at line 2871 of file ivocvect.cpp.
Definition at line 1490 of file ivocvect.cpp.
Definition at line 2825 of file ivocvect.cpp.
Definition at line 3148 of file ivocvect.cpp.
Definition at line 293 of file ivocvect.cpp.
Definition at line 2367 of file ivocvect.cpp.
|
static |
Definition at line 2294 of file ivocvect.cpp.
|
static |
Definition at line 2406 of file ivocvect.cpp.
Definition at line 3018 of file ivocvect.cpp.
Definition at line 1966 of file ivocvect.cpp.
Definition at line 2966 of file ivocvect.cpp.
|
static |
Definition at line 2735 of file ivocvect.cpp.
Definition at line 3605 of file ivocvect.cpp.
|
static |
Definition at line 463 of file ivocvect.cpp.
Definition at line 2305 of file ivocvect.cpp.
Definition at line 3684 of file ivocvect.cpp.
|
static |
Definition at line 437 of file ivocvect.cpp.
|
static |
Definition at line 1395 of file ivocvect.cpp.
Definition at line 1189 of file ivocvect.cpp.
Definition at line 1162 of file ivocvect.cpp.
Definition at line 1338 of file ivocvect.cpp.
Definition at line 3645 of file ivocvect.cpp.
Definition at line 1978 of file ivocvect.cpp.
Definition at line 1877 of file ivocvect.cpp.
|
static |
Definition at line 1793 of file ivocvect.cpp.
Definition at line 3476 of file ivocvect.cpp.
Definition at line 1424 of file ivocvect.cpp.
Definition at line 3195 of file ivocvect.cpp.
Definition at line 1642 of file ivocvect.cpp.
|
static |
Definition at line 227 of file ivocvect.cpp.
Definition at line 1061 of file ivocvect.cpp.
Definition at line 3353 of file ivocvect.cpp.
Definition at line 3373 of file ivocvect.cpp.
|
static |
Definition at line 2300 of file ivocvect.cpp.
Definition at line 1112 of file ivocvect.cpp.
|
static |
Definition at line 2133 of file ivocvect.cpp.
|
static |
Definition at line 2148 of file ivocvect.cpp.
|
static |
Definition at line 2188 of file ivocvect.cpp.
|
static |
Definition at line 2262 of file ivocvect.cpp.
Definition at line 3259 of file ivocvect.cpp.
|
static |
Definition at line 3298 of file ivocvect.cpp.
|
static |
Definition at line 2102 of file ivocvect.cpp.
|
static |
Definition at line 2117 of file ivocvect.cpp.
Definition at line 2350 of file ivocvect.cpp.
Definition at line 950 of file ivocvect.cpp.
|
static |
Definition at line 432 of file ivocvect.cpp.
Definition at line 957 of file ivocvect.cpp.
Definition at line 1016 of file ivocvect.cpp.
Definition at line 3516 of file ivocvect.cpp.
|
static |
Definition at line 772 of file ivocvect.cpp.
Definition at line 3439 of file ivocvect.cpp.
Definition at line 3393 of file ivocvect.cpp.
Definition at line 939 of file ivocvect.cpp.
|
static |
Definition at line 2077 of file ivocvect.cpp.
Definition at line 1461 of file ivocvect.cpp.
Definition at line 3419 of file ivocvect.cpp.
Definition at line 1383 of file ivocvect.cpp.
Definition at line 3328 of file ivocvect.cpp.
Definition at line 3096 of file ivocvect.cpp.
|
static |
Definition at line 2383 of file ivocvect.cpp.
|
static |
Definition at line 823 of file ivocvect.cpp.
|
static |
Definition at line 887 of file ivocvect.cpp.
Definition at line 1400 of file ivocvect.cpp.
Definition at line 2032 of file ivocvect.cpp.
Definition at line 3335 of file ivocvect.cpp.
|
static |
Definition at line 1359 of file ivocvect.cpp.
Definition at line 1256 of file ivocvect.cpp.
Definition at line 3322 of file ivocvect.cpp.
Definition at line 1606 of file ivocvect.cpp.
Definition at line 2928 of file ivocvect.cpp.
Definition at line 3061 of file ivocvect.cpp.
Definition at line 3565 of file ivocvect.cpp.
|
static |
Definition at line 2244 of file ivocvect.cpp.
|
static |
Definition at line 2226 of file ivocvect.cpp.
Definition at line 2334 of file ivocvect.cpp.
|
static |
Definition at line 2164 of file ivocvect.cpp.
Definition at line 1217 of file ivocvect.cpp.
|
static |
Definition at line 2176 of file ivocvect.cpp.
Definition at line 3625 of file ivocvect.cpp.
Definition at line 3692 of file ivocvect.cpp.
|
static |
Definition at line 3222 of file ivocvect.cpp.
|
static |
Definition at line 2208 of file ivocvect.cpp.
|
static |
Definition at line 658 of file ivocvect.cpp.
|
static |
Definition at line 538 of file ivocvect.cpp.
Definition at line 1701 of file ivocvect.cpp.
Definition at line 340 of file ivocvect.cpp.
| int vector_buffer_size | ( | Vect * | v | ) |
Definition at line 316 of file ivocvect.cpp.
| int vector_capacity | ( | Vect * | v | ) |
Definition at line 319 of file ivocvect.cpp.
Definition at line 313 of file ivocvect.cpp.
| char* vector_get_label | ( | Vect * | v | ) |
Definition at line 334 of file ivocvect.cpp.
Definition at line 310 of file ivocvect.cpp.
Definition at line 331 of file ivocvect.cpp.
| void Vector_reg | ( | ) |
Definition at line 3957 of file ivocvect.cpp.
Definition at line 322 of file ivocvect.cpp.
Definition at line 337 of file ivocvect.cpp.
Definition at line 325 of file ivocvect.cpp.
| double* vector_vec | ( | Vect * | v | ) |
Definition at line 328 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 99 of file ivocvect.cpp.
|
extern |
Definition at line 122 of file hoc_oop.cpp.
|
extern |
Definition at line 23 of file symdir.cpp.
| Object**(* nrnpy_vec_as_numpy_helper_) (int, double *) | ( | int | , |
| double * | |||
| ) |
Definition at line 140 of file ivocvect.cpp.
Definition at line 138 of file ivocvect.cpp.
Definition at line 139 of file ivocvect.cpp.
|
static |
Definition at line 225 of file ivocvect.cpp.
|
static |
Definition at line 2477 of file ivocvect.cpp.
|
static |
Definition at line 2476 of file ivocvect.cpp.
|
static |
Definition at line 297 of file ivocvect.cpp.
|
static |
Definition at line 3710 of file ivocvect.cpp.
|
static |
Definition at line 3787 of file ivocvect.cpp.
|
static |
Definition at line 3928 of file ivocvect.cpp.