text: #include <stdio.h>
  #include <stdlib.h>
  #include <sys/time.h>
  #include <math.h>
  
  double A[N][N+13];
  
  void init_arrays()
  {
    int i, j;
    for (i=0; i<N; i++) 
      for (j=0; j<N; j++) 
        A[i][j] = i*i+j*j;
  }
  
  double rtclock()
  {
    struct timezone tzp;
    struct timeval tp;
    int stat;
    gettimeofday (&tp, &tzp);
    return (tp.tv_sec + tp.tv_usec*1.0e-6);
  }
  
  int main()
  {
    init_arrays();
  
    double annot_t_start=0, annot_t_end=0, annot_t_total=0;
    int annot_i;
  
    for (annot_i=0; annot_i<REPS; annot_i++)
    {
      annot_t_start = rtclock();
      
  register int i,j,t; 
  
  for (t=0; t<=T-1; t++)
    for (i=1; i<=N-2; i++)
      for (j=1; j<=N-2; j++) {
        A[i][j] = (A[i-1][j-1] + A[i-1][j] + A[i-1][j+1]
  		 + A[i][j-1] + A[i][j] + A[i][j+1]
  		 + A[i+1][j-1] + A[i+1][j] + A[i+1][j+1])/9.0;
      }
      annot_t_end = rtclock();
      annot_t_total += annot_t_end - annot_t_start;
    }
    
    annot_t_total = annot_t_total / REPS;
  
  #ifndef TEST
    printf("%f\n", annot_t_total);
  #else
    {
      int i, j;
      for (i=0; i<N; i++) {
        for (j=0; j<N; j++) {
  	if (j%100==0)
  	  printf("\n");
  	printf("%f ",A[i][j]);
        }
        printf("\n");
      }
    }
  #endif
    
    return ((int) A[0][0]); 
  
  }
                                      
  