Re: gamma() and lgamma() functions
Dean Rasheed <dean.a.rasheed@gmail.com>
From: Dean Rasheed <dean.a.rasheed@gmail.com>
To: Dmitry Koval <d.koval@postgrespro.ru>
Cc: pgsql-hackers@lists.postgresql.org
Date: 2025-03-02T10:29:59Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Add support for gamma() and lgamma() functions.
- a3b6dfd41069 18.0 landed
Attachments
- v5-0001-Add-support-for-gamma-and-lgamma-functions.patch (text/x-patch) patch v5-0001
On Thu, 14 Nov 2024 at 22:35, Dean Rasheed <dean.a.rasheed@gmail.com> wrote: > > On Thu, 14 Nov 2024 at 16:28, Dmitry Koval <d.koval@postgrespro.ru> wrote: > > > > >SELECT gamma(float8 '1e-320'); > > ERROR: value out of range: overflow > > > > >SELECT gamma(float8 '0'); > > gamma > > ---------- > > Infinity > > (1 row) > > > > Perhaps it would be logical if the behavior in these cases was the same > > (either ERROR or 'Infinity')? > > In general, I think that having gamma() throw overflow errors is > useful for spotting real problems in user code. > Thinking about this afresh, I remain of the opinion that having the gamma function throw overflow errors is useful for inputs that are too large, like gamma(200). But then, if we're going to do that, maybe we should just do the same for other invalid inputs (zero, negative integers, and -Inf). That resolves the consistency issue with inputs very close to zero, and seems like a practical solution. Attached is an update doing that. Regards, Dean