function mu_nr = EndPointCooke_rlargest(simData,r) % Estimates the endpoint. % % see also EndPointSimulationCooke simData = sort(simData); %choose the r largest rlargest = simData(end-r+1:end); x1 = min(rlargest); xn = max(rlargest); v_nr = (1/(r-1)) * sum(log((xn-x1)./(xn-rlargest(2:end-1)))); row = repmat([1:r]',1,r); col = row'; lambda = (gamma(2*v_nr + row).*gamma(v_nr + col)) ./ (gamma(v_nr+row).*gamma(col)); lambda = tril(lambda) + tril(lambda,-1)'; one = ones(r,1); a = inv(one'*inv(lambda)*one) * inv(lambda) * one; mu_nr = sum(a'.*fliplr(rlargest));