'Convert the differential to 3D rectangular cartesian coordinates.
Parameters
base : instance of ``self.base_representation``
The points for which the differentials are to be converted: each of
the components is multiplied by its unit vectors and scale factors.
Returns
This object as a `CartesianDifferential`'

def to_cartesian(self, base):

    (base_e, base_sf) = self._get_base_vectors(base)
    return functools.reduce(operator.add, (((getattr(self, d_c) * base_sf[c]) * base_e[c]) for (d_c, c) in zip(self.components, base.components)))
