/***********************************************************************************************
IF_NET.. (project with Eleni on STDP + freq-dependent synapses)
Antwerpen, 29/7/2011 - 9/9/2011
Compile with: gcc -o IFnet IFnet.c -lm -O
Output files: sample.x, raster.x, G.x
************************************************************************************************/
#include <stdio.h> // Included (needed by fprintf, fopen, etc. ).
#include <stdlib.h> // Standard library (needed by atof(), atoi(), etc.).
#include <math.h> // Mathematical library (needed by exp(), etc.).
#include "rando.c" // Random numbers generation custom library (~Numerical Recipes).
#include "IF_net_datastructures.h" // Data structures, variables, etc.
#include "IFnet.h" // Utility functions.
#include "IF_net_simulate.h" // Actual simulation code.
#include "IF_net_memory_mngt.h" // Allocation and deallocation routines.
/******************************** MAIN ***********************************/
int main (int argc,char *argv[]) {
int index, out;
if (argc < 4) {
printf("USAGE: IFnet Tsim [sec] Io [pA] GA [pA] (was 200.)\n");
exit(0);
}
Tsim = atof(argv[1]) * 1000.; // convert it to [msec]
Io = atof(argv[2]); // [pA]
GA = atof(argv[3]);
printf("\nIFNet November 2011 - including STP and STDP\n\n");
read_connectivity(); // read 'connectivity.dat' (including short-term dynamics information) and sets 'N' and 'CC'..
out = allocate_mem();
if (out) {
fprintf(stderr, "Error in memory allocation! Aborting...\n");
return 0;
}
//-------------------------------------------------------------------
t = 0.; // The current time is set to 0 ms.
//mu = Io;
sigma = 2*Io;
init(); // All the parameters of the network are initialized.
GA = atof(argv[3]);
log_weights();
for (index=0; index < 4; index++) {
simulate(Tsim*0.25); // The simulation is started.
fflush(NULL);
// log_weights();
}
log_weights();
//-------------------------------------------------------------------
deallocate_mem();
return 0; // The software returns no error.
}//end main()