📄 makecdf.cc
字号:
#include <stdio.h>#include <stdlib.h>#include <math.h>// in units of 0.1 milliseconds#define MAX_DELAY 5000 int main(int argc, char* argv[]){ unsigned int occurrence[MAX_DELAY]; FILE *finput; FILE *foutput; double time; double delay; double avg; unsigned int station; unsigned int traffic_class; long total_packets; if (argc<3 && argc>4) return 1; double ignore_time=0.0; if (argc==4) { ignore_time=atof(argv[3]); if (ignore_time<0.0) return 1; } total_packets=0; avg=0.0; for (int i=0; i<MAX_DELAY; i++) occurrence[i]=0; printf("Making CDF..\n"); finput=fopen(argv[1],"r"); while (feof(finput)==0) { fscanf(finput,"%lf %lf %d:%d\n",&time,&delay,&station,&traffic_class); if (time<ignore_time) continue; for (int i=0; i<MAX_DELAY; i++) if ((int)ceil(delay*10000.0)<=i) occurrence[i]++; avg+=delay; total_packets+=1; //printf("%lf %lf %d:%d\n",time,delay,station,traffic_class); } fclose(finput); printf("\t..total number of packets processed for %d:%d is %d\n",station,traffic_class,total_packets); printf("\tAverage delay is %2.9lf\n",avg/total_packets); foutput=fopen(argv[2],"w"); for (int i=0; i<MAX_DELAY; i++) { double delay=i; delay=delay/10000.0; double cdf=occurrence[i]; cdf=cdf/total_packets; fprintf(foutput,"%lf %lf\n",delay,cdf); } fclose(foutput); return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -