r"""
    Compute the maximum absolute deviation between two SArrays.

    Parameters
    ----------
    targets : SArray[float or int]
        An Sarray of ground truth target values.

    predictions : SArray[float or int]
        The prediction that corresponds to each target value.
        This vector must have the same length as ``targets``.

    Returns
    -------
    out : float
        The maximum absolute deviation error between the two SArrays.

    See Also
    --------
    rmse

    Notes
    -----
    The maximum absolute deviation between two vectors, x and y, is defined as:

    .. math::

        \textrm{max error} = \max_{i \in 1,\ldots,N} \|x_i - y_i\|

    Examples
    --------
    >>> targets = turicreate.SArray([3.14, 0.1, 50, -2.5])
    >>> predictions = turicreate.SArray([3.1, 0.5, 50.3, -5])
    >>> turicreate.evaluation.max_error(targets, predictions)
    2.5

def max_error(targets, predictions):
    r"""
    Compute the maximum absolute deviation between two SArrays.

    Parameters
    ----------
    targets : SArray[float or int]
        An Sarray of ground truth target values.

    predictions : SArray[float or int]
        The prediction that corresponds to each target value.
        This vector must have the same length as ``targets``.

    Returns
    -------
    out : float
        The maximum absolute deviation error between the two SArrays.

    See Also
    --------
    rmse

    Notes
    -----
    The maximum absolute deviation between two vectors, x and y, is defined as:

    .. math::

        \textrm{max error} = \max_{i \in 1,\ldots,N} \|x_i - y_i\|

    Examples
    --------
    >>> targets = turicreate.SArray([3.14, 0.1, 50, -2.5])
    >>> predictions = turicreate.SArray([3.1, 0.5, 50.3, -5])
    >>> turicreate.evaluation.max_error(targets, predictions)
    2.5
    """

    _supervised_evaluation_error_checking(targets, predictions)
    return _turicreate.extensions._supervised_streaming_evaluator(targets,
                                  predictions, "max_error", {})