Skip to content

Instantly share code, notes, and snippets.

@yosriady
Last active August 29, 2015 14:08
Show Gist options
  • Select an option

  • Save yosriady/f67b7cb555d4db9c4c64 to your computer and use it in GitHub Desktop.

Select an option

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
#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