On 16 December 2019 at 22:04, Martin Maechler wrote:
| Oops, no!
| Tomas the expert has explained me why that would not be good enough,
| instead recommending a macro  (which would be "constant folded" i.e.,
| computed at compile time were available);
| If I conditionalize that .. in order to be back compatible outside of
| PPC_64,  I'd get
| 
| Index: src/main/arithmetic.c
| ===================================================================
| --- src/main/arithmetic.c    (Revision 77583)
| +++ src/main/arithmetic.c    (Arbeitskopie)
| @@ -176,8 +176,14 @@
|  #endif
|  }
| 
| +
|  #if HAVE_LONG_DOUBLE && (SIZEOF_LONG_DOUBLE > SIZEOF_DOUBLE)
| +# ifdef __PPC64__
| + // PowerPC 64 (when gcc has -mlong-double-128) breaks here ...
| +#  define q_1_eps (1 / LDBL_EPSILON)
| +# else
|  static LDOUBLE q_1_eps = 1 / LDBL_EPSILON;
| +# endif
|  #else
|  static double  q_1_eps = 1 / DBL_EPSILON;
|  #endif
| 
| -------------
| The above may work correctly  (I tried a version where I replaced
| __PPC64__  by  1    such as to test with the gcc 9.2 (on my
| architecture).
| I'd be glad if you could confirm for  powerPC 64 ..
| then I think we could commit it.

Nice. I applied that, and prepare a 'local' package.  Sebastien, could you
test it to be sure?

Files are here:

   http://dirk.eddelbuettel.com/tmp/r-base/

As usual you can probably ignore the .deb files but it was simpler / cleaner
to copy the whole batch.

Dirk

-- 
http://dirk.eddelbuettel.com | @eddelbuettel | e...@debian.org

Reply via email to