def evaluate(self):
if not self._is_aligned:<EOL><INDENT>self.result_type, self.aligned_axes = _align(self.expr.terms)<EOL><DEDENT>res = self._evaluate()<EOL>return _reconstruct_object(self.result_type, res, self.aligned_axes,<EOL>self.expr.terms.return_type)<EOL>
Run the engine on the expression

        This method performs alignment which is necessary no matter what engine
        is being used, thus its implementation is in the base class.

        Returns
        -------
        obj : object
            The result of the passed expression.