Status: New
Owner: ----
Labels: Type-Defect Priority-Medium
New issue 3611 by [email protected]: sqrt(x) should be the same as x ** 0.5
http://code.google.com/p/sympy/issues/detail?id=3611
There seems to be some kind of mishandling of non-integer powers:
In [57]: x ** .5 - sqrt (x)
Out[57]:
0.5 ___
x - ╲╱ x
should be 0
Besides,
In [52]: integrate (exp (x ** .5), x)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-52-0116376575d1> in <module>()
----> 1 integrate (exp (x ** .5), x)
/opt/local/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/site-packages/sympy/utilities/decorator.py
in
threaded_func(expr, *args, **kwargs)
23 func(expr.rhs, *args,
**kwargs))
24 else:
---> 25 return func(expr, *args, **kwargs)
26
27 return threaded_func
/opt/local/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/site-packages/sympy/integrals/integrals.py
in
integrate(*args, **kwargs)
1358
1359 if isinstance(integral, Integral):
-> 1360 return integral.doit(deep = False, meijerg = meijerg, conds
= conds)
1361 else:
1362 return integral
/opt/local/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/site-packages/sympy/integrals/integrals.py
in
doit(self, **hints)
732 antideriv = None
733 else:
--> 734 antideriv = self._eval_integral(function, xab[0],
meijerg1)
735 if antideriv is None and meijerg1 is True:
736 ret = try_meijerg(function, xab)
/opt/local/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/site-packages/sympy/integrals/integrals.py
in
_eval_integral(self, f, x, meijerg)
1008 # rewrite using G functions
1009 try:
-> 1010 h = meijerint_indefinite(g, x)
1011 except NotImplementedError:
1012 from sympy.integrals.meijerint import _debug
/opt/local/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/site-packages/sympy/integrals/meijerint.py
in
meijerint_indefinite(f, x)
1496 results = []
1497 for a in list(_find_splitting_points(f, x)) + [S(0)]:
-> 1498 res = _meijerint_indefinite_1(f.subs(x, x + a), x)
1499 if res is None:
1500 continue
/opt/local/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/site-packages/sympy/integrals/meijerint.py
in
_meijerint_indefinite_1(f, x)
1541 else:
1542 r = meijerg(tr(g.an) + [1], tr(g.aother), tr(g.bm),
tr(g.bother) + [0], t)
-> 1543 r = hyperexpand(r.subs(t, a*x**b))
1544
1545 # now substitute back
/opt/local/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/site-packages/sympy/simplify/hyperexpand.py
in
hyperexpand(f, allow_hyper, rewrite)
2532 if not r.has(nan, zoo, oo, -oo):
2533 return r
-> 2534 return f.replace(hyper, do_replace).replace(meijerg, do_meijer)
2535
2536 from sympy.polys.polytools import Poly
/opt/local/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/site-packages/sympy/core/basic.py
in
replace(self, query, value, map)
1236 return None
1237
-> 1238 result = rec_replace(self)
1239
1240 if result is None:
/opt/local/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/site-packages/sympy/core/basic.py
in
rec_replace(expr)
1227
1228 if result:
-> 1229 value = _value(expr, result)
1230
1231 if map:
/opt/local/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/site-packages/sympy/core/basic.py
in
<lambda>(expr, result)
1184 _value = lambda expr, result: value(*expr.args)
1185 elif isinstance(value, collections.Callable):
-> 1186 _value = lambda expr, result: value(*expr.args)
1187 else:
1188 raise TypeError("given a type, replace() expects
another type or a callable")
/opt/local/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/site-packages/sympy/simplify/hyperexpand.py
in
do_meijer(ap, bq, z)
2529 def do_meijer(ap, bq, z):
2530 r = _meijergexpand(IndexQuadruple(ap[0], ap[1], bq[0],
bq[1]), z,
-> 2531 allow_hyper, rewrite=rewrite)
2532 if not r.has(nan, zoo, oo, -oo):
2533 return r
/opt/local/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/site-packages/sympy/simplify/hyperexpand.py
in
_meijergexpand(iq, z0, allow_hyper, rewrite)
2412
2413 t = Dummy('t')
-> 2414 slater1, cond1 = do_slater(iq.an, iq.bm, iq.ap, iq.bq, z, z0)
2415
2416 def tr(l):
/opt/local/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/site-packages/sympy/simplify/hyperexpand.py
in
do_slater(an, bm, ap, bq, z, zfinal)
2348 premult = (t/k)**bh
2349 hyp = _hyperexpand(IndexPair(nap, nbq), harg, ops,
-> 2350 t, premult, bh, rewrite=None)
2351 res += fac * hyp
2352 else:
/opt/local/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/site-packages/sympy/simplify/hyperexpand.py
in
_hyperexpand(ip, z, ops0, z0, premult, prem, rewrite)
2069 # Try to recognise a shifted sum.
2070 p = S(0)
-> 2071 res = try_shifted_sum(nip, z0)
2072 if res != None:
2073 nip, nops, p = res
/opt/local/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/site-packages/sympy/simplify/hyperexpand.py
in
try_shifted_sum(ip, z)
1711
1712 ops = []
-> 1713 for n in range(r - 1):
1714 ops.append(ShiftA(n + 1))
1715 ops.reverse()
TypeError: 'Float' object cannot be interpreted as an integer
But:
In [58]: integrate (exp (sqrt (x)), x)
Out[58]:
___ ___
___ ╲╱ x ╲╱ x
2⋅╲╱ x ⋅ℯ - 2⋅ℯ
--
You received this message because you are subscribed to the Google Groups
"sympy-issues" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sympy-issues?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.