// file: /data/courses/ece_1111/lectures/current/lecture_11/example.cc // // local include files // #include "example.h" // function: main // // This is a simple program that computes an autocorrelation function. // int main(int argc, const char** argv) { // decode the command line arguments // long N = atoi(argv[1]); long K = atoi(argv[2]); long niter = atoi(argv[3]); // echo the command line arguments // fprintf(stdout, "program name: %s\n", argv[0]); fprintf(stdout, "number of signal data points = %d\n", N); fprintf(stdout, "number of lags = %d\n", K); fprintf(stdout, "niter = %d\n", niter); // initialize the random number generator // srand48(MYSEED); // create data space // long Nmax = N + K; float* sig = new float[Nmax]; float* r = new float[K]; // initialize a matrix // fprintf(stdout, "... initializing...\n"); if (myinit(sig, Nmax) == false) { fprintf(stdout, "%s: error initializing signal\n", argv[0]); } // print the input matrices // fprintf(stdout, "... printing signal...\n"); if (myprint(sig, Nmax, (char*)"sig") == false) { fprintf(stdout, "%s: error printing signal\n", argv[0]); } // compute the autocorrelation // for (long i = 0; i < niter; i++) { if (i % NITER == 0) { fprintf(stdout, "iteration no. %d\n", i); } if (mycor(r, sig, N, K) == false) { fprintf(stdout, "%s: error computing autocorrelation\n", argv[0]); } } // print the output // fprintf(stdout, "... printing output matrices...\n"); if (myprint(r, K, (char*)"auto:") == false) { fprintf(stdout, "%s: error printing output\n", argv[0]); } // exit gracefully // return(0); }