%
% Launcher application for the Large Networks C-code simulations
% (first connectivity is generated and then the simulation launched)
%

clear all;      % clear the workspace
close all;      % close any open figure or file
clc;            % clear the screen
addpath matlab; % add path to relevant routines in the ./matlab directory


Ncell = 1000;    % Number of excitatory cells constituting the network 


fixseed   = 0;                          % currently unused
seed      = 3532765;                    % currently unused
pars      = [2 350 150 1000 160 3];     % currently unused


%--------------------------------------------------------------------------
% Stat. description of  structural, hard-wired, anatomical connectivity
%
Pdd       = .8;
Pff       = .8;
Pfd       = .8;
Pdf       = .8;
%
%--------------------------------------------------------------------------

%--------------------------------------------------------------------------
    StructuredMatrix(Ncell, Pdd, Pff, Pfd, Pdf);
%--------------------------------------------------------------------------
%save connectivity information
%-----------------------------
% % % % % % % % % % % % % % MM    = length(find(C(:)~=0));  % Number of non-zero elements of C(i,j)
% % % % % % % % % % % % % % Ctemp = C';
% % % % % % % % % % % % % % Ctemp = Ctemp(:);               % A single vector, encoding 'C' row-wise
% % % % % % % % % % % % % % tmp   = find(Ctemp ~= 0);
% % % % % % % % % % % % % % 
% % % % % % % % % % % % % % fname = 'connectivity.dat';
% % % % % % % % % % % % % % fp    = fopen(fname, 'wb');
% % % % % % % % % % % % % % fwrite(fp, Ncell, 'double');  
% % % % % % % % % % % % % % fwrite(fp, MM, 'double');  
% % % % % % % % % % % % % % %for i=1:Ncell, fwrite(fp, int8(C(i,:)), 'double'); end % it was 'short'
% % % % % % % % % % % % % % for kk=1:length(tmp)
% % % % % % % % % % % % % %     fwrite(fp, tmp(kk) * sign(Ctemp(tmp(kk))), 'double');
% % % % % % % % % % % % % % end
% % % % % % % % % % % % % % fclose(fp);
% % % % % % % % % % % % % % 
% % % % % % % % % % % % % % save('connectivity.mat', 'C');
% % % % % % % % % % % % % % disp('Connectivity matrix generation and storage on disk completed!');
%--------------------------------------------------------------------------
% save some human-redable information on file
% % % % % % % % % % fname = 'info.txt';
% % % % % % % % % % fp    = fopen(fname, 'w');
% % % % % % % % % % fprintf(fp,'Simulation input details and parameters\n\n');
% % % % % % % % % % fprintf(fp,'Ncell = %d\n', Ncell);
% % % % % % % % % % fprintf(fp,'seed (fix = %d)  = %d\n', fixseed, seed);
% % % % % % % % % % fprintf(fp,'---- Probabilities ----\n');
% % % % % % % % % % fprintf(fp,'[Prob_ee Prob_loop]\t\t\t= [%.3f\t%.3f]\n', Prob_ee, Prob_loop);
% % % % % % % % % % fprintf(fp,'[eeff eedd eefd eedf]\t\t= [%.3f\t%.3f\t%.3f\t%.3f]\n', Prob_ff , Prob_dd, Prob_fd, Prob_fd);
% % % % % % % % % % fprintf(fp,'[exf exd]\t\t= [%.3f\t%.3f]\n', Prob_f, Prob_d);
% % % % % % % % % % fclose(fp);
% % % % % % % % % % %-------------------
% % % % % % % % % % %all_pars = [pars, Ncell, Prob_ee, Prob_loop, Prob_ff, Prob_dd, Prob_fd, Prob_f, Prob_d, fixseed, seed];
% % % % % % % % % % all_pars = [Ncell, Prob_ee, Prob_loop, Prob_ff, Prob_dd, Prob_fd, Prob_f, Prob_d, fixseed, seed];
% % % % % % % % % % fname = 'pars.dat';
% % % % % % % % % % fp    = fopen(fname, 'wb');
% % % % % % % % % % fwrite(fp, pars, 'double');  
% % % % % % % % % % fclose(fp);
% % % % % % % % % % save('pars.mat', 'all_pars');
%--------------------------------------------------------------------------


% Usage: IFnet Tsim [sec]  Io [pA] GA [pA] (was 200.)
% cmd = sprintf('./IFnet 100 200 12');
% disp(sprintf('Starting the simulation [%s]...', cmd));
% [status,result] = system(cmd)