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."
> ../../../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
../../../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
> 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
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
> 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
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).
>
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