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)

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

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!