/*** This works ***/ #include int i,j,k,m,n,kk; int diag[100]; int v[100][100],u[100][100],d[100][100], l[100][100],r[100][100],c[100][100], v1[100][100],u1[100][100],d1[100][100], l1[100][100],r1[100][100],c1[100][100]; a[100][100], b[100][100]; char filename[10], dummy; out(){int i, j; printf(" t= %d\n", k-1); printf(" Matrix A skewed and reversed "); printf(" B skewed. Make it upside-down\n"); for(i=1;i<=2*n-1;i++){ if(i==1){{int kk; for(kk=1;kk<=2*n-k;kk++)printf("---");} printf("\n");} if(i<=n){ for(j=-n+2;j<=n;j++) if(a[i][n-j+1]==89) printf(" *"); else printf("%3d", a[i][n-j+1]); } else printf(" "); if(i<=n) printf(" "); for(j=1;j<=n;j++)if(b[i][j]==89) printf(" *"); else printf("%3d", b[i][j]); if(i>=k) printf(" |"); printf("\n"); } printf("\n"); for(i=1;i<=n;i++){ for(j=1;j<=n;j++) { printf(" %3d=> ", l[i][j]); } printf("\n"); for(j=1;j<=n;j++) { printf("%3d %3d ", u[i][j], v[i][j]); } printf("\n"); for(j=1;j<=n;j++) { printf(" * "); printf(" "); printf(" "); } printf("\n"); printf("\n"); } getchar(); } main(){ FILE *inputfile; // scanf("%s",filename); // inputfile=fopen(filename, "r"); inputfile=fopen("dis.dat", "r"); printf("Input n "); scanf("%d",&n); getchar(); printf("The following tracer multiplies two distance matricesa\n"); printf("using a mesh architecture\n "); printf("Actualy a matrix is squared\n "); printf("89 and 99 are both for inifinity, 99 being from input data\n"); printf("unconsumed portions of skewed matrices are covered by - and |\n"); for(i=0;i<=3*n+1;i++)for(j=0;j<=2*n+1;j++){ v[i][j]=89; a[i][j]=89; b[i][j]=89; u[i][j]=89; l[i][j]=89; } for(i=1;i<= n;i++){ for(j=1;j<=n;j++){ fscanf(inputfile,"%d",&v[i][j]); printf("%4d", v[i][j]);} printf("\n"); } for(i=0;i<=n+1;i++)for(j=0;j<=n+1;j++){ a[i][i+j-1]=v[i][j]; b[i+j-1][j]=v[i][j]; } for(i=0;i<=2*n+1;i++)for(j=0;j<=2*n+1;j++) v[i][j]=89; for(k=1;k<=3*n-1;k++){ for(i=1;i<=n;i++)l[i][0]=a[i][k]; for(j=1;j<=n;j++)u[0][j]=b[k][j]; out(); for(i=0;i<=n+1;i++)for(j=0;j<=n+1;j++){ u1[i][j]=u[i-1][j]; l1[i][j]=l[i][j-1]; v1[i][j]=v[i][j]; if(u[i-1][j]+l[i][j-1]