Last active
August 29, 2015 14:08
-
-
Save yosriady/f67b7cb555d4db9c4c64 to your computer and use it in GitHub Desktop.
To run: ./a.out 1 16 5 5 5 4 0 0 glider5554.txt
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #include <stdio.h> | |
| #include <stdlib.h> | |
| #include <math.h> | |
| #include <string.h> | |
| // ********************************************************************************************** | |
| //*Global Vars | |
| // ********************************************************************************************** | |
| int dp; // Field is displayed every dp generations (0..n) | |
| int sz; // Cube size | |
| // Let n be number of neighbours. r1 <= n <= r2 is birth range. n > r3, n < r4 is death range | |
| int r1,r2; | |
| int r3,r4; | |
| int sp; // number of generations per millisecond i.e. sp = 1000 means 1 generation per secnd | |
| int gen; // number of generations | |
| char* fl; // input filename to be read | |
| /********************************************************************************************** | |
| * INITIALIZATION | |
| **********************************************************************************************/ | |
| void initialization() | |
| { | |
| //Allocate memory | |
| // Generate points | |
| //Initialize CUDA | |
| } | |
| /********************************************************************************************** | |
| * DEINITIALIZATION | |
| **********************************************************************************************/ | |
| void deinitialization() | |
| { | |
| // Free resources below | |
| // Deinitialize CUDA | |
| } | |
| void read_field(FILE *fp){ | |
| char * line = NULL; | |
| size_t len = 0; | |
| ssize_t read; | |
| int elements[sz*sz*sz]; | |
| size_t size = 0; | |
| while((read = getline(&line, &len, fp)) != -1 ){ | |
| printf("Readline: %s \n", line); | |
| char *numbers = strtok(line," "); | |
| // Help: perform below switch case for character in numbers | |
| // switch (p){ | |
| // case '-1': | |
| // for (int i=0; i<sz; i++) { | |
| // elements[size++] = 0; | |
| // }; | |
| // // Need to exit for loop and continue with next line | |
| // break; | |
| // case '0': | |
| // elements[size++] = 0; | |
| // break; | |
| // case '1': | |
| // elements[size++] = 1; | |
| // break; | |
| // case '\n': | |
| // int padding = size % sz; | |
| // for(int j=0; j< padding; j++){ | |
| // elements[size++] = 0; | |
| // } | |
| // break; | |
| // default: | |
| // break; | |
| // } | |
| } | |
| // return elements; | |
| } | |
| void read_inputs(int argc, char **argv){ | |
| if (argc < 9){ | |
| printf("Needs 8 or 9 arguments"); | |
| } | |
| dp = atoi(argv[1]); | |
| sz = atoi(argv[2]); | |
| r1 = atoi(argv[3]); | |
| r2 = atoi(argv[4]); | |
| r3 = atoi(argv[5]); | |
| r4 = atoi(argv[6]); | |
| sp = atoi(argv[7]); | |
| gen = atoi(argv[8]); | |
| if (argc == 10){ | |
| fl = argv[9]; | |
| FILE *file = fopen(fl, "r"); | |
| read_field(file); | |
| } | |
| printf("dp: %i\n", dp); | |
| printf("sz: %i\n", sz); | |
| printf("r1: %i\n", r1); | |
| printf("r2: %i\n", r2); | |
| printf("r3: %i\n", r3); | |
| printf("r4: %i\n", r4); | |
| printf("sp: %i\n", sp); | |
| printf("gen: %i\n", gen); | |
| printf("fl: %s\n", fl); | |
| } | |
| int main(int argc, char **argv) | |
| { | |
| read_inputs(argc, argv); | |
| return 0; | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment