static void sbr_dequant(SpectralBandReplication *sbr, int id_aac)

{

    int k, e;

    int ch;



    if (id_aac == TYPE_CPE && sbr->bs_coupling) {

        float alpha      = sbr->data[0].bs_amp_res ?  1.0f :  0.5f;

        float pan_offset = sbr->data[0].bs_amp_res ? 12.0f : 24.0f;

        for (e = 1; e <= sbr->data[0].bs_num_env; e++) {

            for (k = 0; k < sbr->n[sbr->data[0].bs_freq_res[e]]; k++) {

                float temp1 = exp2f(sbr->data[0].env_facs[e][k] * alpha + 7.0f);

                float temp2 = exp2f((pan_offset - sbr->data[1].env_facs[e][k]) * alpha);

                float fac   = temp1 / (1.0f + temp2);

                sbr->data[0].env_facs[e][k] = fac;

                sbr->data[1].env_facs[e][k] = fac * temp2;

            }

        }

        for (e = 1; e <= sbr->data[0].bs_num_noise; e++) {

            for (k = 0; k < sbr->n_q; k++) {

                float temp1 = exp2f(NOISE_FLOOR_OFFSET - sbr->data[0].noise_facs[e][k] + 1);

                float temp2 = exp2f(12 - sbr->data[1].noise_facs[e][k]);

                float fac   = temp1 / (1.0f + temp2);

                sbr->data[0].noise_facs[e][k] = fac;

                sbr->data[1].noise_facs[e][k] = fac * temp2;

            }

        }

    } else { // SCE or one non-coupled CPE

        for (ch = 0; ch < (id_aac == TYPE_CPE) + 1; ch++) {

            float alpha = sbr->data[ch].bs_amp_res ? 1.0f : 0.5f;

            for (e = 1; e <= sbr->data[ch].bs_num_env; e++)

                for (k = 0; k < sbr->n[sbr->data[ch].bs_freq_res[e]]; k++)

                    sbr->data[ch].env_facs[e][k] =

                        exp2f(alpha * sbr->data[ch].env_facs[e][k] + 6.0f);

            for (e = 1; e <= sbr->data[ch].bs_num_noise; e++)

                for (k = 0; k < sbr->n_q; k++)

                    sbr->data[ch].noise_facs[e][k] =

                        exp2f(NOISE_FLOOR_OFFSET - sbr->data[ch].noise_facs[e][k]);

        }

    }

}

static void sbr_dequant(SpectralBandReplication *sbr, int id_aac)

{

    int k, e;

    int ch;



    if (id_aac == TYPE_CPE && sbr->bs_coupling) {

        float alpha      = sbr->data[0].bs_amp_res ?  1.0f :  0.5f;

        float pan_offset = sbr->data[0].bs_amp_res ? 12.0f : 24.0f;

        for (e = 1; e <= sbr->data[0].bs_num_env; e++) {

            for (k = 0; k < sbr->n[sbr->data[0].bs_freq_res[e]]; k++) {

                float temp1 = exp2f(sbr->data[0].env_facs[e][k] * alpha + 7.0f);

                float temp2 = exp2f((pan_offset - sbr->data[1].env_facs[e][k]) * alpha);

                float fac   = temp1 / (1.0f + temp2);

                sbr->data[0].env_facs[e][k] = fac;

                sbr->data[1].env_facs[e][k] = fac * temp2;

            }

        }

        for (e = 1; e <= sbr->data[0].bs_num_noise; e++) {

            for (k = 0; k < sbr->n_q; k++) {

                float temp1 = exp2f(NOISE_FLOOR_OFFSET - sbr->data[0].noise_facs[e][k] + 1);

                float temp2 = exp2f(12 - sbr->data[1].noise_facs[e][k]);

                float fac   = temp1 / (1.0f + temp2);

                sbr->data[0].noise_facs[e][k] = fac;

                sbr->data[1].noise_facs[e][k] = fac * temp2;

            }

        }

    } else { 

        for (ch = 0; ch < (id_aac == TYPE_CPE) + 1; ch++) {

            float alpha = sbr->data[ch].bs_amp_res ? 1.0f : 0.5f;

            for (e = 1; e <= sbr->data[ch].bs_num_env; e++)

                for (k = 0; k < sbr->n[sbr->data[ch].bs_freq_res[e]]; k++)

                    sbr->data[ch].env_facs[e][k] =

                        exp2f(alpha * sbr->data[ch].env_facs[e][k] + 6.0f);

            for (e = 1; e <= sbr->data[ch].bs_num_noise; e++)

                for (k = 0; k < sbr->n_q; k++)

                    sbr->data[ch].noise_facs[e][k] =

                        exp2f(NOISE_FLOOR_OFFSET - sbr->data[ch].noise_facs[e][k]);

        }

    }

}

                float fac   = temp1 / (1.0f + temp2);                 float fac   = temp1 / (1.0f + temp2);                 for (k = 0; k < sbr->n[sbr->data[ch].bs_freq_res[e]]; k++)
static void FUNC_0(SpectralBandReplication *VAR_0, int VAR_1)

