def _diff_series(
        self,
        series: Sequence[TimeSeries],
        pred_series: Sequence[TimeSeries],
    ) -> Sequence[TimeSeries]:
        """Applies the `diff_fn` to two sequences of time series. Converts two time series into 1.

        Each series-pair in series and pred_series must:
            - have a non-empty time intersection
            - be of the same width W

        Parameters
        ----------
        series
            A sequence of time series
        pred_series
            A sequence of predicted time series to compute `diff_fn` on.

        Returns
        -------
        Sequence[TimeSeries]
            A sequence of series of width W from the difference between `series` and `pred_series`.
        """
        residuals = self.diff_fn(series, pred_series, component_reduction=None)
        out = []
        for s1, s2, res in zip(series, pred_series, residuals):
            time_index = s2.slice_intersect_times(s1, copy=False)
            out.append(s2.with_times_and_values(times=time_index, values=res))
        return out
Applies the `diff_fn` to two sequences of time series. Converts two time series into 1.

        Each series-pair in series and pred_series must:
            - have a non-empty time intersection
            - be of the same width W

        Parameters
        ----------
        series
            A sequence of time series
        pred_series
            A sequence of predicted time series to compute `diff_fn` on.

        Returns
        -------
        Sequence[TimeSeries]
            A sequence of series of width W from the difference between `series` and `pred_series`.
        
darts/ad/scorers/scorers.py