function [Xtp1, dXt]=Rosso(Xt,t,pourcentbruit,  ...
		      nomparam, nomparamS, paramS)
%Rosso Compute Rosso model
% INPUT/OUTPUT
% See BaranyiRoberts.m
%% ============================================================
%% Affectation des  parametres a estimer 
lenp=length(nomparam);
for i=1:lenp
    var=Xt(i,:);
    eval([nomparam{i},'=var;'])
    clear var
end
clear lenp 
lens=length(nomparamS);
vect=ones(1,size(Xt,2));
for i=1:lens
    var=nomparamS{i};
    eval([var,'=paramS.(var).*vect;'])
    clear var
end
clear vect lens 

Xtp1=Xt;




%AB, 20/02/2013 if (t<=lambda) signifie que t doit etre <= a tous les
%lambda
if t<=mean(lambda)
         Xtp1(end,:)=N0;
         dXt= zeros(1, size(Xtp1,2));
 else
     % Protéger les argu des exponentielles
     e1 = -mumax.*(t-lambda);
     e1( e1 >100)=100;  
     exp1=exp(e1);
     A= (Nmax./N0)-1;
     Xtp1(end,:)=Nmax./(1+A.*exp1);
    % Calcul de derivee de Nt par rapport au temps dans dXt
     num= Nmax .* A .* exp1 .* mumax;
     den= 1 + A .* exp1;
     dXt = num ./ (den .* den);   
 end


%% Bruiter Nt
if pourcentbruit>0
    pbruit=pourcentbruit/100;
    Xtp1(end,:)=(1-pbruit).*Xtp1(end,:)+poissrnd(Xtp1(end,:)*pbruit);
    clear pbruit
end
clear mumax lambda N0 Nmax

