Author: Philip Jenvey <[email protected]>
Branch:
Changeset: r67840:934879cb2719
Date: 2013-11-04 14:31 -0800
http://bitbucket.org/pypy/pypy/changeset/934879cb2719/
Log: utilize rfloat.isfinite
diff --git a/pypy/module/micronumpy/types.py b/pypy/module/micronumpy/types.py
--- a/pypy/module/micronumpy/types.py
+++ b/pypy/module/micronumpy/types.py
@@ -26,9 +26,6 @@
log2 = math.log(2)
log2e = 1. / log2
-def isfinite(d):
- return not rfloat.isinf(d) and not rfloat.isnan(d)
-
def simple_unary_op(func):
specialize.argtype(1)(func)
@functools.wraps(func)
@@ -860,7 +857,7 @@
@raw_unary_op
def isfinite(self, v):
- return not (rfloat.isinf(v) or rfloat.isnan(v))
+ return rfloat.isfinite(v)
@simple_unary_op
def radians(self, v):
@@ -939,7 +936,7 @@
@simple_unary_op
def rint(self, v):
x = float(v)
- if isfinite(x):
+ if rfloat.isfinite(x):
import math
y = math.floor(x)
r = x - y
@@ -1028,7 +1025,7 @@
def str_format(self, box):
real, imag = self.for_computation(self.unbox(box))
imag_str = str_format(imag)
- if rfloat.isnan(imag) or rfloat.isinf(imag):
+ if not rfloat.isfinite(imag):
imag_str += '*'
imag_str += 'j'
@@ -1264,7 +1261,7 @@
def pow(self, v1, v2):
if v1[1] == 0 and v2[1] == 0 and v1[0] > 0:
return math.pow(v1[0], v2[0]), 0
- #if not isfinite(v1[0]) or not isfinite(v1[1]):
+ #if not rfloat.isfinite(v1[0]) or not rfloat.isfinite(v1[1]):
# return rfloat.NAN, rfloat.NAN
try:
return rcomplex.c_pow(v1, v2)
@@ -1331,9 +1328,9 @@
@specialize.argtype(1)
def round(self, v, decimals=0):
ans = list(self.for_computation(self.unbox(v)))
- if isfinite(ans[0]):
+ if rfloat.isfinite(ans[0]):
ans[0] = rfloat.round_double(ans[0], decimals, half_even=True)
- if isfinite(ans[1]):
+ if rfloat.isfinite(ans[1]):
ans[1] = rfloat.round_double(ans[1], decimals, half_even=True)
return self.box_complex(ans[0], ans[1])
@@ -1363,7 +1360,7 @@
if v[0] < 0:
return 0., 0.
return rfloat.INFINITY, rfloat.NAN
- elif (isfinite(v[0]) or \
+ elif (rfloat.isfinite(v[0]) or \
(rfloat.isinf(v[0]) and v[0] > 0)):
return rfloat.NAN, rfloat.NAN
try:
@@ -1391,7 +1388,7 @@
if v[0] < 0:
return -1., 0.
return rfloat.NAN, rfloat.NAN
- elif (isfinite(v[0]) or \
+ elif (rfloat.isfinite(v[0]) or \
(rfloat.isinf(v[0]) and v[0] > 0)):
return rfloat.NAN, rfloat.NAN
try:
@@ -1408,7 +1405,7 @@
if rfloat.isinf(v[0]):
if v[1] == 0.:
return rfloat.NAN, 0.
- if isfinite(v[1]):
+ if rfloat.isfinite(v[1]):
return rfloat.NAN, rfloat.NAN
elif not rfloat.isnan(v[1]):
return rfloat.NAN, rfloat.INFINITY
@@ -1419,7 +1416,7 @@
if rfloat.isinf(v[0]):
if v[1] == 0.:
return rfloat.NAN, 0.0
- if isfinite(v[1]):
+ if rfloat.isfinite(v[1]):
return rfloat.NAN, rfloat.NAN
elif not rfloat.isnan(v[1]):
return rfloat.INFINITY, rfloat.NAN
@@ -1427,7 +1424,7 @@
@complex_unary_op
def tan(self, v):
- if rfloat.isinf(v[0]) and isfinite(v[1]):
+ if rfloat.isinf(v[0]) and rfloat.isfinite(v[1]):
return rfloat.NAN, rfloat.NAN
return rcomplex.c_tan(*v)
@@ -1453,7 +1450,7 @@
@complex_unary_op
def sinh(self, v):
if rfloat.isinf(v[1]):
- if isfinite(v[0]):
+ if rfloat.isfinite(v[0]):
if v[0] == 0.0:
return 0.0, rfloat.NAN
return rfloat.NAN, rfloat.NAN
@@ -1464,7 +1461,7 @@
@complex_unary_op
def cosh(self, v):
if rfloat.isinf(v[1]):
- if isfinite(v[0]):
+ if rfloat.isfinite(v[0]):
if v[0] == 0.0:
return rfloat.NAN, 0.0
return rfloat.NAN, rfloat.NAN
@@ -1474,7 +1471,7 @@
@complex_unary_op
def tanh(self, v):
- if rfloat.isinf(v[1]) and isfinite(v[0]):
+ if rfloat.isinf(v[1]) and rfloat.isfinite(v[0]):
return rfloat.NAN, rfloat.NAN
return rcomplex.c_tanh(*v)
@@ -1503,7 +1500,7 @@
@raw_unary_op
def isfinite(self, v):
- return isfinite(v[0]) and isfinite(v[1])
+ return rfloat.isfinite(v[0]) and rfloat.isfinite(v[1])
#@simple_unary_op
#def radians(self, v):
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit