Sorry, I must have missed this earlier. Thanks, Sergey and everyone else on the sympy dev team.
On Mon, Feb 10, 2014 at 8:49 AM, Sergey B Kirpichev <[email protected]>wrote: > On Mon, Feb 10, 2014 at 02:30:53AM -0500, Patrick O'Neill wrote: > > Sorry, I misremembered: it was a limit, not a derivative.� Here is an > MWE: > > > > from sympy import * > > > > x = Symbol('x',positive=True) > > z = Symbol('z') > > > > def experiment1(): > > ��� # Correctly returns oo > > ��� print limit(exp(x)**z,z,oo) > > > > def experiment2(): > > ��� # NotImplementedError: Result depends on the sign of > sign(log(exp(x) + > > 1)) > > ��� print limit((exp(x) + 1)**z,z,oo) > > > > My best guess about what is happening is that in experiment1, > log(exp(x)) > > is getting analytically simplified to x, but in experiment2 > log(exp(x) + > > 1) is not deduced to be greater than x? > > In this case, it's probably a bug in log._eval_is_positive. > > This, probably, will fix it: > diff --git a/sympy/functions/elementary/exponential.py > b/sympy/functions/elementary/exponential.py > index 648934f..a5aee5a 100644 > --- a/sympy/functions/elementary/exponential.py > +++ b/sympy/functions/elementary/exponential.py > @@ -674,8 +674,7 @@ def _eval_is_positive(self): > return True > if arg.is_infinitesimal: > return False > - if arg.is_Number: > - return arg > 1 > + return (arg - 1).is_positive > > def _eval_is_zero(self): > # XXX This is not quite useless. Try evaluating > log(0.5).is_negative > > Test: > > In [1]: x = Symbol('x',positive=True) > > In [2]: limit(exp(x)**z,z,oo) > Out[2]: ∞ > > In [3]: limit((exp(x) + 1)**z,z,oo) > Out[3]: ∞ > > -- > You received this message because you are subscribed to the Google Groups > "sympy" 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. > For more options, visit https://groups.google.com/groups/opt_out. > -- You received this message because you are subscribed to the Google Groups "sympy" 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. For more options, visit https://groups.google.com/groups/opt_out.
