%input = 15.7;  % lif 100Hz
%input = 8.3;   % lif 10Hz
trials = 10;
tmax = 50.0;
Dnoise = 1.0;
imax = 25.0;
ithresh = 10.0;
slope=0.2;

% inputs = 0:2:30;
% rates = zeros( size( inputs ) );
% for j = 1:length( inputs )
%     input = inputs(j);
%     spikes = lifboltzmanspikes( trials, input, tmax, Dnoise, imax, ithresh, slope );
%     nspikes = 0;
%     for k = 1:length( spikes )
%         nspikes = nspikes + length( spikes{k} );
%     end
%     rate = nspikes/tmax/length( spikes );
%     rates(j) = rate;
% end
% plot( inputs, rates );
% grid on;
% return

input = 10.0;  % 80 Hz

window = 0.2;
slopes = 0.1:0.1:2.0;
pmax = zeros( size( slopes) );
for j = 1:length( slopes )
    slope = slopes( j );
    spikes = lifboltzmanspikes( trials, input, tmax, Dnoise, imax, ithresh, slope );
    [ n1, bins1 ] = counthist( spikes, w );

    spikes = lifboltzmanspikes( trials, input+1.0, tmax, Dnoise, imax, ithresh, slope );
    [ n2, bins2 ] = counthist( spikes, w );

    subplot( 2, 1, 1 );
    bar( bins1, n1, 'b' );
    hold on;
    bar( bins2, n2, 'r' );
    hold off;

    subplot( 2, 1, 2 );
    bmax = max( [ length( bins1 ), length( bins2 ) ] );
    decision1 = zeros( bmax, 1 );
    decision2 = zeros( bmax, 1 );
    cs1 = ones( bmax, 1 );
    cs1(1:length(n1)) = cumsum( n1 );
    cs2 = ones( bmax, 1 );
    cs2(1:length(n2)) = cumsum( n2 );
    cbins = 0:1:bmax-1;
    plot( cbins, cs1, 'b' );
    hold on;
    plot( cbins, cs2, 'r' );
    plot( cbins, cs1-cs2, 'g' );
    hold off;
    pause( 0.1 );
    pmax(j) = max( cs1-cs2 );
end

clf;
subplot( 1, 1, 1 );
plot( slopes, pmax );
