#### 7.29 bug in 1/(u!) function, maple 7 (7.3.02)

This message supercedes previous message with a much more complicated function.

On maple 7 after deﬁning the function; c:=(u)->evalf(1/(u!)); with Digits:=40; I have managed to get two diﬀerent answers when evaluating this function at u=4999.

If I deﬁne m:=10000 and n:=9999 and then evaluate, ﬁrst c(m/2) then c((n-1)/2) I get the same answer.

If I then evaluate c(m/2) and c((n-1)/2) again I get results which are again equal, but diﬀerent from the intial result. This can be repeated to obtain further diﬀerent results.

This problem can be avoided by evaluating c(evalf(m/2)) and c(evalf((n-1)/2)).

This problem does not seem to exist in Maple 6.

It is corrected with Maple 8 (U. Klein)

##### 7.29.2 Stephen Forrest (8.3.02)

Yes, there’s a known problem with factorials in Maple 7 that has nothing to do with evalf or Digits; I think your problem is a manifestation of this. The bug was reported on comp.soft-sys.math.maple a while back, and you can see with this example from Maple 7:

> 5000!/4999!;
1



versus, in Maple 6 and previous, the correct

> 5000!/4999!
5000



##### 7.29.3 Dr Francis J. Wright (11.3.02)

Here are a few general comments that might be relevant.

If I remember correctly, n! behaves asymptotically something like n^n, so 1000! has about 3000 digits and you are likely to see diﬀerent numerical errors in you use diﬀerent ﬂoating-point approximations with less than about 3000 signiﬁcant digits.

If you use a ﬂoating-point operand with ! then presumably Maple evaluates it as a gamma function (since factorial proper is deﬁned only for non-negative integers) and so runs completely diﬀerent code.

The factorial implementation in Maple 7 is much more sophisticated than that in Maple 6, one consequence of which is that Factorial is used as a function name in Maple 7 and so is protected, which breaks (trivially) an example in my book!