#ifndef TRAINER_H #define TRAINER_H #include #include #include #include #include "boost/tuple/tuple.hpp" using namespace std; class Trainer { public: FILE *fd_spike_out, *fd_global_out, *fd_trace_out, *fd_performance_out; // init stuff Trainer(int argc, char** argv); // main routine void run(); // state vars long currentEpoch; // thread related pthread_t thread_write; // configuration double md; // multiplicative difference (>1) double mss; // multiplicative step size (>1) double fs, frd, fad; // number of frequency steps and relative step size double epochDuration; double voltage; // per outgoing (random) spike long neurons; }; // seperate thread to read all spikes neccessary because reading and // writing to these descriptors could block and thus cause a deadlock void *read_spikes(Trainer *t); void *write_spikes(Trainer *t); #endif // TRAINER_H