Ignore:
Timestamp:
03/01/14 22:25:20 (10 years ago)
Author:
sz
Message:

reformatting, english translation

File:
1 edited

Legend:

Unmodified
Added
Removed
  • cpp/frams/util/rndutil.cpp

    r121 r154  
    99unsigned short pseudornd(short x)
    1010{
    11 static long seed=0;
    12 long y;
    13 if (x<=0) {seed=-x; return 0;}
    14 seed=(y=(3677*seed+3680)&0x7fffffff)-1;
    15 return (unsigned short)(((unsigned short)y)%(x));//rzutowanie y->unsigned short to pewnie blad bo zmniejsza wartosc ktorej sie potem robi modulo, ale pseudornd sluzy chyba tylko do generowania randomowych world map? i modulo i tak jest tam bardzo male, lepiej niczego nie zmieniac bo po co maja pliki z ustawieniami zmienic swoje przypadkowe znaczenie
     11        static long seed = 0;
     12        long y;
     13        if (x <= 0) { seed = -x; return 0; }
     14        seed = (y = (3677 * seed + 3680) & 0x7fffffff) - 1;
     15        return (unsigned short)(((unsigned short)y) % (x)); //rzutowanie y->unsigned short to pewnie blad bo zmniejsza wartosc ktorej sie potem robi modulo, ale pseudornd sluzy chyba tylko do generowania randomowych world map? i modulo i tak jest tam bardzo male, lepiej niczego nie zmieniac bo po co maja pliki z ustawieniami zmienic swoje przypadkowe znaczenie
    1616}
    1717
    1818double CustomRnd(double *tab)
    1919{
    20 double *range=tab+1+2*randomN((int)(0.5+tab[0]));
    21 return range[0]+rnd0N(range[1]-range[0]);
     20        double *range = tab + 1 + 2 * randomN((int)(0.5 + tab[0]));
     21        return range[0] + rnd0N(range[1] - range[0]);
    2222}
    2323
    2424double RandomGener::Uni(double begin, double end)
    2525{
    26 return begin+rnd01*(end-begin);
     26        return begin + rnd01*(end - begin);
    2727}
    2828
    2929double RandomGener::GaussStd()
    3030{
    31 if (isNextGauss) {isNextGauss=0; return nextGauss;}
    32 double v1,v2,s;
    33 do {
    34 v1=2*rnd01-1; //-1..1
    35 v2=2*rnd01-1; //-1..1
    36 s=v1*v1+v2*v2;
    37 } while (s>=1);
    38 double mult=sqrt(-2*log(s)/s);
    39 nextGauss=v2*mult;
    40 isNextGauss=1;
    41 return v1*mult;
     31        if (isNextGauss) { isNextGauss = 0; return nextGauss; }
     32        double v1, v2, s;
     33        do {
     34                v1 = 2 * rnd01 - 1; //-1..1
     35                v2 = 2 * rnd01 - 1; //-1..1
     36                s = v1*v1 + v2*v2;
     37        } while (s >= 1);
     38        double mult = sqrt(-2 * log(s) / s);
     39        nextGauss = v2*mult;
     40        isNextGauss = 1;
     41        return v1*mult;
    4242}
    4343
    44 double RandomGener::Gauss(double m,double s)
    45 {return m+s*GaussStd();}
     44double RandomGener::Gauss(double m, double s)
     45{
     46        return m + s*GaussStd();
     47}
    4648
    4749RandomGener RndGen;
Note: See TracChangeset for help on using the changeset viewer.