From maechler at stat.math.ethz.ch  Tue Mar 31 08:59:59 2009
From: maechler at stat.math.ethz.ch (Martin Maechler)
Date: Tue, 31 Mar 2009 08:59:59 +0200
Subject: [Rd] Gamma funtion(s) bug
In-Reply-To: <XFMail.090330222854.Ted.Harding@manchester.ac.uk>
References: <49D12D9F.1000203@stats.uwo.ca>
	<XFMail.090330222854.Ted.Harding@manchester.ac.uk>
Message-ID: <18897.49007.275534.467989@lynne.math.ethz.ch>

>>>>> "TH" == Ted Harding <Ted.Harding at manchester.ac.uk>
>>>>>     on Mon, 30 Mar 2009 22:28:54 +0100 (BST) writes:

    TH> On 30-Mar-09 20:37:51, Duncan Murdoch wrote:
    >> On 3/30/2009 2:55 PM, (Ted Harding) wrote:
    >>> On 30-Mar-09 18:40:03, Kjetil Halvorsen wrote:
    >>>> With R 2.8.1 on ubuntu I get:
    >>>>> gamma(-1)
    >>>> [1] NaN
    >>>> Warning message:
    >>>> In gamma(-1) : NaNs produced
    >>>>> lgamma(-1)
    >>>> [1] Inf
    >>>> Warning message:
    >>>> value out of range in 'lgamma'
    >>>> 
    >>>> Is'nt the first one right, and the second one (lgamma)
    >>>> should also be NaN?
    >>>> Kjetil
    >>> 
    >>> That is surely correct! Since lim[x->(-1)+] gamma(x) = +Inf,
    >>> while lim[x->(-1)-] gamma(x) = -Inf, at gamma(-1) one cannot
    >>> choose between +Inf and -Inf, so surely is is NaN.
    >> 
    >> But lgamma(x) is log(abs(gamma(x))), so it looks okay to me.
    >> 
    >> Duncan Murdoch

    TH> Oops, yes! That's what comes of talking off the top of my head
    TH> (I don't think I've ever had occasion to evaluate lgamma(x)
    TH> for negative x, so never consciously checked in ?lgamma).

    TH> Thanks, Duncan!

Indeed.... as we all know, a picture can be worth a thousand words,
and a simple R call such as
       plot(lgamma, -7, 0, n=1000)
would have saved many words, and notably spared us from
yet-another erroneous non-bug report.

Martin



[Rd] Gamma funtion(s) bug
Martin Maechler