#include #include #include #include //#define n 110459 //#define trials 55228.0 int main(int argc, char **argv) { int j = 1; int k = 0; for (k = 0; k < 3; k++) { double cComponents = 0; double cComponentsSquared = 0; double cComponents3 = 0; double cComponents4 = 0; double cCyclicNodes = 0; double cCyclicNodesSquared = 0; double cCyclicNodes3 = 0; double cCyclicNodes4 = 0; double cImageNodes = 0; /*variance = 0*/ double cMaxCycle = 0; double cMaxCycleSquared = 0; double cMaxCycle3 = 0; double cMaxCycle4 = 0; double cMaxTail = 0; double cMaxTailSquared = 0; double cMaxTail3 = 0; double cMaxTail4 = 0; double cWeightedCycle = 0; double cWeightedCycleSquared = 0; double cWeightedCycle3 = 0; double cWeightedCycle4 = 0; double cWeightedTail = 0; double cWeightedTailSquared = 0; double cWeightedTail3 = 0; double cWeightedTail4 = 0; //int names[] = {110017, 120041, 130021, 140053, 150001, 160009, 170101, 180001, 190093, 200041}; //int tnum[] = {18240, 24000, 15680, 21200, 20000, 25984, 19440, 24000, 25920, 26656}; int names[] = {100043, 100057, 106261}; int tnum[] = {50020, 15120, 10560}; //int names[] = {99923, 99961, 99971, 99989, 99991, 100003, 100019, 100049, 100069, 100103}; //int tnum[] = {48852, 10752, 36864, 21420, 24000, 28560, 48804, 22464, 16080, 50050}; //int names[] = {110459, 120167, 130127, 140123, 150083, 160079, 170099, 180023, 190523, 200087}; //int tnum[] = {55228, 60082, 65062, 70060, 75040, 80038, 85048, 90010, 95260, 100042}; int n = names[k]; double trials = (double)tnum[k]; char dirn[32]; sprintf(dirn, "../d%d", n); DIR *dir = opendir(dirn); struct dirent *fileEnt; while(fileEnt = readdir(dir)) { if (strcmp(fileEnt->d_name, ".") == 0 || strcmp(fileEnt->d_name, "..") == 0) continue; printf("%s\n", fileEnt->d_name); FILE * file; char fname[32]; sprintf(fname, "../d%d/%s", n, fileEnt->d_name); file = fopen(fname, "r"); int allComponents = 0; int allCycleLengthSum = 0; int allToCycleSum = 0; int terminalnodebasei = 0; int terminalAll = 0; int maxCAll = 0; int maxTAll = 0; int allCyclicNodes = 0; if (file == NULL) printf("no file\n"); for ( j = 2; j < n; j++) { //for(i = 2; i < n; i++) { /*0 and 1 not considered*/ // fprintf(out, "%d %d %d %d %d %d %d\n", allComponents[i], allCycleLengthSum[i], // allToCycleSum[i], terminalAll[i], maxCAll[i], maxTAll[i], allCyclicNodes[i]); fscanf(file, "%d %d %d %d %d %d %d\n", &allComponents, &allCycleLengthSum, &allToCycleSum, &terminalAll, &maxCAll, &maxTAll, &allCyclicNodes); cComponents += ((double)allComponents) / trials; cComponentsSquared += (double)allComponents * (double)allComponents / trials; cComponents3 += (double)allComponents * (double)allComponents * (double)allComponents / trials; cComponents4 += (double)allComponents * (double)allComponents * (double)allComponents * (double)allComponents / trials; cCyclicNodes += (double)allCyclicNodes / trials; cCyclicNodesSquared += (double)allCyclicNodes * (double)allCyclicNodes / trials; cCyclicNodes3 += (double)allCyclicNodes * (double)allCyclicNodes * (double)allCyclicNodes / trials; cCyclicNodes4 += (double)allCyclicNodes * (double)allCyclicNodes * (double)allCyclicNodes * (double)allCyclicNodes / trials; double cycle = (double)allCycleLengthSum / (double)(n-1); cWeightedCycle += (double)(cycle) / trials; cWeightedCycleSquared += (double)(cycle*cycle) / (trials); cWeightedCycle3 += (double)(cycle*cycle*cycle) / (trials); cWeightedCycle4 += (double)(cycle*cycle*cycle*cycle) / (trials); double tail = (double)allToCycleSum / (double)(n-1); cWeightedTail += tail / trials; cWeightedTailSquared += (double)(tail*tail) / (trials); cWeightedTail3 += (double)(tail*tail*tail) / (trials); cWeightedTail4 += (double)(tail*tail*tail*tail) / (trials); if (terminalAll > 0) cImageNodes += ((double)(n-1) - terminalAll) / trials; cMaxCycle += (double)maxCAll / trials; cMaxCycleSquared += (double)maxCAll*(double)maxCAll / trials; cMaxCycle3 += (double)maxCAll*(double)maxCAll*(double)maxCAll / trials; cMaxCycle4 += (double)maxCAll*(double)maxCAll*(double)maxCAll*(double)maxCAll / trials; cMaxTail += (double)maxTAll / trials; cMaxTailSquared += (double)maxTAll*(double)maxTAll / trials; cMaxTail3 += (double)maxTAll*(double)maxTAll * (double)maxTAll / trials; cMaxTail4 += (double)maxTAll*(double)maxTAll * (double)maxTAll*(double)maxTAll / trials; } fclose(file); } double ComponentsVariance = cComponentsSquared - cComponents*cComponents; /* Sum( ((x_i - x_bar)^2 - var)^2 ) / n */ double ComponentsVarVar = cComponents4 - 4*cComponents*cComponents3 + 6*cComponents*cComponents*cComponentsSquared - 3*cComponents*cComponents*cComponents*cComponents - ComponentsVariance*ComponentsVariance; double CyclicNodesVariance = cCyclicNodesSquared - cCyclicNodes*cCyclicNodes; double CyclicNodesVarVar = cCyclicNodes4 - 4*cCyclicNodes*cCyclicNodes3 + 6*cCyclicNodes*cCyclicNodes*cCyclicNodesSquared - 3*cCyclicNodes*cCyclicNodes*cCyclicNodes*cCyclicNodes - CyclicNodesVariance*CyclicNodesVariance; double WeightedCycleVariance = cWeightedCycleSquared - cWeightedCycle*cWeightedCycle; double WeightedCycleVarVar = cWeightedCycle4 - 4*cWeightedCycle*cWeightedCycle3 + 6*cWeightedCycle*cWeightedCycle*cWeightedCycleSquared - 3*cWeightedCycle*cWeightedCycle*cWeightedCycle*cWeightedCycle - WeightedCycleVariance*WeightedCycleVariance; double WeightedTailVariance = cWeightedTailSquared - cWeightedTail*cWeightedTail; double WeightedTailVarVar = cWeightedTail4 - 4*cWeightedTail*cWeightedTail3 + 6*cWeightedTail*cWeightedTail*cWeightedTailSquared - 3*cWeightedTail*cWeightedTail*cWeightedTail*cWeightedTail - WeightedTailVariance*WeightedTailVariance; double MaxCycleVariance = cMaxCycleSquared - cMaxCycle*cMaxCycle; double MaxCycleVarVar = cMaxCycle4 - 4*cMaxCycle*cMaxCycle3 + 6*cMaxCycle*cMaxCycle*cMaxCycleSquared - 3*cMaxCycle*cMaxCycle*cMaxCycle*cMaxCycle - MaxCycleVariance*MaxCycleVariance; double MaxTailVariance = cMaxTailSquared - cMaxTail*cMaxTail; double MaxTailVarVar = cMaxTail4 - 4*cMaxTail*cMaxTail3 + 6*cMaxTail*cMaxTail*cMaxTailSquared - 3*cMaxTail*cMaxTail*cMaxTail*cMaxTail - MaxTailVariance*MaxTailVariance; FILE * r; char name[32]; sprintf(name, "results_%d.dat", n); r = fopen(name, "w"); fprintf(r, "components: %lf \n", cComponents); fprintf(r, "components variance: %lf \n", ComponentsVariance); fprintf(r, "components variance (var): %lf \n", ComponentsVarVar); fprintf(r, "cyclic nodes: %lf \n", cCyclicNodes); fprintf(r, "cyclic nodes variance: %lf\n", CyclicNodesVariance); fprintf(r, "cyclic nodes variance (var): %lf\n", CyclicNodesVarVar); fprintf(r, "avg cycle: %lf\n", cWeightedCycle); fprintf(r, "avg cycle variance: %lf\n", WeightedCycleVariance); fprintf(r, "avg cycle variance (var): %lf\n", WeightedCycleVarVar); fprintf(r, "avg tail: %lf\n", cWeightedTail); fprintf(r, "avg tail variance: %lf\n", WeightedTailVariance); fprintf(r, "avg tail variance (var): %lf\n", WeightedTailVarVar); fprintf(r, "image nodes: %lf\n", cImageNodes); fprintf(r, "max cycle: %lf\n", cMaxCycle); fprintf(r, "max cycle variance: %lf\n", MaxCycleVariance); fprintf(r, "max cycle variance (var): %lf\n", MaxCycleVarVar); fprintf(r, "max tail: %lf\n", cMaxTail); fprintf(r, "max tail variance: %lf\n", MaxTailVariance); fprintf(r, "max tail variance (var): %lf\n", MaxTailVarVar); fclose(r); } }