function [loss, win, tie] = myMMRE(actuals,predictions,algorithms,preprocessors,datasetName)

% MRE = abs(actual - predicted)/actual and MMRE is the mean of all MREs

% define a variable to keep the MMRE results for each algorithm
MREResults = -1 * ones(size(algorithms,1),size(actuals,1));

% below two variables are used for plotting purposes later in the algorithm
minSumMRE = inf;    % first define miminum sum of MRE as plus infinity
minSumMREIndex = 0; % index is the row number

% process each algorithm's results to find the MRE values
for i = 1:size(algorithms,1)
   MREResults(i,:) = abs(actuals' - predictions(i,:))./actuals';
   if sum(MREResults(i,:)) < minSumMRE
       minSumMRE = sum(MREResults(i,:));
       minSumMREIndex = i;
   end   
end

% define win tie loss variables
win = zeros(size(algorithms,1),1);
tie = zeros(size(algorithms,1),1);
loss = zeros(size(algorithms,1),1);

% start calculating win tie loss values
for i = 1:size(algorithms,1)
    for j = (i+1):size(algorithms,1)
        if i ~= j   % if i and j are different
            eval(['[P,H] = ranksum(MREResults(',num2str(i),',:),MREResults(',num2str(j),',:));']);
            if H == 0   % if they are the same
                eval(['tie(',num2str(i),') = tie(',num2str(i),') +1;']);
                eval(['tie(',num2str(j),') = tie(',num2str(j),') +1;']);
            else
                % calculate mean values
                eval(['mmrei = mean(MREResults(',num2str(i),',:));']);
                eval(['mmrej = mean(MREResults(',num2str(j),',:));']);
                if mmrei < mmrej
                    eval(['win(',num2str(i),') = win(',num2str(i),') +1;']);
                    eval(['loss(',num2str(j),') = loss(',num2str(j),') +1;']);
                else
                    eval(['win(',num2str(j),') = win(',num2str(j),') +1;']);
                    eval(['loss(',num2str(i),') = loss(',num2str(i),') +1;']);
                end
            end
        end
    end
end

% % and now write the loss values to the file
% fid=fopen('RUN_RESULTS.txt','a' );
% for i = 1:size(algorithms,1)
%     fprintf(fid, [num2str(loss(i)) ',']);
% end
% fprintf(fid, ['\n']);    % append a new line at the end of the line
% % close file
% fclose(fid);

end