def _calculate(self, startingPercentage, endPercentage, startDate, endDate):
        """This is the error calculation function that gets called by :py:meth:`BaseErrorMeasure.get_error`.

        Both parameters will be correct at this time.

        :param float startingPercentage: Defines the start of the interval. This has to be a value in [0.0, 100.0].
            It represents the value, where the error calculation should be started.
            25.0 for example means that the first 25% of all calculated errors will be ignored.
        :param float endPercentage:    Defines the end of the interval. This has to be a value in [0.0, 100.0].
            It represents the value, after which all error values will be ignored. 90.0 for example means that
            the last 10% of all local errors will be ignored.
        :param float startDate: Epoch representing the start date used for error calculation.
        :param float endDate: Epoch representing the end date used in the error calculation.

        :return:    Returns a float representing the error.
        :rtype: float
        """
        # get the defined subset of error values
        errorValues = self._get_error_values(startingPercentage, endPercentage, startDate, endDate)

        # get the historic mean
        if startDate is not None:
            possibleDates = filter(lambda date: date >= startDate, self._errorDates)

            # This piece of code is not required, because _get_error_values already ensured that the startDate
            # was correct. Otherwise it would have thrown an exception.
            #if 0 == len(possibleDates):
            #    raise ValueError("%s does not represent a valid startDate." % startDate)

            meanIdx = self._errorDates.index(min(possibleDates))
        else:
            meanIdx = int((startingPercentage * len(self._errorValues)) / 100.0)

        mad = sum(errorValues) / float(len(errorValues))
        historicMean = self._historicMeans[meanIdx]

        return mad / historicMean
def _calculate ( self , startingPercentage , endPercentage , startDate , endDate ) : errorValues = self . _get_error_values ( startingPercentage , endPercentage , startDate , endDate ) if startDate is not None : possibleDates = filter ( lambda date : date >= startDate , self . _errorDates ) meanIdx = self . _errorDates . index ( min ( possibleDates ) ) else : meanIdx = int ( ( startingPercentage * len ( self . _errorValues ) ) / 100.0 ) mad = sum ( errorValues ) / float ( len ( errorValues ) ) historicMean = self . _historicMeans [ meanIdx ] return mad / historicMean
This is the error calculation function that gets called by :py:meth:`BaseErrorMeasure.get_error`.

        Both parameters will be correct at this time.

        :param float startingPercentage: Defines the start of the interval. This has to be a value in [0.0, 100.0].
            It represents the value, where the error calculation should be started.
            25.0 for example means that the first 25% of all calculated errors will be ignored.
        :param float endPercentage:    Defines the end of the interval. This has to be a value in [0.0, 100.0].
            It represents the value, after which all error values will be ignored. 90.0 for example means that
            the last 10% of all local errors will be ignored.
        :param float startDate: Epoch representing the start date used for error calculation.
        :param float endDate: Epoch representing the end date used in the error calculation.

        :return:    Returns a float representing the error.
        :rtype: float