I caught this while trying to execute the is_convergent() method from the concrete module for Sum . So the problem is that any expression of the form Sum( f(x), (x, 1, oo)).is_convergent() where f(x) contains factorial2 either gives out an error or False.
Some examples being
>>> Sum(factorial2(2*x-1)/factorial2(2*x) * 1/(2*x +1) , (x, 1, oo)).is_convergent()
False
>>> Sum((factorial2(2*x-1)/factorial2(2*x))**3 , (x, 1, oo)).is_convergent()
False
>>> Sum(factorial2(2*x-1)/factorial2(2*x) * ((4*x+3)/(2*x +2)) , (x, 1, oo)).is_convergent()
False
>>> Sum((factorial2(2*x-1)/factorial2(2*x))**1 , (x, 1, oo)).is_convergent()
False
Usually double factorials work wonderfully when subjected to either Raabe's test or Krummer's test
First 2 converge by Raabe's test and last 2 diverge (obviously it gives false but I think it doesn't conduct proper evaluation ) . Their factorial counterparts are pretty similar and work as expected !
>>> Sum(factorial(2*x-1)/factorial(2*x) * 1/(2*x +1) , (x, 1, oo)).is_convergent()
True
>>> Sum((factorial(2*x-1)/factorial(2*x))**3 , (x, 1, oo)).is_convergent()
True
>>> Sum(factorial(2*x-1)/factorial(2*x) * (4*x+3)/(2*x +2) , (x, 1, oo)).is_convergent()
False
>>> Sum((factorial(2*x-1)/factorial(2*x))**1 , (x, 1, oo)).is_convergent()
False
Some like the following give long trace back of error
>>> Sum(n/factorial(n) , (n, 1, oo)).is_convergent()
True
>>>Sum(n/factorial2(n) , (n, 1, oo)).is_convergent() # should give true like above
>>> Sum(factorial2(n) , (n, 1, oo)).is_convergent() # should return false but gives long traceback
Now that most of these would involve Raabe's test and the initial Divergence test which involves taking limit at oo for expressions having factorial2
1) For Raabe's test we would need limit( x ( ( f(x)/f(x + 1) - 1) , x, oo)
2) For something like Sum(factorial2(n) , (n, 1, oo)).is_convergent( ) we would need limit(factorial2(x), x, oo) .
All of these are the actual reason for the error as gruntz is executed for the same which gives a long traceback. Corresponding factorial expressions work perfectly while using gruntz ! Obviously limit(factorial(x) , x, oo) gives oo.
I am a bit new to gruntz and tend to get confused easily, hence Before reporting on github or trying to work on this I thought of confirming whether this is a legit issue . I have also mapped down couple more expressions from different issues reported on github for which gruntz leads to errors and will to work on them slowly as I get comfortable with gruntz !
Any suggestions are welcome . Thanks