#19628: lazy_import breaks creation of polynomial rings
-------------------------------------+-------------------------------------
       Reporter:  cheuberg           |        Owner:
           Type:  defect             |       Status:  new
       Priority:  major              |    Milestone:  sage-6.10
      Component:  coercion           |   Resolution:
       Keywords:                     |    Merged in:
        Authors:                     |    Reviewers:
Report Upstream:  N/A                |  Work issues:
         Branch:  u/cheuberg/19152   |       Commit:
  -arb-misc-lazy-import              |  b21aa6e069182b08aca3cf7c24d6ed24e5926510
   Dependencies:  #19152             |     Stopgaps:
-------------------------------------+-------------------------------------
Changes (by jdemeyer):

 * component:  numerical => coercion


Old description:

> In #19152, a `lazy_import` of `RBF` and `RealBallField` led to the error
> {{{
> sage: polygen(RBF, x)
> x
> sage: RBF(1) + polygen(QQ, x)
> ---------------------------------------------------------------------------
> TypeError                                 Traceback (most recent call
> last)
> <ipython-input-2-2c3da6ca2a95> in <module>()
> ----> 1 RBF(Integer(1)) + polygen(QQ, x)
>
> /usr/local/src/sage-git/src/sage/structure/element.pyx in
> sage.structure.element.RingElement.__add__
> (build/cythonized/sage/structure/element.c:15967)()
>    1649         elif PyInt_CheckExact(left):
>    1650             return
> (<RingElement>right)._add_long(PyInt_AS_LONG(left))
> -> 1651         return coercion_model.bin_op(left, right, add)
>    1652
>    1653     cdef RingElement _add_long(self, long n):
>
> /usr/local/src/sage-git/src/sage/structure/coerce.pyx in
> sage.structure.coerce.CoercionModel_cache_maps.bin_op
> (build/cythonized/sage/structure/coerce.c:9835)()
>    1067         # We should really include the underlying error.
>    1068         # This causes so much headache.
> -> 1069         raise TypeError(arith_error_message(x,y,op))
>    1070
>    1071     cpdef canonical_coercion(self, x, y):
>
> TypeError: unsupported operand parent(s) for '+': 'Real ball field with
> 53 bits precision' and 'Univariate Polynomial Ring in x over Rational
> Field'
> }}}

New description:

 In #19152, a `lazy_import` of `RBF` and `RealBallField` led to the error
 {{{
 sage: PolynomialRing(RealBallField(), 'x') is PolynomialRing(RBF, 'x')
 False
 }}}

--

--
Ticket URL: <http://trac.sagemath.org/ticket/19628#comment:3>
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 unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.

Reply via email to