static inline int l1_unscale(int n, int mant, int scale_factor)

{

    int shift, mod;

    int64_t val;



    shift   = scale_factor_modshift[scale_factor];

    mod     = shift & 3;

    shift >>= 2;

    val     = MUL64(mant + (-1 << n) + 1, scale_factor_mult[n-1][mod]);

    shift  += n;

    /* NOTE: at this point, 1 <= shift >= 21 + 15 */

    return (int)((val + (1LL << (shift - 1))) >> shift);

}

static inline int l1_unscale(int n, int mant, int scale_factor)

{

    int shift, mod;

    int64_t val;



    shift   = scale_factor_modshift[scale_factor];

    mod     = shift & 3;

    shift >>= 2;

    val     = MUL64(mant + (-1 << n) + 1, scale_factor_mult[n-1][mod]);

    shift  += n;

    

    return (int)((val + (1LL << (shift - 1))) >> shift);

}

    val     = MUL64(mant + (-1 << n) + 1, scale_factor_mult[n-1][mod]);
static inline int FUNC_0(int VAR_0, int VAR_1, int VAR_2)

{

    int VAR_3, VAR_4;

    int64_t val;



    VAR_3   = scale_factor_modshift[VAR_2];

    VAR_4     = VAR_3 & 3;

    VAR_3 >>= 2;

    val     = MUL64(VAR_1 + (-1 << VAR_0) + 1, scale_factor_mult[VAR_0-1][VAR_4]);

    VAR_3  += VAR_0;

    

    return (int)((val + (1LL << (VAR_3 - 1))) >> VAR_3);

}

static inline int FUNC_0(int VAR_0, int VAR_1, int VAR_2)
{ int VAR_3, VAR_4; int64_t val; VAR_3   = scale_factor_modshift[VAR_2]; VAR_4     = VAR_3 & 3; VAR_3 >>= 2; val     = MUL64(VAR_1 + (-1 << VAR_0) + 1, scale_factor_mult[VAR_0-1][VAR_4]); VAR_3  += VAR_0; return (int)((val + (1LL << (VAR_3 - 1))) >> VAR_3); }