]> gitweb.michael.orlitzky.com - sage.d.git/blobdiff - mjo/eja/eja_element.py
eja: use the new deep change_ring() to clean things up.
[sage.d.git] / mjo / eja / eja_element.py
index e8c183b51d522efd14aba57b779b4b5ebfa4b896..81c2b54fca757f0696468b5c450a6dda674a0f7a 100644 (file)
@@ -1125,14 +1125,13 @@ class FiniteDimensionalEJAElement(IndexedFreeModuleElement):
         B = self.parent().matrix_basis()
         W = self.parent().matrix_space()
 
-        if self.parent()._matrix_basis_is_cartesian:
+        if hasattr(W, 'cartesian_factors'):
             # Aaaaand linear combinations don't work in Cartesian
-            # product spaces, even though they provide a method
-            # with that name. This is special-cased because the
+            # product spaces, even though they provide a method with
+            # that name. This is hidden behind an "if" because the
             # _scale() function is slow.
             pairs = zip(B, self.to_vector())
-            return sum( ( _scale(b, alpha) for (b,alpha) in pairs ),
-                        W.zero())
+            return W.sum( _scale(b, alpha) for (b,alpha) in pairs )
         else:
             # This is just a manual "from_vector()", but of course
             # matrix spaces aren't vector spaces in sage, so they