function [aa,bb,index,ko]=bisezione_step(a,b,tinv,maxit,f)
if b < a s=b; b=a; a=s; end % Aggiusta errori utente.
ko=0;  fa=feval(f,a); fb=feval(f,b); aa=[a]; bb=[b]; 
if fa*fb > 0 ko=1; return; end
if fa == 0 aa=[aa;a];bb=[bb;a];return;end % a sol.
if fb == 0 aa=[aa;b];bb=[bb;b];return;end % b sol.
for index=1:maxit
    c=(a+b)/2;  fc=feval(f,c); 
    
    semilung=(b-a)/2; % Semilung. intervallo.

    if sign(fc) == sign(fa) % Aggiornamento.
        aa=[aa; c];bb=[bb; b];a=c;fa=fc;
    else
        aa=[aa; a];bb=[bb; c];b=c;fb=fc;
    end
    
   if (semilung<tinv)|(fc==0)
        return;% OK exit.
    end 
end
k0=1;
