about summary refs log tree commit diff
path: root/src/c/read.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/c/read.c')
-rw-r--r--src/c/read.c81
1 files changed, 81 insertions, 0 deletions
diff --git a/src/c/read.c b/src/c/read.c
index 109c603..48ece4b 100644
--- a/src/c/read.c
+++ b/src/c/read.c
@@ -6,8 +6,21 @@
 // Define some constants
 int range = 100;
 
+// Define some variables
+int sigma = 200;
+float f_0 = 0.1;
+float R_s = 1e4;
+
+// Define some constants
+float pi = M_PI;
+float e = M_E;
+float G = 4.302e-3;
+
 // Prototype pythagoras function
 float pythagoras(int x, int y, int z);
+// More prototypes
+float rho(float r);
+float phi(float x);
 
 int main(int argc, char *argv[] ){
   // Seed random
@@ -20,6 +33,10 @@ int main(int argc, char *argv[] ){
   // define an array to store the coordinates of the stars in
   int star_arr[num_of_stars][3];
 
+  /*
+    Generate random coordinates
+  */
+
   // generate the random coordinates
   for(int i = 0; i < num_of_stars; i++){
     star_arr[i][0] = rand() % range + 1;
@@ -27,6 +44,10 @@ int main(int argc, char *argv[] ){
     star_arr[i][2] = rand() % range + 1;
   }
 
+  /*
+    Print out the coordinates
+  */
+
   // print the content of the array star_arr
   for(int i = 0; i < num_of_stars; i++){
     printf("%d, %d, %d\n", star_arr[i][0], star_arr[i][1], star_arr[i][2]);
@@ -34,6 +55,45 @@ int main(int argc, char *argv[] ){
 
   }
 
+  /*
+    Generate a lookuptable
+  */
+
+  // If the correct amount (2) of command line arguments are given, continue
+  if( argc == 2 ) {
+
+    // Print out how many stars are being generated
+    printf("Generating %s Values...\n", num_of_stars);
+
+    // Open a file into which the lookuptable wil be written
+    FILE * fp = fopen("testFile.csv", "w+");
+
+    // Abourt if no file is specified
+    if(fp == NULL){
+      printf("Error opening the file!\n");
+      exit(1);
+    }
+
+    // generate the lookuptable
+    for(int i = 0; i < num_of_stars; i++){
+      fprintf(fp, "%d, %f\n", i, phi(i));
+    }
+
+    // close the file now containing the lookuptable
+    fclose(fp);
+
+  }
+  // Exception: to many arguments
+  else if( argc > 2 ) {
+    printf("Too many arguments supplied.\n");
+    return 0;
+  }
+  // Exception: no argument specified
+  else {
+    printf("One argument expected.\n");
+    return 0;
+  }
+
   // Test if the Star should be generated or not
 
     // If the star should be generated, write it's coordinates to a file
@@ -42,6 +102,7 @@ int main(int argc, char *argv[] ){
   return 0;
 }
 
+// Define the Pythagorean theorem
 float pythagoras(int x, int y, int z){
   float a = pow(x, 2);
   float b = pow(y, 2);
@@ -50,3 +111,23 @@ float pythagoras(int x, int y, int z){
   float e = sqrt(d);
   return e;
 }
+
+// Define rho function
+float rho(float r){
+  float a = (1) / ( sqrt(2 * pi) * sigma);
+  float b = exp( - (phi(r) / pow(sigma, 2) ));
+  return a;
+}
+
+// Define phi function
+float phi(float x){
+  if(x == 0) {
+    float a = -4 * pi * f_0 * G * pow(R_s, 2);
+    return(a);
+  }
+  else {
+    float a = - (4 * pi * G * f_0 * pow(R_s, 3) / x);
+    float b = log(1 + (x / R_s) );
+    return(a * b);
+  }
+}