10 /* This one's binary name. */
11 char* binname = "unset";
15 fprintf (stderr, "\nUsage: %s [-f <string>] [-n <number>]\n", binname);
16 fprintf (stderr, "\t -f: set the filename of the randfile. (defaults to \"numlist.bin\")\n");
17 fprintf (stderr, "\t -n: set the number count to read from randfile. (defaults to 0 = read all)\n");
18 fprintf (stderr, "\nThis application prints only TIME-INFO to stdout. Everything else goes to stderr.\n");
22 void array_contents(numtype array[], unsigned long size) {
23 fprintf (stderr, "[%li", array[0]);
24 for (unsigned long i = 1; i < size; i++) {
25 fprintf (stderr, ", %li", array[i]);
27 fprintf (stderr, "]\n");
31 int main (int argc, char* argv[]) {
35 //unsigned int countarray[NUMBERS];
36 double startTime, endTime;
40 char *filename = "numlist.bin";
42 /* store out name for usage(); */
48 while ((c = getopt (argc, argv, "n:f:")) != -1) switch (c){
50 n = strtoul (optarg,NULL,0);
56 if (optopt == 'f' || optopt == 'n')
57 fprintf (stderr, "Option -%c requires an argument.\n", optopt);
58 else if (isprint (optopt))
59 fprintf (stderr, "Unknown option `-%c'.\n", optopt);
61 fprintf (stderr, "Unknown option character `\\x%x'.\n", optopt);
68 if ((file = fopen(filename, "r"))) {
77 if (n < 0 || n > size){
78 fprintf (stderr, "Cannot read %li numbers from \"%s\" - only has %li bytes.\n",n,filename,st.st_size);
82 fprintf (stderr, "File %s does not exist.\n", filename);
86 /* print info and start reading file. */
87 fprintf(stderr, "Will read %li numbers from \"%s\".\n", n, filename);
89 numarray = malloc(n * sizeof(numtype));
90 if(numarray == NULL) {
91 fprintf(stderr, "malloc for numarray failed.\n");
94 fprintf(stderr, "malloc for numarray sucessful.\n");
98 if ((file = fopen(filename, "r"))) {
99 for (size = 0; size < n; size++) {
100 numarray[size] = fgetc(file);
104 fprintf (stderr, "File %s could not be read.\n", filename);
108 fprintf(stderr, "file read - ready.\n");
111 /* might want to comment this out, if numarray is big */
112 array_contents(numarray, size);
115 fprintf(stderr, "init done starting algorithm. size: %li\n", size);
116 startTime = omp_get_wtime();
117 algorithm(numarray, size, NULL);
118 endTime = omp_get_wtime();
119 fprintf(stdout, "binname=%s size=%li time=%f result=%li\n", binname, size, endTime-startTime, numarray[size-1]);
122 /* might want to comment this out, if numarray is big */
123 array_contents(numarray, size);