home *** CD-ROM | disk | FTP | other *** search
/ Vectronix 2 / VECTRONIX2.iso / FILES_10 / DEVPAC56.ZIP / MATMULT1.C < prev    next >
C/C++ Source or Header  |  1993-12-20  |  1KB  |  61 lines

  1. /* Devpac DSP example code MATMULT1.C */
  2. /* for Lattice C                      */
  3. /* (c) Copyright HiSoft 1993          */
  4. /* All rights reserved                */
  5.  
  6. /* Note that this uses different data to the BASIC examples as
  7.    the random number algorithms used by the languages are different
  8. */
  9. #include <stdio.h>
  10. #include <stdlib.h>
  11.  
  12. #define N 4
  13. typedef float MATRIX[N][N];
  14.  
  15. void showmat(MATRIX c)
  16. {
  17. int i,j;
  18.     for    (j=0;j<N;j++)
  19.     {
  20.         for    (i=0;i<N;i++)
  21.             printf("%f\t",c[i][j]);
  22.         printf("\n");
  23.     }
  24.     printf("\n");
  25. }
  26.  
  27.  
  28. void mult(MATRIX a,MATRIX b,MATRIX c)
  29. {
  30. int i,j,k;
  31.     for    (i=0;i<N;i++)
  32.         for    (j=0;j<N;j++)
  33.                 {
  34.                     c[i][j]=0;
  35.                     for (k=0;k<N;k++)
  36.                         c[i][j]+=a[k][j]*b[i][k];
  37.                 }
  38. }
  39.  
  40. int main(void)
  41. {
  42. MATRIX a, b, c;
  43. int i,j;
  44.  
  45.  
  46.     for    (i=0;i<N;i++)
  47.         for    (j=0;j<N;j++)
  48.             {
  49.                 a[i][j]=(float)(rand())/(RAND_MAX+1);
  50.                 b[i][j]=(float)(rand())/(RAND_MAX+1);
  51.             }
  52.  
  53.     showmat(a);
  54.     showmat(b);
  55.  
  56.     mult(a,b,c);
  57.  
  58.     showmat(c);
  59.     return 0;
  60. }
  61.