The function fe_log_add(x,y) in fe_sigproc.c referes to a table
fe_logadd_table. The table size is fe_log_add_table_size and hence the index
to it will lie in the range 0 to fe_log_add_table_size - 1. However the range
used in the code is fe_log_add_table_size. The original code is as follows: if (d > fe_logadd_table_size) _???//// The should be if(d >= fe_logadd_table_size-_1)
return r;
else
{
r += ((fixed32)fe_logadd_table << (DEFAULT_RADIX - 8));
return r;
}
Regards
pankaj
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hello,
The function fe_log_add(x,y) in fe_sigproc.c referes to a table
fe_logadd_table. The table size is fe_log_add_table_size and hence the index
to it will lie in the range 0 to fe_log_add_table_size - 1. However the range
used in the code is fe_log_add_table_size. The original code is as follows:
if (d > fe_logadd_table_size) _???//// The should be if(d >= fe_logadd_table_size-_1)
return r;
else
{
r += ((fixed32)fe_logadd_table << (DEFAULT_RADIX - 8));
return r;
}
Regards
pankaj
Indeed, this is a bug. It's now fixed in trunk, thanks a lot for report.