[PIPython] loop strano
Ernesto
e.picardi
Mar 15 Nov 2005 15:28:59 CET
Ciao a tutti,
sto cercando di tradurre in python una funzione scritta in c. Mi sono
bloccato davanti il loop "for(;;)" che non so cosa voglia dire. Qualcuno di
voi ha mai visto qualcosa del genere? Grazie
Ernesto
Inserisco anche la funzione c completa.
double rndgamma1 (double s)
{
double r, x=0.0, small=1e-37, w;
static double a, p, uf, ss=10.0, d;
if (s!=ss)
{
a = 1.0-s;
p = a/(a+s*exp(-a));
uf = p*pow(small/a,s);
d = a*log(a);
ss = s;
}
for (;;)
{
r = rndu();
if (r > p)
x = a-log((1.0-r)/(1.0-p)), w=a*log(x)-d;
else if (r>uf)
x = a*pow(r/p,1/s), w=x;
else
return (0.0);
r = rndu();
if (1.0-r <= w && r > 0.0)
if (r*(w+1.0) >= 1.0 || -log(r) <= w)
continue;
break;
}
return (x);
More information about the Python
mailing list