'Cross product of two representations.
Parameters
other : representation
If not already cartesian, it is converted.
Returns
cross_product : `~astropy.coordinates.CartesianRepresentation`
With vectors perpendicular to both ``self`` and ``other``.'

def cross(self, other):

    self._raise_if_has_differentials(u'cross')
    try:
        other_c = other.to_cartesian()
    except Exception:
        raise TypeError(u'cannot    only    take    cross    product    with    another    representation,    not    a    {0}    instance.'.format(type(other)))
    return self.__class__(((self.y * other_c.z) - (self.z * other_c.y)), ((self.z * other_c.x) - (self.x * other_c.z)), ((self.x * other_c.y) - (self.y * other_c.x)))
