X-Git-Url: http://git.onelab.eu/?p=iproute2.git;a=blobdiff_plain;f=netem%2Fparetonormal.c;fp=netem%2Fparetonormal.c;h=0000000000000000000000000000000000000000;hp=ed75f288302ba82f180e264cff207799933563c0;hb=3331a68859fd71047bb1f309048960b48eab2d83;hpb=2bd4a72f2100be7ad7d9518cb1d49bb2a5b71994 diff --git a/netem/paretonormal.c b/netem/paretonormal.c deleted file mode 100644 index ed75f28..0000000 --- a/netem/paretonormal.c +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Paretoormal distribution table generator - * - * This distribution is simply .25*normal + .75*pareto; a combination - * which seems to match experimentally observed distributions reasonably - * well, but is computationally easy to handle. - * The entries represent a scaled inverse of the cumulative distribution - * function. - * - * Taken from the uncopyrighted NISTnet code. - */ -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -#define TABLESIZE 16384 -#define TABLEFACTOR NETEM_DIST_SCALE - -static double -normal(double x, double mu, double sigma) -{ - return .5 + .5*erf((x-mu)/(sqrt(2.0)*sigma)); -} - -static const double a=3.0; - -static int -paretovalue(int i) -{ - double dvalue; - - i = 65536-4*i; - dvalue = (double)i/(double)65536; - dvalue = 1.0/pow(dvalue, 1.0/a); - dvalue -= 1.5; - dvalue *= (4.0/3.0)*(double)TABLEFACTOR; - if (dvalue > 32767) - dvalue = 32767; - return (int)rint(dvalue); -} - -int -main(int argc, char **argv) -{ - int i,n; - double x; - double table[TABLESIZE+1]; - - for (x = -10.0; x < 10.05; x += .00005) { - i = rint(TABLESIZE*normal(x, 0.0, 1.0)); - table[i] = x; - } - printf( -"# This is the distribution table for the paretonormal distribution.\n" - ); - - for (i = n = 0; i < TABLESIZE; i += 4) { - int normvalue, parvalue, value; - - normvalue = (int) rint(table[i]*TABLEFACTOR); - parvalue = paretovalue(i); - - value = (normvalue+3*parvalue)/4; - if (value < SHRT_MIN) value = SHRT_MIN; - if (value > SHRT_MAX) value = SHRT_MAX; - - printf(" %d", value); - if (++n == 8) { - putchar('\n'); - n = 0; - } - } - - return 0; -}