function rcttest(especestart)
% HG. Tiny Conv Net of Dyni for bird 2015
% Lauron 8 mai 2015

load touttestimreadTOUTRN.mat 
load listetestRN.txt 
chemin = '/NAS3/SABIOD/public_data/DIENS_DYNI/NEW_CHALLENGE_2015/CMTfinalspectro_CHECKED/';


% SIM F:
% max pooling intra = modele intra %
% pour dkl ? cosine ? L2 ? L1 ?
for j=1: 8596 % test 
eval(['fa.test' num2str(j) ' = imread(k) ;'])
eval(['spectretest(j,:) = sum(fa.test' num2str(j) '([1:65],:),2);']) ; % coupure suffit 
eval(['dtest(i)=size(fa.test' num2str(j) ',2);'])
for c=1:65 % meme nbre de canaux dans chq facette
eval(['ac.test' num2str(j) '(c,:)=xcorr(fa.test' num2str(j) '(c,:));'])
end % c 
end % j prepa test 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
for train = especestart:especestart+100 % à lancer 10 process 

clear fa spectre maxcnn ic 
clear ac mcc convo deptf maxdeptf vardeptf maxconvo varconvo

eval(['! ls ' chemin '/TRAIN' num2str(train) '/*.jpg > listetrain' num2str(train) '.txt']);
eval(['! wc listetrain' num2str(train) '.txt | cut -f 1 | cut -f 1 -d ''l'' > N' num2str(train) '.txt']);
% eval(['! cut -f 1 -d ''l'' N' num2str(train) '.txt > N' num2str(train) 'b.txt'])
% cube conv train intra espece
% a faire aussi en inter espece
% puis PCA dessus
% => multi modele multi classe
eval(['N = load(''N' num2str(train) '.txt'')'])
N=N(1);

for i=1:N % train 
eval(['k = lire_ligne(''listetrain' num2str(train) '.txt'',j)']);
eval(['fa.s' num2str(i) ' = imread(k) ;'])
eval(['d(i)=size(fa.s' num2str(i) ',2);'])
for c=1:65 % meme nbre de canaux dans chq facette
eval(['ac.s' num2str(i) '(c,:)=xcorr(fa.s' num2str(i) '(c,:));'])
end % c 
end % i 

%%%%%%%%%%%%%%%%%%%%%
% SIM TF
for i=1:N
for j=1:8596 tous les tests

dcom = min(d(i),d(j));
clear convo ic
for c=1:65
eval(['ic = xcorr(fa.s' num2str(i) '(c,1:dcom), fa.s' num2str(j) '(c,1:dcom));'])


eval(['mcc(i,j,c) = max( ic(dcom:end).^2 ./ (eps + ac.s' num2str(i) '(c,d(i):d(i)+dcom-1) .* ac.s' num2str(j) '(c,d(j):d(j)+dcom-1) ));']) 
eval(['convo(:,c) = conv(fa.s' num2str(i) '(c,:), fa.s' num2str(j) '(c,:) );']) ;
end % c
deptf = conv2([1 1 ; 1 1], convo);
maxconvo(i,j,:) = max(convo);
varconvo(i,j,:) = var(convo);
maxdeptf(i,j,:) = max(deptf);
vardeptf(i,j,:) = var(deptf);
end % j test 
end % i

% max pooling intra = modele intra %
% max pooling intra = modele intra %
% pour sim directement ? mean min max = simi ? std ?
% ou simplement LS dkl cos entre maxcnn intra et maxcnn (train, test) ( 7K * 22K ) a lancer ce soir
% mean sur les sample de train, conorm entre espece i et j ~ i
% **  vote majoriatire sur dkl de dist des max cnn entre cube intratrain et cube testtrain 7K*20K cube
% norme par max correlation intratrain ? 
clear deptf ic ac
eval(['save TESTsurESP_cohecon_' num2str(train) ])
end % espece 

% entropy n'apporte pas je pense
% possible en deux couche avec conv de conv ?
% PCA sur cette base ?
% permet de noter quel canal à conserver
% relancer tout à 1024 ?
% co norm / tnorm ?
end % fun
