diff options
Diffstat (limited to 'libm/double/eltst.c')
-rw-r--r-- | libm/double/eltst.c | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/libm/double/eltst.c b/libm/double/eltst.c new file mode 100644 index 000000000..cef249eaf --- /dev/null +++ b/libm/double/eltst.c @@ -0,0 +1,37 @@ +extern double MACHEP, PIO2, PI; +double ellie(), ellpe(), floor(), fabs(); +double ellie2(); + +main() +{ +double y, m, phi, e, E, phipi, y1; +int i, j, npi; + +/* dprec(); */ +m = 0.9; +E = ellpe(0.1); +for( j=-10; j<=10; j++ ) + { + printf( "%d * PIO2\n", j ); + for( i=-2; i<=2; i++ ) + { + phi = PIO2 * j + 50 * MACHEP * i; + npi = floor(phi/PIO2); + if( npi & 1 ) + npi += 1; + phipi = phi - npi * PIO2; + npi = floor(phi/PIO2); + if( npi & 1 ) + npi += 1; + phipi = phi - npi * PIO2; + printf( "phi %.9e npi %d ", phi, npi ); + y1 = E * npi + ellie(phipi,m); + y = ellie2( phi, m ); + printf( "y %.9e ", y ); + e = fabs(y - y1); + if( y1 != 0.0 ) + e /= y1; + printf( "e %.4e\n", e ); + } + } +} |