summaryrefslogtreecommitdiff
path: root/libm/double/eltst.c
diff options
context:
space:
mode:
Diffstat (limited to 'libm/double/eltst.c')
-rw-r--r--libm/double/eltst.c37
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 );
+ }
+ }
+}