Re: Numeric version of factorial()
От | Gavin Sherry |
---|---|
Тема | Re: Numeric version of factorial() |
Дата | |
Msg-id | Pine.LNX.4.21.0308011155340.18801-100000@linuxworld.com.au обсуждение исходный текст |
Ответ на | Re: Numeric version of factorial() (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: Numeric version of factorial()
|
Список | pgsql-patches |
On Thu, 31 Jul 2003, Tom Lane wrote: > Gavin Sherry <swm@linuxworld.com.au> writes: > > 2) since we're accepting numeric arguments, the patch tests for floats. If > > a numeric is passed with non-zero decimal portion, an error is raised > > since (from memory) they are undefined. > > There is a standard mathematical definition for it (gamma function, > IIRC) but this is probably plenty good enough for our purposes. I would > suggest though that you reject fractions before you short-circuit for > x <= 1. Oops. > > > 3) I have not removed factorial([int2|int4|int8]), not their operator > > counterparts since I didn't know what people would want done with these. > > We had already decided to nuke the int2 and int4 versions, since they > overflow far too easily. I'd go with nuking int8 too and providing only > the numeric variant ... What are your feelings about numeric argument vs. int4/int8 arguments? > > > + int8_to_numericvar((int64)1, &one); > > + > > + ret = cmp_var(&fact, &one); > > Uh, why not use const_one? Umm.. didn't notice it :-). Thanks, Gavin
В списке pgsql-patches по дате отправления: