Re: [patch,libgfortran] Fix binary128 ERFC_SCALED

2013-11-21 Thread Andreas Schwab
FX writes: > 2013-11-20 Francois-Xavier Coudert > > PR libfortran/59227 There is no connection to PR59227 Andreas. -- Andreas Schwab, SUSE Labs, sch...@suse.de GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE 1748 E4D4 88E3 0EEA B9D7 "And now for something completely different."

Re: [patch,libgfortran] Fix binary128 ERFC_SCALED

2013-11-21 Thread FX
> ../../../libgfortran/intrinsics/erfc_scaled.c:59:1: error: unknown type name > ‘GFC_REAL_16' I’m really sorry about that, I should have tested on a system without binary128, that would have caught it. Attached patch committed as rev. 205193 after checking it on system both with and without bi

Re: [patch,libgfortran] Fix binary128 ERFC_SCALED

2013-11-21 Thread Andreas Schwab
../../../libgfortran/intrinsics/erfc_scaled.c:59:1: error: unknown type name 'GFC_REAL_16' extern GFC_REAL_16 erfc_scaled_r16 (GFC_REAL_16); ^ ../../../libgfortran/intrinsics/erfc_scaled.c:59:1: warning: parameter names (without types) in function declaration [enabled by default] ../../../libgf

Re: [patch,libgfortran] Fix binary128 ERFC_SCALED

2013-11-20 Thread FX
> So, yeah, you're correct. My suggestion was based on the not > so careful mistake of replacing x*x by x+x and dropping log(2). > That is, I had x+x = -emax --> x = - emax / 2. Committed as rev. 205151, thanks for the review! FX

Re: [patch,libgfortran] Fix binary128 ERFC_SCALED

2013-11-20 Thread Steve Kargl
On Wed, Nov 20, 2013 at 09:13:14PM +0100, FX wrote: > > There is a missed optimization in > > > > + if (x < 12) > > +{ > > + /* Compute directly as ERFC_SCALED(x) = ERFC(x) * EXP(X**2). > > +This is not perfect, but much better than netlib. */ > > + return erfcq(x) * expq(x

Re: [patch,libgfortran] Fix binary128 ERFC_SCALED

2013-11-20 Thread FX
> There is a missed optimization in > > + if (x < 12) > +{ > + /* Compute directly as ERFC_SCALED(x) = ERFC(x) * EXP(X**2). > +This is not perfect, but much better than netlib. */ > + return erfcq(x) * expq(x*x); > +} > > If x is less than approximately -8192, then erf

Re: [patch,libgfortran] Fix binary128 ERFC_SCALED

2013-11-20 Thread Steve Kargl
On Sun, Nov 17, 2013 at 11:29:50AM +0100, FX wrote: > This patch fixes libgfortran?s binary128 [aka real(kind=16)] variant of > ERFC_SCALED. The original code, which I had lifted from netlib, gives only 18 > significant decimal digits, which is not enough for binary128 (33 decimal > digits). >

[patch,libgfortran] Fix binary128 ERFC_SCALED

2013-11-17 Thread FX
This patch fixes libgfortran’s binary128 [aka real(kind=16)] variant of ERFC_SCALED. The original code, which I had lifted from netlib, gives only 18 significant decimal digits, which is not enough for binary128 (33 decimal digits). I thus implemented a new variant for binary128. For arguments