summaryrefslogtreecommitdiff
path: root/code/core/global.h
diff options
context:
space:
mode:
Diffstat (limited to 'code/core/global.h')
-rw-r--r--code/core/global.h63
1 files changed, 63 insertions, 0 deletions
diff --git a/code/core/global.h b/code/core/global.h
new file mode 100644
index 0000000..8fec3d4
--- /dev/null
+++ b/code/core/global.h
@@ -0,0 +1,63 @@
+#ifndef GLOBAL_H
+#define GLOBAL_H
+
+class Global {
+public:
+ Global();
+
+ // methods
+ void evolve(double td);
+ double decay_dopamin(double level, double td); // return how much the level _would_ have been decayed
+
+ // variables (and quasi constants)
+ // * neuron related
+ double voltage_tau; // [s]
+ double voltage_base; // [V] rest potential
+ double threshold; // [V] above which a spike is emitted
+
+ double Wmax, Wmin; // [V]
+ double sumWeight; // [V]
+ double absoluteRefractoryTime; // [V]
+
+ // * dopamin
+ double dopamin_level; // [?]
+ double dopamin_tau; // [s]
+
+ // * STDP
+ double stdp_tau_plus; // [s]
+ double stdp_tau_minus; // [s]
+ double stdp_lambda_plus; // [1]
+ double stdp_lambda_minus; // [1]
+ double stdp_et_tau; // [s] eligibility trace tau
+
+ // * IP
+ double ip_sliding_avg_tau;
+ double ip_lambda_R;
+ double ip_lambda_C;
+ double ip_dst_mom1;
+ double ip_dst_mom2;
+
+ // * external noise
+ double en_current; // [V]
+ double en_freq; // [Hz/Neuron]
+
+ // * trainer
+ double trainer_eval_delay; // [s]
+ int trainer_numSymbols; // [1]
+ double trainer_refractoryTime; // [s]
+ double trainer_rewardAmount; // [?]
+ double trainer_rd_c1; // readout delay with
+ double trainer_rd_c2; // delay = c1 + t*c2 + r*c3 + t*r'*c4
+ double trainer_rd_c3; // where
+ double trainer_rd_c4; // r and r' are two distinct random numbers (equ. dist in [0,1))
+
+ // reflection
+ template<class Action> bool reflect(Action &a);
+ typedef int id_type;
+ static id_type numElements();
+ static Neuron * singleton(int num); // return neuron # num
+} global;
+
+Global &g = global;
+
+#endif // GLOBAL_H
contact: Jan Huwald // Impressum