static inline void mcdc(uint16_t *dst, uint16_t *src, int log2w, int h, int stride, int scale, int dc){

   int i;

   dc*= 0x10001;



   switch(log2w){

   case 0:

        for(i=0; i<h; i++){

            dst[0] = scale*src[0] + dc;

            if(scale) src += stride;

            dst += stride;

        }

        break;

    case 1:

        for(i=0; i<h; i++){

            LE_CENTRIC_MUL(dst, src, scale, dc);

            if(scale) src += stride;

            dst += stride;

        }

        break;

    case 2:

        for(i=0; i<h; i++){

            LE_CENTRIC_MUL(dst,     src,     scale, dc);

            LE_CENTRIC_MUL(dst + 2, src + 2, scale, dc);

            if(scale) src += stride;

            dst += stride;

        }

        break;

    case 3:

        for(i=0; i<h; i++){

            LE_CENTRIC_MUL(dst,     src,     scale, dc);

            LE_CENTRIC_MUL(dst + 2, src + 2, scale, dc);

            LE_CENTRIC_MUL(dst + 4, src + 4, scale, dc);

            LE_CENTRIC_MUL(dst + 6, src + 6, scale, dc);

            if(scale) src += stride;

            dst += stride;

        }

        break;

    default: assert(0);

    }

}

static inline void mcdc(uint16_t *dst, uint16_t *src, int log2w, int h, int stride, int scale, int dc){

   int i;

   dc*= 0x10001;



   switch(log2w){

   case 0:

        for(i=0; i<h; i++){

            dst[0] = scale*src[0] + dc;

            if(scale) src += stride;

            dst += stride;

        }

        break;

    case 1:

        for(i=0; i<h; i++){

            LE_CENTRIC_MUL(dst, src, scale, dc);

            if(scale) src += stride;

            dst += stride;

        }

        break;

    case 2:

        for(i=0; i<h; i++){

            LE_CENTRIC_MUL(dst,     src,     scale, dc);

            LE_CENTRIC_MUL(dst + 2, src + 2, scale, dc);

            if(scale) src += stride;

            dst += stride;

        }

        break;

    case 3:

        for(i=0; i<h; i++){

            LE_CENTRIC_MUL(dst,     src,     scale, dc);

            LE_CENTRIC_MUL(dst + 2, src + 2, scale, dc);

            LE_CENTRIC_MUL(dst + 4, src + 4, scale, dc);

            LE_CENTRIC_MUL(dst + 6, src + 6, scale, dc);

            if(scale) src += stride;

            dst += stride;

        }

        break;

    default: assert(0);

    }

}

static inline void mcdc(uint16_t *dst, uint16_t *src, int log2w, int h, int stride, int scale, int dc){
static inline void FUNC_0(uint16_t *VAR_0, uint16_t *VAR_1, int VAR_2, int VAR_3, int VAR_4, int VAR_5, int VAR_6){

   int VAR_7;

   VAR_6*= 0x10001;



   switch(VAR_2){

   case 0:

        for(VAR_7=0; VAR_7<VAR_3; VAR_7++){

            VAR_0[0] = VAR_5*VAR_1[0] + VAR_6;

            if(VAR_5) VAR_1 += VAR_4;

            VAR_0 += VAR_4;

        }

        break;

    case 1:

        for(VAR_7=0; VAR_7<VAR_3; VAR_7++){

            LE_CENTRIC_MUL(VAR_0, VAR_1, VAR_5, VAR_6);

            if(VAR_5) VAR_1 += VAR_4;

            VAR_0 += VAR_4;

        }

        break;

    case 2:

        for(VAR_7=0; VAR_7<VAR_3; VAR_7++){

            LE_CENTRIC_MUL(VAR_0,     VAR_1,     VAR_5, VAR_6);

            LE_CENTRIC_MUL(VAR_0 + 2, VAR_1 + 2, VAR_5, VAR_6);

            if(VAR_5) VAR_1 += VAR_4;

            VAR_0 += VAR_4;

        }

        break;

    case 3:

        for(VAR_7=0; VAR_7<VAR_3; VAR_7++){

            LE_CENTRIC_MUL(VAR_0,     VAR_1,     VAR_5, VAR_6);

            LE_CENTRIC_MUL(VAR_0 + 2, VAR_1 + 2, VAR_5, VAR_6);

            LE_CENTRIC_MUL(VAR_0 + 4, VAR_1 + 4, VAR_5, VAR_6);

            LE_CENTRIC_MUL(VAR_0 + 6, VAR_1 + 6, VAR_5, VAR_6);

            if(VAR_5) VAR_1 += VAR_4;

            VAR_0 += VAR_4;

        }

        break;

    default: assert(0);

    }

}

static inline void FUNC_0(uint16_t *VAR_0, uint16_t *VAR_1, int VAR_2, int VAR_3, int VAR_4, int VAR_5, int VAR_6){ int VAR_7; VAR_6*= 0x10001; switch(VAR_2){ case 0:
for(VAR_7=0; VAR_7<VAR_3; VAR_7++){ VAR_0[0] = VAR_5*VAR_1[0] + VAR_6; if(VAR_5) VAR_1 += VAR_4; VAR_0 += VAR_4; } break; case 1:
for(VAR_7=0; VAR_7<VAR_3; VAR_7++){ LE_CENTRIC_MUL(VAR_0, VAR_1, VAR_5, VAR_6); if(VAR_5) VAR_1 += VAR_4; VAR_0 += VAR_4; } break; case 2:
for(VAR_7=0; VAR_7<VAR_3; VAR_7++){ LE_CENTRIC_MUL(VAR_0,     VAR_1,     VAR_5, VAR_6); LE_CENTRIC_MUL(VAR_0 + 2, VAR_1 + 2, VAR_5, VAR_6); if(VAR_5) VAR_1 += VAR_4; VAR_0 += VAR_4; } break; case 3:
for(VAR_7=0; VAR_7<VAR_3; VAR_7++){ LE_CENTRIC_MUL(VAR_0,     VAR_1,     VAR_5, VAR_6); LE_CENTRIC_MUL(VAR_0 + 2, VAR_1 + 2, VAR_5, VAR_6); LE_CENTRIC_MUL(VAR_0 + 4, VAR_1 + 4, VAR_5, VAR_6); LE_CENTRIC_MUL(VAR_0 + 6, VAR_1 + 6, VAR_5, VAR_6); if(VAR_5) VAR_1 += VAR_4; VAR_0 += VAR_4; } break; default: assert(0); } }