/* CS 612 - Assignment 3 Test Code * Author: James Ezick <ezick@cs.cornell.edu> * Date:   March 6, 2000 * Updated by Kamen Yotov <kyotov@cs.cornell.edu> * Date:  March 18, 2003 * Updated by Paul Stodghill <stodghil@cs.cornell.edu> * Date:  March 21, 2003 */double A[500][500];double B[500][500];double C[500][500];double X[500];double Y[500];const int SIZE = 500;void f1(){    int i,j;    /* 5 pointed system */    for(i=1; i<SIZE-1; ++i)	for(j=1; j<SIZE-1; ++j)	    A[i][j] = (4*A[i][j] + A[i-1][j] + A[i+1][j] + A[i][j-1] + A[i][j+1])/8;}void f2(){    int i,j;    /* 9 pointed system */    for(i=1; i<SIZE-1; ++i)	for(j=1; j<SIZE-1; ++j)	    A[i][j] = (8*A[i][j] + A[i-1][j] + A[i+1][j] + A[i][j-1] + A[i][j+1] +		       A[i-1][j+1] + A[i+1][j+1] + A[i-1][j-1] + A[i+1][j-1])/16;}void f3(){    int i,j;    /* Matrix-Vextor Multiply */    for(i=0; i<SIZE; ++i)	for(j=0; j<SIZE; ++j)	    Y[i] += A[i][j] * X[j];}void f4(){    int i,j,k;    /* Matrix-Martrix Multiply */    for(i=0; i<SIZE; ++i)	for(j=0; j<SIZE; ++j)	    for(k=0; k<SIZE; ++k)		C[i][j] += A[i][k] * B[k][j];}intmain(int argc, char* argv[]) {    int i,j;    /* initialization code - you don't need to analyze this */    for(i=0; i<SIZE; ++i) {	X[SIZE] = Y[SIZE] = 2.0;	for(j=0; j<SIZE; ++j) {	    A[i][j] = B[i][j] = C[i][j] = 2.0;	}    }    f1();    f2();    f3();    f4();    return 1;}