function [x,n,err]=bisezione(fun,a,b,toll)
  %% [x,n,err]=bisezione(fun,a,b,toll)
  n=0;
  err='';
  x=a;
  fa=eval(fun);
  if fa == 0, return; end
  x=b;
  fb=eval(fun);
  if fb == 0, return; end 
  if sign(fa) == sign(fb)
    err='sign(fa) == sign(fb)';
    return;
  end
  x=(a+b)/2;
  fx=eval(fun);
  if fx == 0, return; end
  while abs((b-a)/2) > toll
    n=n+1;
    if sign(fa) == sign(fx)
      a=x;
      fa=fx;
    else
      b=x;
      fb=fx;
    end
    x=(a+b)/2;
    fx=eval(fun);
    if fx == 0, return; end
  end
 
      
