@classmethod
def broadcast_arrays(cls, array1, array2):
    """
        Broadcast two arrays against each other.

        Returns
        -------
        broadcast_array1 : array1 or a broadcast of array1
        broadcast_array2 : array2 or a broadcast of array2
            The returned arrays will be broadcast against each other.
            Any array which is already in full broadcast shape will be
            returned unchanged.

        """
    shape, bcast_kwargs1, bcast_kwargs2 = cls._compute_broadcast_kwargs(array1
        .shape, array2.shape)
    if any(bcast_kwargs1.values()):
        array1 = cls(array1, **bcast_kwargs1)
    if any(bcast_kwargs2.values()):
        array2 = cls(array2, **bcast_kwargs2)
    return array1, array2
