Re: Bug #534: factorial function

From: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: lockhart(at)fourpalms(dot)org, j(dot)richter(at)wallstreet-develop(dot)de, pgsql-bugs(at)postgresql(dot)org
Subject: Re: Bug #534: factorial function
Date: 2001-12-29 20:40:13
Message-ID: 200112292040.fBTKeDr04534@candle.pha.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

> Thomas Lockhart <lockhart(at)fourpalms(dot)org> writes:
> >> ... I'd be sorely tempted to replace all three by a single
> >> function that takes integer and returns numeric.
>
> > Yikes. Although numeric is theoretically nice, it is hundreds of times
> > slower than native doubles.
>
> (a) As a wise man once said, "I can make it arbitrarily fast, if it
> doesn't have to give the right answer". (b) The factorial function
> doesn't strike me as a performance bottleneck. (c) I have no objection
> to offering a double-precision-based gamma function alongside the
> integer factorial function. But I think factorial should give an exact
> answer as far as is possible before it overflows.

float8 is the wrong way to go with factorial. It is imprecise and only
goes to 69!. Numeric seems like the way to go with this function.

Added to TODO:

* Change factorial to return a numeric

--
Bruce Momjian | http://candle.pha.pa.us
pgman(at)candle(dot)pha(dot)pa(dot)us | (610) 853-3000
+ If your life is a hard drive, | 830 Blythe Avenue
+ Christ can be your backup. | Drexel Hill, Pennsylvania 19026

In response to

Browse pgsql-bugs by date

  From Date Subject
Next Message pgsql-bugs 2001-12-31 16:50:03 Bug #546: un-pg_restore-able pg_dump
Previous Message guard 2001-12-29 17:07:42 pl/tcl for cygwin not install