{

    int VAR_2, VAR_3;

    int VAR_4;



    if (VAR_1 == TYPE_CPE && VAR_0->bs_coupling) {

        float VAR_5      = VAR_0->data[0].bs_amp_res ?  1.0f :  0.5f;

        float VAR_6 = VAR_0->data[0].bs_amp_res ? 12.0f : 24.0f;

        for (VAR_3 = 1; VAR_3 <= VAR_0->data[0].bs_num_env; VAR_3++) {

            for (VAR_2 = 0; VAR_2 < VAR_0->n[VAR_0->data[0].bs_freq_res[VAR_3]]; VAR_2++) {

                float temp1 = exp2f(VAR_0->data[0].env_facs[VAR_3][VAR_2] * VAR_5 + 7.0f);

                float temp2 = exp2f((VAR_6 - VAR_0->data[1].env_facs[VAR_3][VAR_2]) * VAR_5);

                float fac   = temp1 / (1.0f + temp2);

                VAR_0->data[0].env_facs[VAR_3][VAR_2] = fac;

                VAR_0->data[1].env_facs[VAR_3][VAR_2] = fac * temp2;

            }

        }

        for (VAR_3 = 1; VAR_3 <= VAR_0->data[0].bs_num_noise; VAR_3++) {

            for (VAR_2 = 0; VAR_2 < VAR_0->n_q; VAR_2++) {

                float temp1 = exp2f(NOISE_FLOOR_OFFSET - VAR_0->data[0].noise_facs[VAR_3][VAR_2] + 1);

                float temp2 = exp2f(12 - VAR_0->data[1].noise_facs[VAR_3][VAR_2]);

                float fac   = temp1 / (1.0f + temp2);

                VAR_0->data[0].noise_facs[VAR_3][VAR_2] = fac;

                VAR_0->data[1].noise_facs[VAR_3][VAR_2] = fac * temp2;

            }

        }

    } else { 

        for (VAR_4 = 0; VAR_4 < (VAR_1 == TYPE_CPE) + 1; VAR_4++) {

            float VAR_5 = VAR_0->data[VAR_4].bs_amp_res ? 1.0f : 0.5f;

            for (VAR_3 = 1; VAR_3 <= VAR_0->data[VAR_4].bs_num_env; VAR_3++)

                for (VAR_2 = 0; VAR_2 < VAR_0->n[VAR_0->data[VAR_4].bs_freq_res[VAR_3]]; VAR_2++)

                    VAR_0->data[VAR_4].env_facs[VAR_3][VAR_2] =

                        exp2f(VAR_5 * VAR_0->data[VAR_4].env_facs[VAR_3][VAR_2] + 6.0f);

            for (VAR_3 = 1; VAR_3 <= VAR_0->data[VAR_4].bs_num_noise; VAR_3++)

                for (VAR_2 = 0; VAR_2 < VAR_0->n_q; VAR_2++)

                    VAR_0->data[VAR_4].noise_facs[VAR_3][VAR_2] =

                        exp2f(NOISE_FLOOR_OFFSET - VAR_0->data[VAR_4].noise_facs[VAR_3][VAR_2]);

        }

    }

}

static void FUNC_0(SpectralBandReplication *VAR_0, int VAR_1)
{ int VAR_2, VAR_3; int VAR_4; if (VAR_1 == TYPE_CPE && VAR_0->bs_coupling) { float VAR_5      = VAR_0->data[0].bs_amp_res ?  1.0f :  0.5f; float VAR_6 = VAR_0->data[0].bs_amp_res ? 12.0f : 24.0f; for (VAR_3 = 1; VAR_3 <= VAR_0->data[0].bs_num_env; VAR_3++) { for (VAR_2 = 0; VAR_2 < VAR_0->n[VAR_0->data[0].bs_freq_res[VAR_3]]; VAR_2++) { float temp1 = exp2f(VAR_0->data[0].env_facs[VAR_3][VAR_2] * VAR_5 + 7.0f); float temp2 = exp2f((VAR_6 - VAR_0->data[1].env_facs[VAR_3][VAR_2]) * VAR_5); float fac   = temp1 / (1.0f + temp2); VAR_0->data[0].env_facs[VAR_3][VAR_2] = fac; VAR_0->data[1].env_facs[VAR_3][VAR_2] = fac * temp2; } } for (VAR_3 = 1; VAR_3 <= VAR_0->data[0].bs_num_noise; VAR_3++) { for (VAR_2 = 0; VAR_2 < VAR_0->n_q; VAR_2++) { float temp1 = exp2f(NOISE_FLOOR_OFFSET - VAR_0->data[0].noise_facs[VAR_3][VAR_2] + 1); float temp2 = exp2f(12 - VAR_0->data[1].noise_facs[VAR_3][VAR_2]); float fac   = temp1 / (1.0f + temp2); VAR_0->data[0].noise_facs[VAR_3][VAR_2] = fac; VAR_0->data[1].noise_facs[VAR_3][VAR_2] = fac * temp2; } } } else { for (VAR_4 = 0; VAR_4 < (VAR_1 == TYPE_CPE) + 1; VAR_4++) { float VAR_5 = VAR_0->data[VAR_4].bs_amp_res ? 1.0f : 0.5f; for (VAR_3 = 1; VAR_3 <= VAR_0->data[VAR_4].bs_num_env; VAR_3++) for (VAR_2 = 0; VAR_2 < VAR_0->n[VAR_0->data[VAR_4].bs_freq_res[VAR_3]]; VAR_2++) VAR_0->data[VAR_4].env_facs[VAR_3][VAR_2] =
exp2f(VAR_5 * VAR_0->data[VAR_4].env_facs[VAR_3][VAR_2] + 6.0f); for (VAR_3 = 1; VAR_3 <= VAR_0->data[VAR_4].bs_num_noise; VAR_3++) for (VAR_2 = 0; VAR_2 < VAR_0->n_q; VAR_2++) VAR_0->data[VAR_4].noise_facs[VAR_3][VAR_2] =
exp2f(NOISE_FLOOR_OFFSET - VAR_0->data[VAR_4].noise_facs[VAR_3][VAR_2]); } } }