home *** CD-ROM | disk | FTP | other *** search
/ World of Shareware - Software Farm 2 / wosw_2.zip / wosw_2 / CPROG / ANUMR5.ZIP / DETMAIN.C < prev    next >
C/C++ Source or Header  |  1991-04-10  |  1KB  |  72 lines

  1. /* OK */
  2.  
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <math.h>
  6. #include <mem.h>
  7. #include <alloc.h>
  8.  
  9.  
  10. #include "anum.h"
  11. #include "sysio.h"
  12.  
  13. #define MAXDIM 5
  14.  
  15.  
  16. void affmat(int dim, double *matrix)
  17.  
  18.  
  19. {    int i,j;
  20.  
  21.     for (i=0;i<dim;i++)
  22.     {    for (j=0;j<dim;j++) printf("%6g ",*(matrix+i*dim+j));
  23.         putchar('\n');
  24.     }
  25. }
  26.  
  27.  
  28.  
  29. void results(double det, int errcode)
  30.  
  31. {    printf("Error Code : %d\nDeterminant : %lf\n",errcode,det);
  32.     printf("Core left : %ld bytes.\n",farcoreleft());
  33. }
  34.  
  35.  
  36.  
  37.  
  38. void main(void)
  39.  
  40.  
  41. {    double *matrix;
  42.     int dim,i,j,errcode;
  43.     double det;
  44.  
  45.  
  46.     puts("Test program for function determinant\n");
  47.     for (dim=1;dim<=MAXDIM;dim++)
  48.     {    matrix=farcalloc(dim*dim,sizeof(double));
  49.         if (matrix==NULL)
  50.         {    fputs("Not enough core", stderr);
  51.             exit(ENOWCORE);
  52.         }
  53.  
  54.         for (i=0;i<dim;i++)
  55.             for(j=0;j<dim;j++)
  56.                 *(matrix+i*dim+j)=(double)(rand()%10)-5;
  57.  
  58.         printf("Matrix order : %d.\n",dim);
  59.         affmat(dim,matrix);
  60.  
  61.         determinant(dim,matrix,&det,&errcode);
  62.                 SYSMSG(errcode,stderr);
  63.  
  64.         results(det,errcode);
  65.         farfree(matrix);
  66.     }
  67. }
  68.  
  69.  
  70.  
  71.  
  72.