On Sun, Apr 13, 2008 at 9:37 PM, <[EMAIL PROTECTED]> wrote: > > sage: Q.<x,y> = QQ['x,y'] > sage: R.<X,Y> = Q.quo(Q.ideal(x^2 + y^2 -1)) > sage: X/2 > --------------------------------------------------------------------------- > <type 'exceptions.NotImplementedError'> Traceback (most recent call last) > > /home/boothby/.sage/<ipython console> in <module>() > > /home/boothby/.sage/element.pyx in > sage.structure.element.RingElement.__div__ (sage/structure/element.c:9080)() > > /home/boothby/.sage/coerce.pyx in > sage.structure.coerce.CoercionModel_cache_maps.bin_op_c > (sage/structure/coerce.c:5055)() > > /home/boothby/.sage/element.pyx in > sage.structure.element.RingElement.__div__ (sage/structure/element.c:9063)() > > /home/boothby/.sage/coerce.pxi in sage.structure.element._div_c > (sage/structure/element.c:16174)() > > > /home/boothby/sage/local/lib/python2.5/site-packages/sage/rings/quotient_ring_element.py > in _div_(self, right) > 114 if not right.is_unit(): > 115 raise ZeroDivisionError > --> 116 raise NotImplementedError > 117 > 118 def __int__(self): > > <type 'exceptions.NotImplementedError'>: > > > I'd understand if I were trying to divide by a non-unit, or even a unit > polynomial. But I'm trying to divide by a unit in the base ring -- shouldn't > that work? Is this a problem in the coercion model, or is it validly not > implemented? >
It's simply not implemented. Implement it and post a patch.... :-) The source code for the function _div_ that is called is sage: X._div_?? Source: def _div_(self, right): if not right.is_unit(): raise ZeroDivisionError raise NotImplementedError which does *not* presently try to invert right if it does happen to be a unit in the base ring. Why? Because it's not implemented yet. Your best bet is to either implement better functionality for computing in quotient rings or to type sage: X * (1/2) 1/2*X By the way, looking at the file quotient_ring_element.py, I would bring the doctest coverage to 100% before adding or subtracting any code from that file. Right now coverage is a terrible 24%. -- william --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to sage-devel@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sage-devel URLs: http://www.sagemath.org -~----------~----~----~----~------~----~------~--~---