| /* -*- mode: c -*- |
| * $Id$ |
| * http://www.bagley.org/~doug/shootout/ |
| * |
| * this program is modified from: |
| * http://cm.bell-labs.com/cm/cs/who/bwk/interps/pap.html |
| * Timing Trials, or, the Trials of Timing: Experiments with Scripting |
| * and User-Interface Languages by Brian W. Kernighan and |
| * Christopher J. Van Wyk. |
| * |
| * I added free() to deallocate memory. |
| */ |
| |
| #include <stdio.h> |
| #include <stdlib.h> |
| |
| int main(int argc, char *argv[]) { |
| #ifdef SMALL_PROBLEM_SIZE |
| #define LENGTH 150000 |
| #else |
| #define LENGTH 1500000 |
| #endif |
| int n = ((argc == 2) ? atoi(argv[1]) : LENGTH); |
| int i, k, *x, *y; |
| |
| x = (int *) calloc(n, sizeof(int)); |
| y = (int *) calloc(n, sizeof(int)); |
| |
| for (i = 0; i < n; i++) { |
| x[i] = i + 1; |
| } |
| |
| for (k=0; k<1000; k++) { |
| for (i = n-1; i >= 0; i--) { |
| y[i] += x[i]; |
| } |
| } |
| |
| printf("%d %d\n", y[0], y[n-1]); |
| |
| free(x); |
| free(y); |
| |
| return(0); |
| } |