[Speex-dev] Speex inner_prod()
Jerry Trantow
jtrantow at ieee.org
Fri Feb 3 09:27:07 PST 2006
I am overriding the inner product routine in ltp.c. To test my replacement,
I threw some test vectors at it. I understand the loss of resolution caused
by the shift. I also see a FIXED_POINT danger with the summation of four
mults overflowing the 32 bit before the shift.
I can fix this by accumulating each term into a long, but if the code scales
the x[],y[] vectors to avoid this problem I could use parallel 16x16
multiply/adds.
You can see this problem with the following test case.
for (i=0;i<40;i++)
{
x[i]=-16384;
y[i]=-32768;
}
sum0=inner_prod(x, y, 40);
fprintf(stderr,"inner_prod0(%8d).\n",sum0);
Jerry J. Trantow
Applied Signal Processing, Inc.
jtrantow at ieee.org
More information about the Speex-dev
mailing list