function a = auc_roc(f,y,verbose)

if nargin < 3
	verbose = 0;
end

n = length(y);
% postive beispiele
np = max(sum(y >  0), 1);
% negative beispiele
nn = max(sum(y <= 0), 1);

posGreater = 1;
if posGreater == 1
    % wahrscheinlichkeit positive ist größer
    [~,i] = sort(f,'descend');  % sortiere absteigend
    y = y(i);
    xkoordinaten = zeros(n+1,1);
    ykoordinaten = zeros(n+1,1);
    % bestimme die koordinaten des diagrams
    for i = 1:n
        if y(i) > 0
            xkoordinaten(i+1) = xkoordinaten(i);
            ykoordinaten(i+1) = ykoordinaten(i) + 1;
        else
            xkoordinaten(i+1) = xkoordinaten(i) + 1;
            ykoordinaten(i+1) = ykoordinaten(i);
        end
    end
    a = auc(xkoordinaten/nn,ykoordinaten/np);
else
    % wahrscheinlichkeit negative ist größer
    [~,i] = sort(f,'ascend');  % sortiere aufsteigend
    y = y(i);
    xkoordinaten = zeros(n+1,1);
    ykoordinaten = zeros(n+1,1);
    % bestimme die koordinaten des diagrams
    for i = 1:n
        if y(i) > 0
            xkoordinaten(i+1) = xkoordinaten(i) + 1;
            ykoordinaten(i+1) = ykoordinaten(i);
        else
            xkoordinaten(i+1) = xkoordinaten(i);
            ykoordinaten(i+1) = ykoordinaten(i) + 1;
        end
    end
    a = auc(xkoordinaten/np,ykoordinaten/nn);
end

if verbose	
	plot(xkoordinaten/nn, ykoordinaten/np);
	title(['AUC (ROC): ' num2str(a, '%5.3f%%')]);	
end
