} else { if (minOrMaxOrOutliers) { float newPointsMax = getSideMax(cache, x, cachePointers, true, minMaxOutliersSign); if (newPointsMax >= max) { //compare with previous maximum 'max' max = newPointsMax; } else { float removedPointsMax = getSideMax(cache, x, cachePointers, false, minMaxOutliersSign); if (removedPointsMax >= max) max = getAreaMax(cache, x, cachePointers, 1, newPointsMax, minMaxOutliersSign);
} else { if (minOrMaxOrOutliers) { float newPointsMax = getSideMax(cache, x, cachePointers, true, minMaxOutliersSign); if (newPointsMax >= max) { //compare with previous maximum 'max' max = newPointsMax; } else { float removedPointsMax = getSideMax(cache, x, cachePointers, false, minMaxOutliersSign); if (removedPointsMax >= max) max = getAreaMax(cache, x, cachePointers, 1, newPointsMax, minMaxOutliersSign);