Skip to content

Commit a22e394

Browse files
authored
Simplify Float.__new__
1 parent 920e433 commit a22e394

File tree

1 file changed

+8
-21
lines changed

1 file changed

+8
-21
lines changed

symengine/sympy_compat.py

Lines changed: 8 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -59,30 +59,17 @@ def __new__(cls, num, dps=None, precision=None):
5959
if precision is None:
6060
precision = dps_to_prec(dps)
6161

62-
if HAVE_SYMENGINE_MPFR:
62+
IF HAVE_SYMENGINE_MPFR:
6363
if precision > 53:
64-
if isinstance(num, symengine.RealDouble):
65-
return symengine.RealMPFR(str(num), precision)
66-
elif isinstance(num, symengine.RealMPFR):
67-
if precision == num.get_prec():
68-
return num
69-
else:
70-
return symengine.RealMPFR(str(num), precision)
71-
else:
72-
return symengine.RealMPFR(str(num), precision)
73-
else:
74-
if isinstance(num, symengine.RealDouble):
64+
if isinstance(num, symengine.RealMPFR) and precision == num.get_prec():
7565
return num
76-
else:
77-
return symengine.RealDouble(float(num))
66+
return symengine.RealMPFR(str(num), precision)
67+
if precision > 53:
68+
raise ValueError('RealMPFR unavailable for high precision numerical values.')
69+
elif isinstance(num, symengine.RealDouble):
70+
return num
7871
else:
79-
if precision > 53:
80-
raise ValueError('RealMPFR unavailable for high precision numerical values.')
81-
else:
82-
if isinstance(num, symengine.RealDouble):
83-
return num
84-
else:
85-
return symengine.RealDouble(float(str(num)))
72+
return symengine.RealDouble(float(num))
8673

8774

8875
RealNumber = Float

0 commit comments

Comments
 (0)