[PD] Lost at compilig cyclone ;-((((
Krzysztof Czaja
czaja at chopin.edu.pl
Sat Jun 26 17:14:51 CEST 2004
hi Guenter,
this fails, though:
int result[25];
void pass1(void)
{
int i;
float f = 0.0001, *fp = &f;
for (i=0;i<25;i++) {
*fp*=0.0001;
if (PD_BADFLOAT(*fp)) result[i] = 1;
else result[i] = 0;
}
}
void pass2(void)
{
int i;
float f = 0.0001;
for (i=0;i<25;i++) {
f*=0.0001;
if (result[i]) printf("%d badfloat %g %08x\n",i,f,*(int*)&f);
else printf("%d goodfloat %g %08x\n",i,f,*(int*)&f);
}
}
If compiled with "gcc-3.3 -O6...", you will get:
...
8 goodfloat 9.99995e-41 000116c2
9 goodfloat 9.80909e-45 00000007
...
while without "-O6" it works ok. The bottom line is, that I do not
know the rules (if there are any).
Krzysztof
guenter geiger wrote:
...
> I just tested this with gcc 3.3.4 from Debian and it seems to work.
More information about the Pd-list
mailing list