function [output] = libreria_funzioni(z,flag)
% Funzione che contiene una libreria di funzioni matematiche
% Input:  vettore di valori x; etichetta che identifica la funzione
% Output: vettore di valori corrispondenti a f(x)

if flag==1
    output=exp(z)-1 ;
elseif flag==2
    j=find(z==0) ;
    znew=[z(1:j-1) z(j+1:end)];
    if j 
        disp('funzione non definita nell''intervallo dato')
        output=1-1./znew;
        output=[output zeros(1,1)] ;  %per il plot iniziale
    else
        output=1-1./z;
    end 
    output=1-1./z;
elseif flag==3
    output=1./(1+z.^2);
elseif flag==4
    j=find(z==0) ;
    znew=[z(1:j-1) z(j+1:end)];
    if j 
        disp('funzione non definita nell''intervallo dato')
        output=((znew.^2-5*znew+6).*log(abs(znew)))./znew ;
        output=[output zeros(1,1)] ;  %per il plot iniziale
    else
        output=((z.^2-5*z+6).*log(abs(z)))./z ;
    end
else
    disp('Funzione ignota')
    output=0 ;
end

end
