#16374: better two_squares, three_squares, four_squares for small input
-------------------------+-------------------------------------------------
Reporter: | Owner:
vdelecroix | Status: needs_work
Type: | Milestone: sage-6.3
enhancement | Resolution:
Priority: major | Merged in:
Component: | Reviewers: Jeroen Demeyer, Leif Leonhardy,
number theory | Nathann Cohen
Keywords: | Work issues:
Authors: | Commit:
Vincent Delecroix | 1b965f8361b779b8e888bb56a249ea48ac4b6852
Report Upstream: N/A | Stopgaps:
Branch: |
public/16374 |
Dependencies: |
-------------------------+-------------------------------------------------
Changes (by vbraun):
* status: positive_review => needs_work
Comment:
Fails on 32 bit:
{{{
sage -t --long src/sage/rings/sum_of_squares.pyx
**********************************************************************
File "src/sage/rings/sum_of_squares.pyx", line 156, in
sage.rings.sum_of_squares.two_squares_pyx
Failed example:
two_squares_pyx(2**32)
Expected:
Traceback (most recent call last):
...
OverflowError: value too large to convert to uint32_t
Got:
<BLANKLINE>
Traceback (most recent call last):
File "/home/buildslave-sage/slave/sage_git/build/local/lib/python2.7
/site-packages/sage/doctest/forker.py", line 480, in _run
self.execute(example, compiled, test.globs)
File "/home/buildslave-sage/slave/sage_git/build/local/lib/python2.7
/site-packages/sage/doctest/forker.py", line 839, in execute
exec compiled in globs
File "<doctest sage.rings.sum_of_squares.two_squares_pyx[6]>", line
1, in <module>
two_squares_pyx(Integer(2)**Integer(32))
File "sum_of_squares.pyx", line 128, in
sage.rings.sum_of_squares.two_squares_pyx
(sage/rings/sum_of_squares.c:2759)
OverflowError: long int too large to convert
**********************************************************************
File "src/sage/rings/sum_of_squares.pyx", line 197, in
sage.rings.sum_of_squares.is_sum_of_two_squares_pyx
Failed example:
is_sum_of_two_squares_pyx(2**32)
Expected:
Traceback (most recent call last):
...
OverflowError: value too large to convert to uint32_t
Got:
<BLANKLINE>
Traceback (most recent call last):
File "/home/buildslave-sage/slave/sage_git/build/local/lib/python2.7
/site-packages/sage/doctest/forker.py", line 480, in _run
self.execute(example, compiled, test.globs)
File "/home/buildslave-sage/slave/sage_git/build/local/lib/python2.7
/site-packages/sage/doctest/forker.py", line 839, in execute
exec compiled in globs
File "<doctest
sage.rings.sum_of_squares.is_sum_of_two_squares_pyx[2]>", line 1, in
<module>
is_sum_of_two_squares_pyx(Integer(2)**Integer(32))
File "sum_of_squares.pyx", line 184, in
sage.rings.sum_of_squares.is_sum_of_two_squares_pyx
(sage/rings/sum_of_squares.c:2916)
OverflowError: long int too large to convert
**********************************************************************
File "src/sage/rings/sum_of_squares.pyx", line 244, in
sage.rings.sum_of_squares.three_squares_pyx
Failed example:
three_squares_pyx(2**32)
Expected:
Traceback (most recent call last):
...
OverflowError: value too large to convert to uint32_t
Got:
<BLANKLINE>
Traceback (most recent call last):
File "/home/buildslave-sage/slave/sage_git/build/local/lib/python2.7
/site-packages/sage/doctest/forker.py", line 480, in _run
self.execute(example, compiled, test.globs)
File "/home/buildslave-sage/slave/sage_git/build/local/lib/python2.7
/site-packages/sage/doctest/forker.py", line 839, in execute
exec compiled in globs
File "<doctest sage.rings.sum_of_squares.three_squares_pyx[10]>",
line 1, in <module>
three_squares_pyx(Integer(2)**Integer(32))
File "sum_of_squares.pyx", line 212, in
sage.rings.sum_of_squares.three_squares_pyx
(sage/rings/sum_of_squares.c:3045)
OverflowError: long int too large to convert
**********************************************************************
File "src/sage/rings/sum_of_squares.pyx", line 291, in
sage.rings.sum_of_squares.four_squares_pyx
Failed example:
four_squares_pyx(2**32)
Expected:
Traceback (most recent call last):
...
OverflowError: value too large to convert to uint32_t
Got:
<BLANKLINE>
Traceback (most recent call last):
File "/home/buildslave-sage/slave/sage_git/build/local/lib/python2.7
/site-packages/sage/doctest/forker.py", line 480, in _run
self.execute(example, compiled, test.globs)
File "/home/buildslave-sage/slave/sage_git/build/local/lib/python2.7
/site-packages/sage/doctest/forker.py", line 839, in execute
exec compiled in globs
File "<doctest sage.rings.sum_of_squares.four_squares_pyx[5]>", line
1, in <module>
four_squares_pyx(Integer(2)**Integer(32))
File "sum_of_squares.pyx", line 266, in
sage.rings.sum_of_squares.four_squares_pyx
(sage/rings/sum_of_squares.c:3209)
OverflowError: long int too large to convert
**********************************************************************
4 items had failures:
1 of 10 in sage.rings.sum_of_squares.four_squares_pyx
1 of 4 in sage.rings.sum_of_squares.is_sum_of_two_squares_pyx
1 of 14 in sage.rings.sum_of_squares.three_squares_pyx
1 of 11 in sage.rings.sum_of_squares.two_squares_pyx
[35 tests, 4 failures, 0.83 s]
}}}
--
Ticket URL: <http://trac.sagemath.org/ticket/16374#comment:42>
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.