Re: factorial of negative numbers - Mailing list pgsql-hackers

From Juan José Santamaría Flecha
Subject Re: factorial of negative numbers
Date
Msg-id CAC+AXB1CZveV6xtrquxijL8k4FeFLo6zTmpTsbgUWtFH4GnNiA@mail.gmail.com
Whole thread Raw
In response to Re: factorial of negative numbers  (Peter Eisentraut <peter.eisentraut@2ndquadrant.com>)
List pgsql-hackers

On Thu, Jun 18, 2020 at 1:57 PM Peter Eisentraut <peter.eisentraut@2ndquadrant.com> wrote:
On 2020-06-18 09:43, Juan José Santamaría Flecha wrote:
> The gamma function from math.h returns a NaN for negative integer
> values, the postgres factorial function returns a numeric, which allows
> NaN. Raising an out-of-range error seems only reasonable for an integer
> output.

But this is not the gamma function.  The gamma function is undefined at
zero, but factorial(0) returns 1.  So this is similar but not the same.

factorial(n) = gamma(n + 1)
 
Moreover, functions such as log() also error out on unsupportable input
values, so it's consistent with the spec.

If factorial() ever gets extended to other input types it might get inconsistent, should !(-1.0) also raise an error?

Logarithm is just different case:


Regards,

Juan José Santamaría Flecha

pgsql-hackers by date:

Previous
From: Peter Eisentraut
Date:
Subject: Re: factorial of negative numbers
Next
From: Vyacheslav Makarov
Date:
Subject: [PATCH] Allow to specify restart_lsn inpg_create_physical_replication_slot()