⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ftst_v2d.c

📁 二维矩阵方面的库
💻 C
字号:
/*   HEADER:   CUG300;
      TITLE:   Float array test;
       DATE:   3/12/1989;
DESCRIPTION:   "Test all float arrays functions";
    VERSION:   2.03;
   FILENAME:   FTST_V2D.C;
   SEE-ALSO:   MAT_V2D.H;
*/

/*   (C) COPYRIGHT BY JOHN J. HUGHES III, 1989  */

#include <stdio.h>
#include "mat_v2D.h"

main()

{
register int i,j;
int r, c, rows, cols,DEBUG;
struct fmat *A, *B, *C, *D, *E, *F;
FILE *results;
float test;

   printf("Enter DEBUG level => "); scanf("%d",&DEBUG);

   if(DEBUG>0) puts("mfcnt(A.DTA)");
      mfcnt("A.DTA",&rows,&cols);
   if(DEBUG>0) puts("fdim(A)");
      fdim(A,rows,cols);
   if(DEBUG>0) puts("mfget(A)");
      mfget ("A.DTA",A);
   if(DEBUG>0) puts("mfcnt(B)");
      mfcnt("B.DTA",&rows,&cols);
   if(DEBUG>0) puts("fdim(B)");
      fdim(B,rows,cols);
   if(DEBUG>0) puts("mfread(B)");
      mfread (B,"B.DTA");
   if(DEBUG>0) puts("mfcnt(C)");
      mfcnt("C.DTA",&rows,&cols);
   if(DEBUG>0) puts("fdim(C)");
      fdim(C,rows,cols);
   if(DEBUG>0) puts("mfread(C)");
      mfread (C,"C.DTA");
   if(DEBUG>9) { puts("mfdump(A)");
      mfdump(A);}
   if(DEBUG>9) { puts("mfdump(B)");
      mfdump(B); }
   if(DEBUG>9) { puts("mfdump(C)");
      mfdump(C);}
   if(DEBUG>0)
      printf ("cofactor A 1,1 -> %f\n",mfcof(A,0,0) );
   if(DEBUG>0)
      printf ("cofactor A 2,1 -> %f\n",mfcof(A,1,0) );
   if(DEBUG>0)
      printf ("cofactor A 3,1 -> %f\n",mfcof(A,2,0) );
   if(DEBUG>0)
      printf ("determinant A -> %f\n",mfdet(A) );
   if(DEBUG>0) puts("fdim(D)");
      fdim(D,3,3);
   if(DEBUG>0) puts("mftrnsp(A into D)");
      mftrnsp(D,A);
   if(DEBUG>9) { puts("mfdump(D)");
      mfdump(D); }
   if(DEBUG>0) puts("mfinv(B into D)");
      mfinv (D,B);
   if(DEBUG>0) puts("mfstore(D into INVB.DTA)");
      mfstore ("INVB.DTA",D);
   if(DEBUG>0) puts("mfstore(D into INVB.DTA)");
      fdim(E,3,3);
   if(DEBUG>0) puts("mult D by 42");
      all(D,r,c) f(E,r,c) = 42 * f(D,r,c);
   if(DEBUG>9) { puts("mfdump(E)");
      mfdump(E); }
   if(DEBUG>0) puts("add A to B & put into E");
      all(A,r,c) f(E,r,c) = f(A,r,c) + f(B,r,c);
   if(DEBUG>9) { puts("mfdump(E)");
      mfdump( E ); }
   if(DEBUG>0) puts("frel(E)");
      frel(E);
   if(DEBUG>0) puts("fdim(E)");
      fdim(E,no_rows(C),1);
   if(DEBUG>0) puts("mfmlt D x C => E");
      mfmlt(E,D,C);
   if(DEBUG>9) { puts("mfdump(E)");
      mfdump(E); }
   if(DEBUG>0) puts("solve B & C => E");
      mfslv (E,B,C);
   if(DEBUG>9) { puts("mfdump(E)");
      mfdump (E); }
   if(DEBUG>0) puts("create file RESULT.OUT");
      flcreat("Result.out",results);
   if(DEBUG>0) puts("place 3 cols of A into RESULT.OUT");
      mfput (results,A, "c1 c2 c3", "c1 c3",72, 2, 1 );
   if(DEBUG>0) puts("frel(E)");
      frel(E);
   if(DEBUG>0) puts("fdim(E) to new size");
      fdim(E,3,3);
   if(DEBUG>0) puts("copy A into E");
      mfcpy(E,A);
   if(DEBUG>9) { puts("mfdump(E)");
      mfdump(E); }
   if(DEBUG>0) puts("frel(E)");
      frel(E);
   if(DEBUG>0) puts("frel(E)");
      mfcnt("big.dta",&rows,&cols);
   if(DEBUG>0) puts("fdim(E)");
      fdim(E,rows,cols);
   if(DEBUG>0) puts("mfread(BIG.DTA");
      mfread(E,"big.dta");
   if(DEBUG>0) { puts("sum columns");
      test = mfsumc( E, 1, 2, 5);
      printf("column sum = %f\n",test);  }
   if(DEBUG>9) { puts("mfdump(E)");
      mfdump (E); }
   if(DEBUG>0) puts("mfread(BIG.DTA into E");
      mfread(E,"big.dta");
   if(DEBUG>0) { puts("sum rows");
      test = mfsumr( E, 1, 2, 5);
      printf("row sum = %f\n",test);  }
   if(DEBUG>9) { puts("mfdump(E)");
      mfdump ( E ); }
   if(DEBUG>0) puts("mfread(BIG.DTA into E)");
      mfread(E,"big.dta");
   if(DEBUG>0) puts("calculate cumulative column totals => E");
      mfcumc ( E, 1, 2, 5, 7);
   if(DEBUG>9) { puts("mfdump(E)");
      mfdump ( E ); }
   if(DEBUG>0) puts("mfread(BIG.DTA into E)");
      mfread(E,"big.dta");
   if(DEBUG>0) puts("calculate cumulative row totals => E");
      mfcumr ( E, 1, 2, 5, 7);
   if(DEBUG>9) { puts("mfdump(E)");
      mfdump ( E ); }
   if(DEBUG>0) puts("mfread(BIG.DTA into E)");
      mfread(E,"big.dta");
   if(DEBUG>0) puts("calculate move average row totals => E");
      mfmvar ( E, 2, 2, 2, 5, 3 );
   if(DEBUG>9) { puts("mfdump(E)");
      mfdump ( E ); }
   if(DEBUG>0) puts("mfread(BIG.DTA into E)");
      mfread(E,"big.dta");
   if(DEBUG>0) puts("calculate move average column totals => E");
      mfmvac ( E, 2, 2, 2, 5, 3 );
   if(DEBUG>9) { puts("mfdump(E)");
      mfdump (E); }
   if(DEBUG>0) puts("frel(E)");
      frel(E);
   if(DEBUG>0) puts("mfcnt(WIDE.DTA)");
      mfcnt("wide.dta",&rows,&cols);
   if(DEBUG>0) puts("fdim(E)");
      fdim(E,rows,cols);
   if(DEBUG>0) puts("mfread(WIDE.DTA into E)");
      mfread (E,"WIDE.DTA");
   if(DEBUG>0) puts("page output of E to WD-RESLT.OUT");
      mfpgput (E,"WD-RESLT.OUT",72,12,1);
   if(DEBUG>0) puts("mfread(WIDE.DTA into E)");
      mfread(E,"wide.dta");
   if(DEBUG>9) { puts("mfdump(E)");
      mfdump(E); }
   if(DEBUG>0) { puts("\n test rows macro ... ");
      rows(E,i) printf("%5.2f ",f(E,i,2)); }
   if(DEBUG>0) { puts("\n test cols macro  ... ");
      cols(A,j) printf("%5.2f ",f(E,2,j)); }
   if(DEBUG>0) puts("\n fdim(F) for a 120 x 120 matrix speed test");
      fdim (F,120,120);
   if(DEBUG>0) puts("test by placing 500 in all elements .... GO");
      all(F,i,j) f(F,i,j)=500;
   if(DEBUG>0) printf(" %d END\n",no_cols(F) );
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -