#13824: ZeroDivisionError in finite field __contains__
------------------------------------+---------------------------------------
Reporter: vbraun | Owner: AlexGhitza
Type: defect | Status: new
Priority: major | Milestone: sage-5.6
Component: basic arithmetic | Resolution:
Keywords: beginner | Work issues:
Report Upstream: N/A | Reviewers:
Authors: | Merged in:
Dependencies: | Stopgaps:
------------------------------------+---------------------------------------
Description changed by vbraun:
Old description:
> The `__contains__` method should return ``False`` if the element is not
> cyclotomic, but instead it blows up with a zero division error if the
> denominator is zero in the cyclotomic field:
> {{{
> sage: 4/3 in GF(3)
> ERROR: An unexpected error occurred while tokenizing input
> The following traceback may be corrupted or invalid
> The error message is: ('EOF in multi-line statement', (1931, 0))
>
> ERROR: An unexpected error occurred while tokenizing input
> The following traceback may be corrupted or invalid
> The error message is: ('EOF in multi-line statement', (1936, 0))
>
> ---------------------------------------------------------------------------
> ZeroDivisionError Traceback (most recent call
> last)
>
> /home/vbraun/Documents/Ftheory/ToricFibrationsP2/TateShafarevich/<ipython
> console> in <module>()
>
> /home/vbraun/opt/sage-5.5.rc0/local/lib/python2.7/site-
> packages/sage/structure/parent.so in
> sage.structure.parent.Parent.__contains__
> (sage/structure/parent.c:7845)()
>
> /home/vbraun/opt/sage-5.5.rc0/local/lib/python2.7/site-
> packages/sage/structure/parent.so in
> sage.structure.parent.Parent.__call__ (sage/structure/parent.c:7305)()
>
> /home/vbraun/opt/sage-5.5.rc0/local/lib/python2.7/site-
> packages/sage/structure/coerce_maps.so in
> sage.structure.coerce_maps.DefaultConvertMap_unique._call_
> (sage/structure/coerce_maps.c:3583)()
>
> /home/vbraun/opt/sage-5.5.rc0/local/lib/python2.7/site-
> packages/sage/structure/coerce_maps.so in
> sage.structure.coerce_maps.DefaultConvertMap_unique._call_
> (sage/structure/coerce_maps.c:3485)()
>
> /home/vbraun/opt/sage-5.5.rc0/local/lib/python2.7/site-
> packages/sage/rings/finite_rings/integer_mod_ring.pyc in
> _element_constructor_(self, x)
> 928 """
> 929 try:
> --> 930 return integer_mod.IntegerMod(self, x)
> 931 except (NotImplementedError, PariError):
> 932 raise TypeError, "error coercing to finite field"
>
> /home/vbraun/opt/sage-5.5.rc0/local/lib/python2.7/site-
> packages/sage/rings/finite_rings/integer_mod.so in
> sage.rings.finite_rings.integer_mod.IntegerMod
> (sage/rings/finite_rings/integer_mod.c:3501)()
>
> /home/vbraun/opt/sage-5.5.rc0/local/lib/python2.7/site-
> packages/sage/rings/finite_rings/integer_mod.so in
> sage.rings.finite_rings.integer_mod.IntegerMod_int.__init__
> (sage/rings/finite_rings/integer_mod.c:19191)()
>
> /home/vbraun/opt/sage-5.5.rc0/local/lib/python2.7/site-
> packages/sage/rings/rational.so in sage.rings.rational.Rational.__mod__
> (sage/rings/rational.c:20034)()
>
> /home/vbraun/opt/sage-5.5.rc0/local/lib/python2.7/site-
> packages/sage/rings/integer.so in sage.rings.integer.Integer.inverse_mod
> (sage/rings/integer.c:32846)()
>
> ZeroDivisionError: Inverse does not exist.
> }}}
New description:
The `__contains__` method should return ``False`` if the element does not
make sense in the finite field, but instead it blows up with a zero
division error if the denominator is zero in the finite field:
{{{
sage: 4/3 in GF(3)
ERROR: An unexpected error occurred while tokenizing input
The following traceback may be corrupted or invalid
The error message is: ('EOF in multi-line statement', (1931, 0))
ERROR: An unexpected error occurred while tokenizing input
The following traceback may be corrupted or invalid
The error message is: ('EOF in multi-line statement', (1936, 0))
---------------------------------------------------------------------------
ZeroDivisionError Traceback (most recent call
last)
/home/vbraun/Documents/Ftheory/ToricFibrationsP2/TateShafarevich/<ipython
console> in <module>()
/home/vbraun/opt/sage-5.5.rc0/local/lib/python2.7/site-
packages/sage/structure/parent.so in
sage.structure.parent.Parent.__contains__ (sage/structure/parent.c:7845)()
/home/vbraun/opt/sage-5.5.rc0/local/lib/python2.7/site-
packages/sage/structure/parent.so in sage.structure.parent.Parent.__call__
(sage/structure/parent.c:7305)()
/home/vbraun/opt/sage-5.5.rc0/local/lib/python2.7/site-
packages/sage/structure/coerce_maps.so in
sage.structure.coerce_maps.DefaultConvertMap_unique._call_
(sage/structure/coerce_maps.c:3583)()
/home/vbraun/opt/sage-5.5.rc0/local/lib/python2.7/site-
packages/sage/structure/coerce_maps.so in
sage.structure.coerce_maps.DefaultConvertMap_unique._call_
(sage/structure/coerce_maps.c:3485)()
/home/vbraun/opt/sage-5.5.rc0/local/lib/python2.7/site-
packages/sage/rings/finite_rings/integer_mod_ring.pyc in
_element_constructor_(self, x)
928 """
929 try:
--> 930 return integer_mod.IntegerMod(self, x)
931 except (NotImplementedError, PariError):
932 raise TypeError, "error coercing to finite field"
/home/vbraun/opt/sage-5.5.rc0/local/lib/python2.7/site-
packages/sage/rings/finite_rings/integer_mod.so in
sage.rings.finite_rings.integer_mod.IntegerMod
(sage/rings/finite_rings/integer_mod.c:3501)()
/home/vbraun/opt/sage-5.5.rc0/local/lib/python2.7/site-
packages/sage/rings/finite_rings/integer_mod.so in
sage.rings.finite_rings.integer_mod.IntegerMod_int.__init__
(sage/rings/finite_rings/integer_mod.c:19191)()
/home/vbraun/opt/sage-5.5.rc0/local/lib/python2.7/site-
packages/sage/rings/rational.so in sage.rings.rational.Rational.__mod__
(sage/rings/rational.c:20034)()
/home/vbraun/opt/sage-5.5.rc0/local/lib/python2.7/site-
packages/sage/rings/integer.so in sage.rings.integer.Integer.inverse_mod
(sage/rings/integer.c:32846)()
ZeroDivisionError: Inverse does not exist.
}}}
--
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/13824#comment:2>
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.