-
Notifications
You must be signed in to change notification settings - Fork 1
/
DataReporters.h
97 lines (83 loc) · 2.77 KB
/
DataReporters.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
/*
* DataReporters.h
* XclNet
*
* Created by David Higgins on 09/04/2012.
* Copyright 2012 __MyCompanyName__. All rights reserved.
*
*/
#include "GeneralIncludes.h"
#include "cl_Synapse.h"
//Debug
#include "cl_LIFNeuron.h"
// File pointers for recording data
// Raster output file
char* raster_name; //"raster.dat"
// Intracellular recorder file
char* intracellular_name; //"intracellular.dat"
// Averaged population activity file
char* average_activity_name;// = "network_activity.dat";
// Individual synaptic activity file
char* synaptic_activity_name;// = "single_synapse.dat";
// Final synaptic strengths of all dynamic synapses file
char* synaptic_strength_name;// = "final_synaptic_strength.dat";
// Calculation of synchange for each frequency
char* synchange_name;// = "synchange.dat";
//TODO: rename file pointer variable names for DataReporters
FILE *raster_output;
FILE *intracellular_output;
FILE *average_activity_ouput; //network_activity_output
FILE *synaptic_activity_output; //single_synapse_output
FILE *synaptic_strength_output; //final_synaptic_strength_output
FILE *synchange_output; //synchange_output
// Summary variables for monitoring network firing rate
//CONSIDER: since we use a timestepping approach these variables could be condensed
// to single value variables and printed out during the simulation
double *summary_exc_spikes;
//float *summary_inh_spikes;
unsigned int no_spiking_bins;
// Summary variables for monitoring multiple recorder synapses
/*float *summary_rho;
float *summary_M;
float *summary_S;
unsigned int *summary_n;*/
// Summary variables for main population synapse recorders
double *pop_summary_rho;
double *pop_summary_M;
double *pop_summary_S;
unsigned int *pop_summary_n;
// Variables for manipulating subset of neurons
//float *lif_injection_spikes;
//int no_injection_lifs;
//Debugging variables
float *lif_gauss_totals;
//float *lif_mean_destination;
//char* lif_debug_name;
//FILE *lif_debug_output;
/*int *lif_debug_no_EE;
int *lif_debug_no_IE;
int *lif_debug_no_EI;
int *lif_debug_no_II;
float *lif_mean_dest_EE;
float *lif_mean_dest_IE;
float *lif_mean_dest_EI;
float *lif_mean_dest_II;
int *lif_in_EE;
int *lif_in_IE;
int *lif_in_EI;
int *lif_in_II;
float *lif_currents_EE;
float *lif_currents_IE;
float *lif_currents_EI;
float *lif_currents_II;*/
void reporters_setup();
void reporters_close();
void reporters_flush();
void alloc_reporter_variables();
void free_reporter_variables();
void print_synchange(cl_Synapse *syn, SynapseConsts *syn_const, double fup, double cmich, double nT);
void print_raster_spike(int t, int lif_no, float isi);
void print_network_summary_activity();
void print_synapse_activity(int t, cl_Synapse *syn);
void print_synapses_final_state(cl_Synapse *syn, SynapseConsts *syn_const);
//void print_lif_debug(cl_LIFNeuron *lif);