def METHOD_NAME(between_absolute, within_absolute, total):
    """
    This computes the between and within event std given the total std.
    :param total:
        A 1D :class:`numpy.ndarray` with the total standard deviation
        values.
    :param stds_types:
        A list with the type of std requested.
    :return:
        A list of 3 arrays
    """
    # Compute missing standard deviations
    new_stds = {'total': total}
    if np.isscalar(between_absolute):
        between = np.ones_like(total) * between_absolute
        if np.any(total - between < 0):
            raise ValueError('Between event std larger than total')
        within = np.sqrt(total**2 - between**2)
        new_stds['between'] = between
        new_stds['within'] = within
    elif np.isscalar(within_absolute):
        within = np.ones_like(total) * within_absolute
        if np.any(total - within < 0):
            raise ValueError('Within event std larger than total')
        between = np.sqrt(total**2 - within**2)
        new_stds['between'] = between
        new_stds['within'] = within
    else:
        pass
    return [new_stds['total'], new_stds['between'], new_stds['within']]