home *** CD-ROM | disk | FTP | other *** search
/ World of Shareware - Software Farm 2 / wosw_2.zip / wosw_2 / CPROG / ANUMR5.ZIP / ADAMSTST.C next >
C/C++ Source or Header  |  1991-11-25  |  1KB  |  73 lines

  1. #include <math.h>
  2. #include <conio.h>
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <alloc.h>
  6.  
  7. #include "anum.h"
  8. #include "sysio.h"
  9.  
  10.  
  11.  
  12. double bf(double t, double x)
  13.  
  14. {    double res;
  15.  
  16.     res = x/t + t - 1;
  17.     return(res);
  18. }
  19.  
  20.  
  21.  
  22. void results(int nret, double *xval, double *tval)
  23.  
  24. {    int i;
  25.  
  26.     puts("       T          X");
  27.     puts("---------------------------");
  28.     for (i=0; i<nret; i++)
  29.         printf("% 10.5le  % 10.5le\n", *(tval+i), *(xval+i));
  30. }
  31.  
  32.  
  33.  
  34. void main(void)
  35.  
  36. {    double lb,ub,x0,*xval,*tval;
  37.     int nint,nret,errcode;
  38.  
  39.     clrscr();
  40.     puts("Test program for function adams");
  41.     puts("-------------------------------\n");
  42.  
  43.     lb=2.0;
  44.     ub=3.0;
  45.     x0=4.0;
  46.     nret=5;
  47.     nint=100;
  48.  
  49.     printf("Lower bound            : %+10.5lf\n",lb);
  50.     printf("Upper bound            : %+10.5lf\n",ub);
  51.     printf("x at t = %+lf     : %+10.5lf\n\n",lb,x0);
  52.     printf("Number of asked values : %3d\n",nret);
  53.     printf("Number of intervals    : %3d\n\n",nint);
  54.  
  55.     xval=farcalloc(nret+1,sizeof(double));
  56.     tval=farcalloc(nret+1,sizeof(double));
  57.     if (xval==NULL || tval==NULL)
  58.     {    fputs("Not enough core", stderr);
  59.         exit(-1);
  60.     }
  61.  
  62.     adams(lb, ub, x0, nret, nint, tval, xval, &errcode, bf);
  63.     SYSMSG(errcode, stderr);
  64.  
  65.     results(nret, xval, tval);
  66.  
  67.     farfree(tval);
  68.     farfree(xval);
  69.  
  70.  
  71. }
  72.  
  73.