Re: [PATCH] random_normal function - Mailing list pgsql-hackers

From Paul Ramsey
Subject Re: [PATCH] random_normal function
Date
Msg-id 974508BA-D770-400B-8766-EC3220F37C42@cleverelephant.ca
Whole thread Raw
In response to Re: [PATCH] random_normal function  ("David G. Johnston" <david.g.johnston@gmail.com>)
Responses Re: [PATCH] random_normal function  (Paul Ramsey <pramsey@cleverelephant.ca>)
List pgsql-hackers

> On Dec 8, 2022, at 2:40 PM, David G. Johnston <david.g.johnston@gmail.com> wrote:
>
> On Thu, Dec 8, 2022 at 2:53 PM Paul Ramsey <pramsey@cleverelephant.ca> wrote:
>
> random_normal(stddev float8 DEFAULT 1.0, mean float8 DEFAULT 0.0)
>
> Any particular justification for placing stddev before mean?  A brief survey seems to indicate other libraries, as
wellas (at least for me) learned convention, has the mean be supplied first, then the standard deviation.  The
implementation/commentaryseems to use that convention as well. 

No, I'm not sure what was going through my head, but I'm sure it made sense at the time (maybe something like "people
willtend to jimmy with the stddev more frequently than the mean"). I've reversed the order 

> Some suggestions:

Thanks! Taken :)

> And a possible micro-optimization...
>
> + bool   rescale = true
> + if (PG_NARGS() = 0)
> +    rescale = false
> ...
> + if (rescale)
>     ... result = (stddev * z) + mean
> + else
> +      result = z

Feels a little too micro to me (relative to the overall cost of the transform from uniform to normal distribution). I'm
goingto leave it out unless you violently want it. 

Revised patch attached.

Thanks!

P

Attachment

pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: Error-safe user functions
Next
From: Paul Ramsey
Date:
Subject: Re: [PATCH] random_normal function