<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _calculate_forecast(self, originalTimeSeries, smoothedData, seasonValues, lastSmoothingParams):
 """Calculates the actual forecasted based on the input data. :param TimeSeries timeSeries: TimeSeries containing hte data. :param list smoothedData: Contains the smoothed time series data. :param list seasonValues: Contains the seasonal values for the forecast. :param list lastSmoothingParams: List containing the last [estimator, season value, trend] calculated during smoothing the TimeSeries. :return: Returns a list containing forecasted values """

        forecastResults = []

        lastEstimator, lastSeasonValue, lastTrend = lastSmoothingParams

        seasonLength = self.get_parameter("seasonLength")

        #Forecasting. Determine the time difference between two points for extrapolation
        currentTime        = smoothedData[-1][0]
        normalizedTimeDiff = currentTime - smoothedData[-2][0]

        for m in xrange(1, self._parameters["valuesToForecast"] + 1):
            currentTime += normalizedTimeDiff
            lastSeasonValue = seasonValues[(len(originalTimeSeries) + m - 2) % seasonLength]
            forecast = (lastEstimator + m * lastTrend) * lastSeasonValue
            forecastResults.append([currentTime, forecast])

        return forecastResults