Tim Rowe wrote:
2008/12/18 Scott David Daniels <[email protected]>:def quadsolve(a, b, c): try: discriminant = sqrt(b**2 - 4 * a * c)The discriminant of a quadratic is more usually just the b**2 - 4 * a * c part, not the square root of it. Testing that for negative, zero or positive avoids the need to use an exception for a normal case.
Absolutely right. Blame the oversight on my old CPU-stingy days. When the CPU was slow, avoiding a sqrt here or there (if you didn't have a sqrt opcode) was so important that I do it without thinking these days. Since I still have that disease, perhaps the variable should be renamed root_discriminant. As for the testing, I find using math.sqrt catches the negative cases and raises an exception by itself, leaving only the issue of whether or not to return a pair or singleton. Usually for my purposes, I'd let the exception fly and not return an (?the?) empty tuple. --Scott David Daniels [email protected] -- http://mail.python.org/mailman/listinfo/python-list
