static void revert_cdlms(WmallDecodeCtx *s, int ch,

                         int coef_begin, int coef_end)

{

    int icoef, pred, ilms, num_lms, residue, input;



    num_lms = s->cdlms_ttl[ch];

    for (ilms = num_lms - 1; ilms >= 0; ilms--) {

        for (icoef = coef_begin; icoef < coef_end; icoef++) {

            pred = 1 << (s->cdlms[ch][ilms].scaling - 1);

            residue = s->channel_residues[ch][icoef];

            pred += s->dsp.scalarproduct_and_madd_int16(s->cdlms[ch][ilms].coefs,

                                                        s->cdlms[ch][ilms].lms_prevvalues

                                                            + s->cdlms[ch][ilms].recent,

                                                        s->cdlms[ch][ilms].lms_updates

                                                            + s->cdlms[ch][ilms].recent,

                                                        s->cdlms[ch][ilms].order,

                                                        WMASIGN(residue));

            input = residue + (pred >> s->cdlms[ch][ilms].scaling);

            lms_update(s, ch, ilms, input);

            s->channel_residues[ch][icoef] = input;

        }

    }


}
static void revert_cdlms(WmallDecodeCtx *s, int ch,

                         int coef_begin, int coef_end)

{

    int icoef, pred, ilms, num_lms, residue, input;



    num_lms = s->cdlms_ttl[ch];

    for (ilms = num_lms - 1; ilms >= 0; ilms--) {

        for (icoef = coef_begin; icoef < coef_end; icoef++) {

            pred = 1 << (s->cdlms[ch][ilms].scaling - 1);

            residue = s->channel_residues[ch][icoef];

            pred += s->dsp.scalarproduct_and_madd_int16(s->cdlms[ch][ilms].coefs,

                                                        s->cdlms[ch][ilms].lms_prevvalues

                                                            + s->cdlms[ch][ilms].recent,

                                                        s->cdlms[ch][ilms].lms_updates

                                                            + s->cdlms[ch][ilms].recent,

                                                        s->cdlms[ch][ilms].order,

                                                        WMASIGN(residue));

            input = residue + (pred >> s->cdlms[ch][ilms].scaling);

            lms_update(s, ch, ilms, input);

            s->channel_residues[ch][icoef] = input;

        }

    }


}
static void FUNC_0(WmallDecodeCtx *VAR_0, int VAR_1,

                         int VAR_2, int VAR_3)

{

    int VAR_4, VAR_5, VAR_6, VAR_7, VAR_8, VAR_9;



    VAR_7 = VAR_0->cdlms_ttl[VAR_1];

    for (VAR_6 = VAR_7 - 1; VAR_6 >= 0; VAR_6--) {

        for (VAR_4 = VAR_2; VAR_4 < VAR_3; VAR_4++) {

            VAR_5 = 1 << (VAR_0->cdlms[VAR_1][VAR_6].scaling - 1);

            VAR_8 = VAR_0->channel_residues[VAR_1][VAR_4];

            VAR_5 += VAR_0->dsp.scalarproduct_and_madd_int16(VAR_0->cdlms[VAR_1][VAR_6].coefs,

                                                        VAR_0->cdlms[VAR_1][VAR_6].lms_prevvalues

                                                            + VAR_0->cdlms[VAR_1][VAR_6].recent,

                                                        VAR_0->cdlms[VAR_1][VAR_6].lms_updates

                                                            + VAR_0->cdlms[VAR_1][VAR_6].recent,

                                                        VAR_0->cdlms[VAR_1][VAR_6].order,

                                                        WMASIGN(VAR_8));

            VAR_9 = VAR_8 + (VAR_5 >> VAR_0->cdlms[VAR_1][VAR_6].scaling);

            lms_update(VAR_0, VAR_1, VAR_6, VAR_9);

            VAR_0->channel_residues[VAR_1][VAR_4] = VAR_9;

        }

    }


}
static void FUNC_0(WmallDecodeCtx *VAR_0, int VAR_1,
int VAR_2, int VAR_3)
{ int VAR_4, VAR_5, VAR_6, VAR_7, VAR_8, VAR_9; VAR_7 = VAR_0->cdlms_ttl[VAR_1]; for (VAR_6 = VAR_7 - 1; VAR_6 >= 0; VAR_6--) { for (VAR_4 = VAR_2; VAR_4 < VAR_3; VAR_4++) { VAR_5 = 1 << (VAR_0->cdlms[VAR_1][VAR_6].scaling - 1); VAR_8 = VAR_0->channel_residues[VAR_1][VAR_4]; VAR_5 += VAR_0->dsp.scalarproduct_and_madd_int16(VAR_0->cdlms[VAR_1][VAR_6].coefs,
VAR_0->cdlms[VAR_1][VAR_6].lms_prevvalues
+ VAR_0->cdlms[VAR_1][VAR_6].recent,
VAR_0->cdlms[VAR_1][VAR_6].lms_updates
+ VAR_0->cdlms[VAR_1][VAR_6].recent,
VAR_0->cdlms[VAR_1][VAR_6].order,
WMASIGN(VAR_8)); VAR_9 = VAR_8 + (VAR_5 >> VAR_0->cdlms[VAR_1][VAR_6].scaling); lms_update(VAR_0, VAR_1, VAR_6, VAR_9); VAR_0->channel_residues[VAR_1][VAR_4] = VAR_9; } } }