12345678910111213141516171819202122232425262728293031323334353637 |
- 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 );
- }
- }
- }
|