On Fri, Dec 22, 2017 at 12:46 AM, Raúl Marín Rodríguez <rmrodrig...@carto.com> wrote: >> If a double is always returned, I'm wondering whether keeping the ipow >> version makes much sense: In case of double loss of precision, the precision >> is lost, too bad, and casting back to int won't bring it back. > > I've kept it because knowing that both are ints enables not making a lot of > checks (done in math.h pow) so it's way faster. In my system it's 2-3ns vs > ~40ns. I'm willing to settle for using just pow() if that makes it clearer.
This version looks good to me, except that I wonder if we should try to switch to the floating-point version if the integer version would/does overflow. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company