SCALE_RED
fs->w_q = (int) (w_q * (1 << SCALE_RED));
fs->max_p = (int)(max_p * (1 << SCALE_RED));
w_q = ((double)fs->w_q) / (1 << SCALE_RED);
fs->lookup_weight = (int)(weight * (1 << SCALE_RED));
1.0 * fs->w_q / (double)(1 << SCALE_RED),
1.0 * fs->max_p / (double)(1 << SCALE_RED));
#define SCALE(x) ( (x) << SCALE_RED )
#define SCALE_VAL(x) ( (x) >> SCALE_RED )
#define SCALE_MUL(x,y) ( ( (x) * (y) ) >> SCALE_RED )