[Speex-dev] More floating point errors
Jean-Marc Valin
Jean-Marc.Valin at USherbrooke.ca
Tue Dec 13 01:35:59 PST 2005
> It seems that using a different compiler (I assume the development is
> done with MSC) uncovers various issues with the floating point.
No, all development is done on gcc/Linux.
> Here is the second one I'm seeing - DOMAIN error from sqrt().
>
> In the open_loop_nbest_pitch(), this line:
>
> g = DIV32(corr[i-start], 10
> +SHR32(MULT16_16(spx_sqrt(e0),spx_sqrt(energy[i-start])),6));
change that to:
g = DIV32(corr[i-start], 10+SHR32(MULT16_16(spx_sqrt(e0),spx_sqrt(1
+energy[i-start])),6));
(note the "1+" in the spx_sqrt)
As for this appearing only on some version/compiler configurations, the
only explanation is sheer luck (order in which the float operations are
done and when it goes to registers).
Jean-Marc
More information about the Speex-dev
mailing list