-/**
- * @function Split_System
- * @purpose Helper to divide one system into an array of systems
- * Each sub system will have N = (s->N / n) bodies in it
- * @param s - The original system (typically &universe)
- * @param n - The number of sub systems in the array
- *
- * WARNING: It is the caller's responsibility to free() the returned array
- */
-System * Split_System(System * s, unsigned n)
-{
- System * result = (System*)(calloc(n, sizeof(System)));
- if (result == NULL)
- {
- perror("Couldn't create array of sub systems");
- QuitProgram(true);
- pthread_exit(NULL);
- }
- unsigned n_per_system = (s->N) / n;
- unsigned remainder = (s->N) % n;
-
- for (unsigned i = 0; i < n; ++i)
- {
- result[i].N = n_per_system;
- if (i == n-1)
- result[i].N += remainder;
- result[i].body = (s->body) + (n_per_system * i);
- result[i].steps = 0;
- }
- return result;
-}
/**
* @function Allocate_Threads
System * s = (System*)(arg);
s->steps += 1; //Increment number of steps computed
- if (options.verbosity != 0 && s->steps % options.verbosity == 1)
+ if (options.verbosity != 0 && s->steps % options.verbosity == 0)
DisplayStatistics();