'Dot product of two representations.
Note that any associated differentials will be dropped during this
operation.
Parameters
other : representation
If not already cartesian, it is converted.
Returns
dot_product : `~astropy.units.Quantity`
The sum of the product of the x, y, and z components of ``self``
and ``other``.'

def dot(self, other):

    try:
        other_c = other.to_cartesian()
    except Exception:
        raise TypeError(u'cannot    only    take    dot    product    with    another    representation,    not    a    {0}    instance.'.format(type(other)))
    return functools.reduce(operator.add, ((getattr(self, component) * getattr(other_c, component)) for component in self.components))
