Hi,
For reducing the
size of rq_tbale.dat as suggested by you people I have done following changes
within the libray.Can you please verify whether this is correct or
not.
The changed
'III_requantize' is as follows
static
mad_fixed_t
III_requantize(unsigned int value, signed int exp)
{
mad_fixed_t
requantized;
signed int frac;
struct fixedfloat const
*power;
frac = exp %
4; /* assumes sign(frac) == sign(exp) */
exp /=
4;
value =
value / 8; // Dividing the input value by
8
power =
&rq_table[value];
power = power * 16; // Multiplying the result after finding
the array index by 16
requantized =
power->mantissa;
exp +=
power->exponent;
if (exp <
0) {
if (-exp >= sizeof(mad_fixed_t) * CHAR_BIT)
{
/* underflow
*/
requantized = 0;
}
else {
requantized +=
1L << (-exp - 1);
requantized >>=
-exp;
}
}
else {
if (exp >= 5) {
/* overflow */
# if
defined(DEBUG)
fprintf(stderr, "requantize
overflow (%f * 2^%d)\n",
mad_f_todouble(requantized), exp);
# endif
requantized = MAD_F_MAX;
}
else
requantized <<= exp;
}
return frac ?
mad_f_mul(requantized, root_table[3 + frac]) :
requantized;
}
Reagrds,
swapnil