[New-bugs-announce] [issue22238] fractions.gcd results in infinite loop when nan or inf given as parameter.
Robert Snoeberger
report at bugs.python.org
Wed Aug 20 19:31:43 CEST 2014
New submission from Robert Snoeberger:
>>> import fractions
>>> fractions.gcd(16, float('inf'))
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
fractions.gcd(16, float('inf'))
File "C:\Python34-32bit\lib\fractions.py", line 24, in gcd
a, b = b, a%b
KeyboardInterrupt
>>> fractions.gcd(16, float('nan'))
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
fractions.gcd(16, float('nan'))
File "C:\Python34-32bit\lib\fractions.py", line 24, in gcd
a, b = b, a%b
KeyboardInterrupt
>>>
With the iterative algorithm that is used
a, b = b, a%b
b converges to float('nan'). It will never become 0 to break out of the loop. It might be nice to error when the iteration has converged b to a value other than 0.
----------
components: Library (Lib)
messages: 225576
nosy: snoeberger
priority: normal
severity: normal
status: open
title: fractions.gcd results in infinite loop when nan or inf given as parameter.
type: enhancement
versions: Python 3.4
_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue22238>
_______________________________________
More information about the New-bugs-announce
mailing list