% 	neuron_izh.m:
%	
%	IZH neuron for Euler integration
%
%	integrates and updates state
%
%
%	$Revision:$
%
function state = neuron_izh(t, state)

global I_S;
global Ts;
global par;

ct = floor(t/Ts);

%fprintf('neuron_izh: ct=%d I_S = %f %f V_0=%f\n',...
%	ct, I_S(1,ct), I_S(2,ct), state(1));

if(state(1) > 30),
	state(1) = par(3);
	state(2) = state(2) + par(4);
else
	dv = 0.04*state(1).^2 + 5*state(1) + 140 - state(2) ...
	  - par(5)*I_S(1,ct) - par(6)*I_S(2,ct);

	du = par(1).*(par(2).*state(1) - state(2));

		%
		% integration
		%
	state(1) = state(1) + dv*Ts;
	state(2) = state(2) + du*Ts;
	end;