Implementation of half-cycle trignometric functions
Steve Kargl
sgk at troutmask.apl.washington.edu
Wed May 17 18:09:34 UTC 2017
On Wed, May 17, 2017 at 12:49:45PM +1000, Bruce Evans wrote:
> On Tue, 16 May 2017, Steve Kargl wrote:
>
> > Index: lib/msun/ld128/s_cospil.c
> > ...
> > +static const long double
> > +pihi = 3.14159265358979322702026593105983920e+00L,
> > +pilo = 1.14423774522196636802434264184180742e-17L;
>
> These are not in normal format, and are hard to read. I can't see if
> pihi has the correct number of zero bits for exact multiplication.
I don't have access to an ld128 system with suitable
facilities to allow me to spit out the hex representation.
As such, I've added a comment
/*
* pi_hi contains the leading 56 bits of a 169 bit approximation for pi.
*/
>
> These don't have the normal spelling. fdlibm never uses pihi or pio2hi,
> or pi_hi. It often uses pio2_hi and other pio2_*. My s_sinpi.c uses
> pi_hi.
fdlibm has no convention. For example, e_log10.c actually uses
a mixature of convensions.
static const double
two54 = 1.80143985094819840000e+16, /* 0x43500000, 0x00000000 */
ivln10hi = 4.34294481878168880939e-01, /* 0x3fdbcb7b, 0x15200000 */
ivln10lo = 2.50829467116452752298e-11, /* 0x3dbb9438, 0xca9aadd5 */
log10_2hi = 3.01029995663611771306e-01, /* 0x3FD34413, 0x509F6000 */
log10_2lo = 3.69423907715893078616e-13; /* 0x3D59FEF3, 0x11F12B36 */
and
double f,hfsq,hi,lo,r,val_hi,val_lo,w,y,y2;
--
Steve
20170425 https://www.youtube.com/watch?v=VWUpyCsUKR4
20161221 https://www.youtube.com/watch?v=IbCHE-hONow
More information about the freebsd-numerics
mailing list