00001 #include "models.h"
00002
00003 int Power_law_no_hops(double delta, double H){
00004 int hop;
00005 double ran;
00006 ran = drand48();
00007 hop = (int) ceil(delta*pow(ran,1/H) );
00008 return(hop);
00009 }
00010
00011
00012 int Inet_default_no_hops(int diameter){
00013 int i;
00014 double *table;
00015 double sum,ran;
00016 int hops=-1;
00017 switch(diameter){
00018 case 20 : { table = table20;break;}
00019 case 16 : { table = table16;break;}
00020 case 15 : { table = table15;break;}
00021 case 12 : { table = table12;break;}
00022 default : { table = table20; diameter=20; break;}
00023 }
00024 ran = drand48();
00025 sum=0;
00026 for(i=1;i<=diameter;i++){
00027 sum+=table[i-1];
00028 if(ran<sum){
00029 hops=i;
00030 break;
00031 }
00032 }
00033 if(hops==-1)
00034 hops=diameter;
00035 return(hops);
00036 }
00037
00038 double Binomial_aggregations(double mu, double p){
00039 return(mu*ceil(log10(1-drand48())/log10(p)));
00040 }