![]() |
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) if (fwrite(arg1,arg2,arg3,arg4) != arg3){} |
| #define | FRead(arg1, arg2, arg3, arg4) if (fread(arg1,arg2,arg3,arg4) != arg3) {} |
| #define | BYTEHEADER int _II__; char *_IN__; char _OUT__[16]; int BYTESWAP_FLAG=0; |
| #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) do {top->lo = LOW;top++->hi = HIGH;} while (0) |
| #define | POP(LOW, HIGH) do {LOW = (--top)->lo;HIGH = top->hi;} while (0) |
| #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.
Definition at line 98 of file ivocvect.cpp.
| #define BYTES_PER_LONG 4 |
Definition at line 3765 of file ivocvect.cpp.
| #define BYTES_PER_WORD 8 |
Definition at line 3764 of file ivocvect.cpp.
| #define BYTESWAP | ( | _X__, | |
| _TYPE__ | |||
| ) |
Definition at line 99 of file ivocvect.cpp.
| #define EPSILON 1e-9 |
Definition at line 147 of file ivocvect.cpp.
| #define FRead | ( | arg1, | |
| arg2, | |||
| arg3, | |||
| arg4 | |||
| ) | if (fread(arg1,arg2,arg3,arg4) != arg3) {} |
Definition at line 67 of file ivocvect.cpp.
| #define FWrite | ( | arg1, | |
| arg2, | |||
| arg3, | |||
| arg4 | |||
| ) | if (fwrite(arg1,arg2,arg3,arg4) != arg3){} |
Definition at line 66 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 141 of file ivocvect.cpp.
| #define MAX_THRESH 4 |
Definition at line 3776 of file ivocvect.cpp.
| #define ONE_BYTE_HALF 128. |
Definition at line 145 of file ivocvect.cpp.
| #define ONE_BYTE_HIGH 255. |
Definition at line 144 of file ivocvect.cpp.
| #define PI M_PI |
Definition at line 59 of file ivocvect.cpp.
| #define POP | ( | LOW, | |
| HIGH | |||
| ) | do {LOW = (--top)->lo;HIGH = top->hi;} while (0) |
Definition at line 3771 of file ivocvect.cpp.
| #define PUBLIC_TYPE 1 |
| #define PUSH | ( | LOW, | |
| HIGH | |||
| ) | do {top->lo = LOW;top++->hi = HIGH;} while (0) |
Definition at line 3770 of file ivocvect.cpp.
| #define SIMPLEX_ALPHA 2.0 |
Definition at line 2398 of file ivocvect.cpp.
| #define SIMPLEX_BETA 1.4 |
Definition at line 2399 of file ivocvect.cpp.
| #define SIMPLEX_DELTA 0.3 |
Definition at line 2401 of file ivocvect.cpp.
| #define SIMPLEX_GAMMA 0.7 |
Definition at line 2400 of file ivocvect.cpp.
| #define SIMPLEX_INORM 1.2 |
Definition at line 2390 of file ivocvect.cpp.
| #define SIMPLEX_MAXN 1e+300 |
Definition at line 2389 of file ivocvect.cpp.
| #define STACK_NOT_EMPTY (stack < top) |
Definition at line 3772 of file ivocvect.cpp.
| #define STACK_SIZE (BYTES_PER_WORD * BYTES_PER_LONG) |
Definition at line 3769 of file ivocvect.cpp.
| #define TWO_BYTE_HIGH 65535. |
Definition at line 143 of file ivocvect.cpp.
| typedef int(* doubleComparator) (double, double) |
Definition at line 151 of file ivocvect.cpp.
Definition at line 2633 of file ivocvect.cpp.
| int cmpfcn | ( | double | a, |
| double | b | ||
| ) |
Definition at line 150 of file ivocvect.cpp.
Definition at line 2415 of file ivocvect.cpp.
Definition at line 2491 of file ivocvect.cpp.
| double hoc_Log | ( | double | x | ) |
| double hoc_Log10 | ( | double | x | ) |
| double hoc_scan | ( | FILE * | ) |
Definition at line 363 of file fileio.cpp.
| double hoc_Sqrt | ( | double | x | ) |
Definition at line 3717 of file ivocvect.cpp.
Definition at line 3712 of file ivocvect.cpp.
|
static |
Definition at line 135 of file ivocvect.cpp.
| int nrn_mlh_gsort | ( | double * | vec, |
| int * | base_ptr, | ||
| int | total_elems, | ||
| doubleComparator | cmp | ||
| ) |
Definition at line 3803 of file ivocvect.cpp.
Definition at line 18 of file datapath.cpp.
Definition at line 19 of file datapath.cpp.
Definition at line 357 of file ivocvect.cpp.
Definition at line 1597 of file ivocvect.cpp.
Definition at line 201 of file ivocvect.cpp.
Definition at line 2505 of file ivocvect.cpp.
Definition at line 1507 of file ivocvect.cpp.
Definition at line 3723 of file ivocvect.cpp.
Definition at line 3758 of file ivocvect.cpp.
Definition at line 3454 of file ivocvect.cpp.
Definition at line 2245 of file ivocvect.cpp.
Definition at line 1926 of file ivocvect.cpp.
Definition at line 1321 of file ivocvect.cpp.
Definition at line 1964 of file ivocvect.cpp.
Definition at line 3568 of file ivocvect.cpp.
Definition at line 1485 of file ivocvect.cpp.
|
static |
Definition at line 1279 of file ivocvect.cpp.
Definition at line 1540 of file ivocvect.cpp.
Definition at line 1544 of file ivocvect.cpp.
Definition at line 1303 of file ivocvect.cpp.
Definition at line 232 of file ivocvect.cpp.
|
static |
Definition at line 1392 of file ivocvect.cpp.
Definition at line 2785 of file ivocvect.cpp.
Definition at line 1403 of file ivocvect.cpp.
Definition at line 2744 of file ivocvect.cpp.
Definition at line 3026 of file ivocvect.cpp.
Definition at line 254 of file ivocvect.cpp.
Definition at line 2298 of file ivocvect.cpp.
|
static |
Definition at line 2220 of file ivocvect.cpp.
|
static |
Definition at line 2339 of file ivocvect.cpp.
Definition at line 2913 of file ivocvect.cpp.
Definition at line 1876 of file ivocvect.cpp.
Definition at line 2866 of file ivocvect.cpp.
|
static |
Definition at line 2655 of file ivocvect.cpp.
Definition at line 3474 of file ivocvect.cpp.
|
static |
Definition at line 398 of file ivocvect.cpp.
Definition at line 2233 of file ivocvect.cpp.
Definition at line 3553 of file ivocvect.cpp.
|
static |
Definition at line 372 of file ivocvect.cpp.
|
static |
Definition at line 1309 of file ivocvect.cpp.
Definition at line 1111 of file ivocvect.cpp.
Definition at line 1084 of file ivocvect.cpp.
Definition at line 1253 of file ivocvect.cpp.
Definition at line 3514 of file ivocvect.cpp.
Definition at line 1890 of file ivocvect.cpp.
Definition at line 1786 of file ivocvect.cpp.
|
static |
Definition at line 1701 of file ivocvect.cpp.
Definition at line 3346 of file ivocvect.cpp.
Definition at line 1338 of file ivocvect.cpp.
Definition at line 3071 of file ivocvect.cpp.
Definition at line 1550 of file ivocvect.cpp.
|
static |
Definition at line 190 of file ivocvect.cpp.
Definition at line 986 of file ivocvect.cpp.
Definition at line 3229 of file ivocvect.cpp.
Definition at line 3249 of file ivocvect.cpp.
|
static |
Definition at line 2227 of file ivocvect.cpp.
Definition at line 1036 of file ivocvect.cpp.
|
static |
Definition at line 2050 of file ivocvect.cpp.
|
static |
Definition at line 2066 of file ivocvect.cpp.
|
static |
Definition at line 2109 of file ivocvect.cpp.
|
static |
Definition at line 2187 of file ivocvect.cpp.
Definition at line 3134 of file ivocvect.cpp.
|
static |
Definition at line 3171 of file ivocvect.cpp.
|
static |
Definition at line 2017 of file ivocvect.cpp.
|
static |
Definition at line 2033 of file ivocvect.cpp.
Definition at line 2280 of file ivocvect.cpp.
Definition at line 881 of file ivocvect.cpp.
|
static |
Definition at line 367 of file ivocvect.cpp.
Definition at line 888 of file ivocvect.cpp.
Definition at line 944 of file ivocvect.cpp.
Definition at line 3385 of file ivocvect.cpp.
|
static |
Definition at line 708 of file ivocvect.cpp.
Definition at line 3315 of file ivocvect.cpp.
Definition at line 3269 of file ivocvect.cpp.
Definition at line 872 of file ivocvect.cpp.
|
static |
Definition at line 1992 of file ivocvect.cpp.
Definition at line 1375 of file ivocvect.cpp.
Definition at line 3295 of file ivocvect.cpp.
Definition at line 1297 of file ivocvect.cpp.
Definition at line 3203 of file ivocvect.cpp.
Definition at line 2985 of file ivocvect.cpp.
|
static |
Definition at line 2315 of file ivocvect.cpp.
|
static |
Definition at line 755 of file ivocvect.cpp.
|
static |
Definition at line 818 of file ivocvect.cpp.
Definition at line 1314 of file ivocvect.cpp.
Definition at line 1943 of file ivocvect.cpp.
Definition at line 3211 of file ivocvect.cpp.
|
static |
Definition at line 1273 of file ivocvect.cpp.
Definition at line 1177 of file ivocvect.cpp.
Definition at line 3196 of file ivocvect.cpp.
Definition at line 1515 of file ivocvect.cpp.
Definition at line 2834 of file ivocvect.cpp.
Definition at line 2952 of file ivocvect.cpp.
Definition at line 3434 of file ivocvect.cpp.
|
static |
Definition at line 2168 of file ivocvect.cpp.
|
static |
Definition at line 2149 of file ivocvect.cpp.
Definition at line 2263 of file ivocvect.cpp.
|
static |
Definition at line 2083 of file ivocvect.cpp.
Definition at line 1139 of file ivocvect.cpp.
|
static |
Definition at line 2096 of file ivocvect.cpp.
Definition at line 3494 of file ivocvect.cpp.
Definition at line 3561 of file ivocvect.cpp.
|
static |
Definition at line 3097 of file ivocvect.cpp.
|
static |
Definition at line 2130 of file ivocvect.cpp.
|
static |
Definition at line 597 of file ivocvect.cpp.
|
static |
Definition at line 475 of file ivocvect.cpp.
Definition at line 1609 of file ivocvect.cpp.
Definition at line 275 of file ivocvect.cpp.
Definition at line 267 of file ivocvect.cpp.
Definition at line 268 of file ivocvect.cpp.
Definition at line 266 of file ivocvect.cpp.
| char* vector_get_label | ( | Vect * | v | ) |
Definition at line 273 of file ivocvect.cpp.
Definition at line 265 of file ivocvect.cpp.
Definition at line 272 of file ivocvect.cpp.
| void Vector_reg | ( | ) |
Definition at line 3733 of file ivocvect.cpp.
Definition at line 269 of file ivocvect.cpp.
Definition at line 274 of file ivocvect.cpp.
Definition at line 270 of file ivocvect.cpp.
| double* vector_vec | ( | Vect * | v | ) |
Definition at line 271 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 89 of file ivocvect.cpp.
| Object* hoc_thisobject |
Definition at line 132 of file hoc_oop.cpp.
| Symlist* hoc_top_level_symlist |
Definition at line 41 of file symbol.cpp.
Definition at line 125 of file ivocvect.cpp.
Definition at line 123 of file ivocvect.cpp.
Definition at line 124 of file ivocvect.cpp.
|
static |
Definition at line 188 of file ivocvect.cpp.
|
static |
Definition at line 2411 of file ivocvect.cpp.
|
static |
Definition at line 2410 of file ivocvect.cpp.
|
static |
Definition at line 258 of file ivocvect.cpp.
|
static |
Definition at line 3582 of file ivocvect.cpp.
|
static |
Definition at line 3626 of file ivocvect.cpp.
|
static |
Definition at line 3704 of file ivocvect.cpp.