void ff_ac3_bit_alloc_calc_psd(int8_t *exp, int start, int end, int16_t *psd,

                               int16_t *band_psd)

{

    int bin, j, k, end1, v;



    /* exponent mapping to PSD */

    for(bin=start;bin<end;bin++) {

        psd[bin]=(3072 - (exp[bin] << 7));

    }



    /* PSD integration */

    j=start;

    k=bin_to_band_tab[start];

    do {

        v = psd[j++];

        end1 = FFMIN(band_start_tab[k+1], end);

        for (; j < end1; j++) {

            /* logadd */

            int adr = FFMIN(FFABS(v - psd[j]) >> 1, 255);

            v = FFMAX(v, psd[j]) + ff_ac3_log_add_tab[adr];

        }

        band_psd[k]=v;

        k++;

    } while (end > band_start_tab[k]);

}

void ff_ac3_bit_alloc_calc_psd(int8_t *exp, int start, int end, int16_t *psd,

                               int16_t *band_psd)

{

    int bin, j, k, end1, v;



    

    for(bin=start;bin<end;bin++) {

        psd[bin]=(3072 - (exp[bin] << 7));

    }



    

    j=start;

    k=bin_to_band_tab[start];

    do {

        v = psd[j++];

        end1 = FFMIN(band_start_tab[k+1], end);

        for (; j < end1; j++) {

            

            int adr = FFMIN(FFABS(v - psd[j]) >> 1, 255);

            v = FFMAX(v, psd[j]) + ff_ac3_log_add_tab[adr];

        }

        band_psd[k]=v;

        k++;

    } while (end > band_start_tab[k]);

}

void FUNC_0(int8_t *VAR_0, int VAR_1, int VAR_2, int16_t *VAR_3,

                               int16_t *VAR_4)

{

    int VAR_5, VAR_6, VAR_7, VAR_8, VAR_9;



    

    for(VAR_5=VAR_1;VAR_5<VAR_2;VAR_5++) {

        VAR_3[VAR_5]=(3072 - (VAR_0[VAR_5] << 7));

    }



    

    VAR_6=VAR_1;

    VAR_7=bin_to_band_tab[VAR_1];

    do {

        VAR_9 = VAR_3[VAR_6++];

        VAR_8 = FFMIN(band_start_tab[VAR_7+1], VAR_2);

        for (; VAR_6 < VAR_8; VAR_6++) {

            

            int VAR_10 = FFMIN(FFABS(VAR_9 - VAR_3[VAR_6]) >> 1, 255);

            VAR_9 = FFMAX(VAR_9, VAR_3[VAR_6]) + ff_ac3_log_add_tab[VAR_10];

        }

        VAR_4[VAR_7]=VAR_9;

        VAR_7++;

    } while (VAR_2 > band_start_tab[VAR_7]);

}

void FUNC_0(int8_t *VAR_0, int VAR_1, int VAR_2, int16_t *VAR_3,
int16_t *VAR_4)
{ int VAR_5, VAR_6, VAR_7, VAR_8, VAR_9; for(VAR_5=VAR_1;VAR_5<VAR_2;VAR_5++) { VAR_3[VAR_5]=(3072 - (VAR_0[VAR_5] << 7)); } VAR_6=VAR_1; VAR_7=bin_to_band_tab[VAR_1]; do { VAR_9 = VAR_3[VAR_6++]; VAR_8 = FFMIN(band_start_tab[VAR_7+1], VAR_2); for (; VAR_6 < VAR_8; VAR_6++) { int VAR_10 = FFMIN(FFABS(VAR_9 - VAR_3[VAR_6]) >> 1, 255); VAR_9 = FFMAX(VAR_9, VAR_3[VAR_6]) + ff_ac3_log_add_tab[VAR_10]; } VAR_4[VAR_7]=VAR_9; VAR_7++; } while (VAR_2 > band_start_tab[VAR_7]); }