beast on linux/alpha - minor "bug"
- From: marius sirius inka de
- To: beast gnome org
- Subject: beast on linux/alpha - minor "bug"
- Date: Sat Sep 6 04:05:12 2003
Hi altogether,
Many programs doing heavy foating-point math cause problems on the alpha
architecture - they "die" on Flaoting-point-exceptions, and so does beast.
The problem are irregular fp-numbers like Inf and NaN which cause the
Alpha-FPU to throw exeptions even when they're only stored in its registers
(if I understood correctly).
There are probably many problematic places in the beast/BSE-sources, but
one special "bug" leads to a SIGFPE every time I tried to load the example
osc-test.bse
It's located in beast-gtk/bstcanvassource.c on line 693, common to beast
0.5.3, 0.5.4 and the cvs-version from last wednesday:
d_y /= n_channels;
Since n_channels may be zero this leads to d_y becoming Inf. It
obviously doesn't hurt everywhere else, d_y isn't used, if n_channels==0
(due to the for-loop on line 727) - but the Alpha already throws an
exception when generating this "infinite".
A simple
if(n_channels!=0) d_y /= n_channels;
corrects this problem and doesn't hurt on this place (in terms of
performance :-)) )
Could this be corrected in the sources ?? Of course, Alpha is unfortunately
obsolete, but many people still own and use them.
Thanks,
Marius Hillenbrand
--
living a RISCy life
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]