Re: factorial of negative numbers
Dean Rasheed <dean.a.rasheed@gmail.com>
From: Dean Rasheed <dean.a.rasheed@gmail.com>
To: Bruce Momjian <bruce@momjian.us>
Cc: Ashutosh Bapat <ashutosh.bapat@2ndquadrant.com>, Peter Eisentraut <peter.eisentraut@2ndquadrant.com>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2020-06-16T09:34:38Z
Lists: pgsql-hackers
On Tue, 16 Jun 2020 at 09:55, Bruce Momjian <bruce@momjian.us> wrote: > > On Tue, Jun 16, 2020 at 08:31:21AM +0100, Dean Rasheed wrote: > > > > Most common implementations do regard factorial as undefined for > > anything other than positive integers, as well as following the > > convention that factorial(0) = 1. Some implementations extend the > > factorial to non-integer inputs, negative inputs, or even complex > > inputs by defining it in terms of the gamma function. However, even > > then, it is undefined for negative integer inputs. > > Wow, they define it for negative inputs, but not negative integer > inputs? I am curious what the logic is behind that. > That's just the way the maths works out. The gamma function is well-defined for all real and complex numbers except for zero and negative integers, where it has poles (singularities/infinities). Actually the gamma function isn't the only possible extension of the factorial function, but it's the one nearly everyone uses, if they bother at all (most people don't). Curiously, the most widespread implementation is probably the calculator in MS Windows. Regards, Dean
Commits
-
Disallow factorial of negative numbers
- 0a40563eadc6 14.0 landed
-
Expand tests for factorial
- 9d402c73ade4 14.0 landed
-
doc: Document factorial function
- 4c5cf5431410 14.0 landed
-
Attached is a patch implementing factorial(), returning numeric. Points
- 04a4821adef3 8.0.0 cited