int verbosity; // print statistics every number of steps indicated by this variable
clock_t start_clock; // clock cycles done when simulation starts
struct timeval start_time; // time at which simulation starts
+ float theta; // Parameter used for Barns Hut algorithm
+ int random; //Used to randomly create bodies
} Options;
void Body_Print(Body * a, FILE * out); //Print body a
-void Body_Force(Body * a, System * s); //Compute force on body a due to system of bodies s
+void Body_Forces(Body * a, System * s); //Compute force on body a due to system of bodies s
+void Body_Force(Body * a, Body * b); // Compute force on body a due to body b
void Body_Velocity(Body * a); //Compute velocity of body a
void Body_Position(Body * a); //Compute position of body a
void System_Init(System * s, const char * fileName); //Initialise System (array of bodies) from a text file
+void System_Random(System * s, int r); //Randomly create bodies
void System_Compute(System * s);
void System_Forces(System * s1, System * s2); //Compute forces for bodies in s1 due to bodies in s2 (also updates velocities)
void System_Positions(System * s); //Update positions for bodies in s1
-
+System * Split_System(System * s, unsigned n); // Splits one system into a number of other systems, returns an array of size n
void Universe_Cleanup(); //Cleanup universe and write bodies to file