home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD2.mdf / c / library / dos / math / cephes / remes / remesw.c < prev    next >
Encoding:
C/C++ Source or Header  |  1992-11-17  |  1.5 KB  |  81 lines

  1. /* remesw.c */
  2.  
  3. /* Write answers to disc file. */
  4.  
  5. #include <stdio.h>
  6. #include "remes.h"
  7.  
  8. remesw()
  9. {
  10. char s[40];
  11. int i;
  12. FILE *f, *fopen();
  13. double log10();
  14.  
  15. reopn:
  16.  
  17. printf( "Log file name ? " );
  18. gets(s);
  19. f = fopen( s, "w" );
  20. if( f == 0 )
  21.     {
  22.     printf( "Can't open %s\n", s );
  23.     goto reopn;
  24.     }
  25.  
  26. fprintf( f, "\n%s  =  ", funnam );
  27. if( config & CW )
  28.     fprintf( f, "x + x**2 * " );
  29. if( config & XPX )
  30.     fprintf( f, "z  " );
  31. if( config & X2PX )
  32.     fprintf( f, "z**2  " );
  33. if( config & PXCU )
  34.     fprintf( f, "P(z**3)" );
  35. else if( config & PXSQ )
  36.     fprintf( f, "P(z**2)" );
  37. else
  38.     fprintf( f, "P(z)" );
  39. if( d > 0 )
  40.     {
  41.     if( config & PXCU )
  42.         fprintf( f, "/Q(z**2)" );
  43.     else if( config & PXSQ )
  44.         fprintf( f, "/Q(z**2)" );
  45.     else
  46.         fprintf( f, "/Q(z)" );
  47.     }
  48. fprintf( f, "\nz(x) = %s\n", znam );
  49. if( relerr )
  50.     fprintf( f, "Relative error\n" );
  51. else
  52.     fprintf( f, "Absolute error\n" );
  53.  
  54. fprintf( f, "n = %d, d = %d\n", n, d );
  55. fprintf( f, "precision = %23.15E  ", -log10(farther) );
  56. fprintf( f, "error=%23.15E\n", farther );
  57. fprintf( f, "leveled=%23.4E\n", spread );
  58. fprintf( f, "\nNumerator:\n" );
  59. for( i=0; i<n+d+1; i++ )
  60.     {
  61.     if( i == n+1 )
  62.         fprintf( f, "\nDenominator\n" );
  63.     fprintf( f, "%23.15E\n", param[i] );
  64.     }
  65.  
  66. if( d > 0 )
  67.     fprintf( f, "%23.15E\n", 1.0 );
  68.  
  69. if( (d > 0) || ((config & ZER) != 0) )
  70.     {
  71.     fprintf( f, "\n Locations of zero error:\n" );
  72.     for( i=0; i<=n+d; i++ )
  73.         fprintf( f, "%23.15E\n", xx[i] );
  74.     }
  75.  
  76. fprintf( f, "\n Locations of peak error:\n" );
  77. for( i=0; i<=n+d+1; i++ )
  78.     fprintf( f, "%23.15E\n", mm[i] );
  79. fclose(f);
  80. }
  81.