def METHOD_NAME(*args, signs):
    """Flip an arbitrary set of input arrays based on a set of signs.
    Parameters
    ----------
    *args : array_like
        Any number of arrays with one dimension the same length as signs.
        If multiple dimensions share the same size as signs, behavior of this
        function will be unpredictable.
    signs : array_like of :obj:`int`
        Array of +/- 1 by which to flip the values in each argument.
    Returns
    -------
    *args : array_like
        Input arrays after sign flipping.
    """
    assert signs.ndim == 1, 'Argument "signs" must be one-dimensional.'
    for arg in args:
        assert len(signs) in arg.shape, (
            'Size of argument "signs" must match size of one dimension in '
            "each of the input arguments."
        )
        assert sum(x == len(signs) for x in arg.shape) == 1, (
            "Only one dimension of each input argument can match the length "
            'of argument "signs".'
        )
    # correct mixing & weights signs based on spatial distribution tails
    return [arg * signs for arg in args]