diff Objects/floatobject.c @ 43284:1f9eee08ab35

Check in some documentation tweaks for PEP 3141, add some tests, and implement the promotion to complex on pow(negative, fraction).
author Jeffrey Yasskin <jyasskin@gmail.com>
date Fri, 07 Sep 2007 15:15:49 +0000
parents 727539865f04
children 0ff41b163f5b
line wrap: on
line diff
--- a/Objects/floatobject.c	Fri Sep 07 15:00:39 2007 +0000
+++ b/Objects/floatobject.c	Fri Sep 07 15:15:49 2007 +0000
@@ -680,9 +680,10 @@
 		 * bugs so we have to figure it out ourselves.
 		 */
 		if (iw != floor(iw)) {
-			PyErr_SetString(PyExc_ValueError, "negative number "
-				"cannot be raised to a fractional power");
-			return NULL;
+			/* Negative numbers raised to fractional powers
+			 * become complex.
+			 */
+			return PyComplex_Type.tp_as_number->nb_power(v, w, z);
 		}
 		/* iw is an exact integer, albeit perhaps a very large one.
 		 * -1 raised to an exact integer should never be exceptional.