#11900: Serious regression caused by #9138
----------------------------------------------------------------------------------------+
Reporter: SimonKing
| Owner: tbd
Type: defect
| Status: needs_work
Priority: critical
| Milestone: sage-4.8
Component: performance
| Keywords: categories regression
Work_issues: Laurent series rings are fields. Add docs. Don't use is_ring and
friends | Upstream: N/A
Reviewer: Jeroen Demeyer, Nicolas M. ThiƩry
| Author: Simon King
Merged:
| Dependencies: #9138 #11911
----------------------------------------------------------------------------------------+
Comment(by SimonKing):
The culprit is `__init_extra__` in sage.categories.magmas, which does:
{{{
def __init_extra__(self):
"""
sage: S = Semigroups().example("free")
sage: S('a') * S('b') # indirect doctest
'ab'
sage: S('a').__class__._mul_ ==
S('a').__class__._mul_parent
True
"""
# This should instead register the multiplication to the
coercion model
# But this is not yet implemented in the coercion model
if (self.product != self.product_from_element_class_mul) and
hasattr(self, "element_class") and hasattr(self.element_class,
"_mul_parent"):
self.element_class._mul_ = self.element_class._mul_parent
}}}
In other words, an EXISTING AND PROBABLY OPTIMIZED _mul_ is overridden by
some generic slow stuff. So, I have to find out why this line is executed
(it shouldn't).
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/11900#comment:133>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sage-trac?hl=en.