Computational routine
eng


adder_c

File content


/* Modnumlib Scicos interfacing function
 * Copyright (C) 2009-2011 Alan Layec
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public
 * License as published by the Free Software Foundation; either
 * version 2 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * General Public License for more details.
 *
 * You should have received a copy of the GNU General Public
 * License along with this library; if not, write to the
 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 * Boston, MA 02111-1307, USA.
 */
 
#include "scicos_block4.h"

/* macros for digital adder */
#define ADDER \
  A = A & (C-1); \
  B = B & (C-1); \
  A = A + B; \
  D = (A & C)>>ipar[0]; \
  A = A & (C-1);

void adder_c(scicos_block *block,int flag)
{

 if((flag==1)||(flag==6)) {

    /* counter variables */
    int i,j,k;

    /* variables for input/output size */
    int nu,mu;

    /* variables for input/output type */
    int intyp,outtyp;

    /* ptr for integer parameters */
    int *ipar;

    /* ptrs for input/output */
    double *u1_d,*u2_d;
    double *y1_d,*y2_d;

    char *u1_c,*u2_c;
    char *y1_c,*y2_c;

    short *u1_s,*u2_s;
    short *y1_s,*y2_s;

    int *u1_l,*u2_l;
    int *y1_l,*y2_l;

    unsigned char *u1_uc,*u2_uc;
    unsigned char *y1_uc,*y2_uc;

    unsigned short *u1_us,*u2_us;
    unsigned short *y1_us,*y2_us;

    unsigned int *u1_ul,*u2_ul;
    unsigned int *y1_ul,*y2_ul;

    /* variables for adder (64 bits) */
    unsigned long long A; /* first input / output */
    unsigned long long B; /* second input */
    unsigned long long C;
    unsigned long long D; /* carry output */

    /* get size */
    nu=GetInPortRows(block,1);
    mu=GetInPortCols(block,1);

    /* get in/out type */
    intyp=GetInType(block,1);
    outtyp=GetOutType(block,1);

    /* get ipar */
    ipar=GetIparPtrs(block);

    /* set carry bit */
    C = 1 << ipar[0];

    switch(intyp) {
      /* complex : real part only */
      case 11  :

      /* double */
      case 10  : u1_d = GetRealInPortPtrs(block,1);
                 u2_d = GetRealInPortPtrs(block,2);

                 switch(outtyp) {
                   /* double */
                   case 10  :
                             y1_d = GetRealOutPortPtrs(block,1);
                             y2_d = GetRealOutPortPtrs(block,2);

                             for(i=0;i<nu*mu;i++) {
                               A = (unsigned long long) u1_d[i];
                               B = (unsigned long long) u2_d[i];

                               ADDER

                               y1_d[i] = (double) D;
                               y2_d[i] = (double) A;
                             }
                             break;

                   /* int32 */
                   case 84  :
                             y1_l = Getint32OutPortPtrs(block,1);
                             y2_l = Getint32OutPortPtrs(block,2);

                             for(i=0;i<nu*mu;i++) {
                               A = (unsigned long long) u1_d[i];
                               B = (unsigned long long) u2_d[i];

                               ADDER

                               y1_l[i] = (int) D;
                               y2_l[i] = (int) A;
                             }
                             break;

                   /* int16 */
                   case 82  :
                             y1_s = Getint16OutPortPtrs(block,1);
                             y2_s = Getint16OutPortPtrs(block,2);

                             for(i=0;i<nu*mu;i++) {
                               A = (unsigned long long) u1_d[i];
                               B = (unsigned long long) u2_d[i];

                               ADDER

                               y1_s[i] = (short) D;
                               y2_s[i] = (short) A;
                             }
                             break;

                   /* int8 */
                   case 81  :
                             y1_c = Getint8OutPortPtrs(block,1);
                             y2_c = Getint8OutPortPtrs(block,2);

                             for(i=0;i<nu*mu;i++) {
                               A = (unsigned long long) u1_d[i];
                               B = (unsigned long long) u2_d[i];

                               ADDER

                               y1_c[i] = (char) D;
                               y2_c[i] = (char) A;
                             }
                             break;

                   /* uint32 */
                   case 814 :
                             y1_ul = Getuint32OutPortPtrs(block,1);
                             y2_ul = Getuint32OutPortPtrs(block,2);

                             for(i=0;i<nu*mu;i++) {
                               A = (unsigned long long) u1_d[i];
                               B = (unsigned long long) u2_d[i];

                               ADDER

                               y1_ul[i] = (unsigned int) D;
                               y2_ul[i] = (unsigned int) A;
                             }
                             break;

                   /* uint16 */
                   case 812 :
                             y1_us = Getuint16OutPortPtrs(block,1);
                             y2_us = Getuint16OutPortPtrs(block,2);

                             for(i=0;i<nu*mu;i++) {
                               A = (unsigned long long) u1_d[i];
                               B = (unsigned long long) u2_d[i];

                               ADDER

                               y1_us[i] = (unsigned short) D;
                               y2_us[i] = (unsigned short) A;
                             }
                             break;

                   /* uint8 */
                   case 811 :
                             y1_uc = Getuint8OutPortPtrs(block,1);
                             y2_uc = Getuint8OutPortPtrs(block,2);

                             for(i=0;i<nu*mu;i++) {
                               A = (unsigned long long) u1_d[i];
                               B = (unsigned long long) u2_d[i];

                               ADDER

                               y1_uc[i] = (unsigned char) D;
                               y2_uc[i] = (unsigned char) A;
                             }
                             break;
                 }
                 break;

      /* int32 */
      case 84  : u1_l = Getint32InPortPtrs(block,1);
                 u2_l = Getint32InPortPtrs(block,2);

                 switch(outtyp) {
                   /* double */
                   case 10  :
                             y1_d = GetRealOutPortPtrs(block,1);
                             y2_d = GetRealOutPortPtrs(block,2);

                             for(i=0;i<nu*mu;i++) {
                               A = (unsigned long long) u1_l[i];
                               B = (unsigned long long) u2_l[i];

                               ADDER

                               y1_d[i] = (double) D;
                               y2_d[i] = (double) A;
                             }
                             break;

                   /* int32 */
                   case 84  :
                             y1_l = Getint32OutPortPtrs(block,1);
                             y2_l = Getint32OutPortPtrs(block,2);

                             for(i=0;i<nu*mu;i++) {
                               A = (unsigned long long) u1_l[i];
                               B = (unsigned long long) u2_l[i];

                               ADDER

                               y1_l[i] = (int) D;
                               y2_l[i] = (int) A;
                             }
                             break;

                   /* int16 */
                   case 82  :
                             y1_s = Getint16OutPortPtrs(block,1);
                             y2_s = Getint16OutPortPtrs(block,2);

                             for(i=0;i<nu*mu;i++) {
                               A = (unsigned long long) u1_l[i];
                               B = (unsigned long long) u2_l[i];

                               ADDER

                               y1_s[i] = (short) D;
                               y2_s[i] = (short) A;
                             }
                             break;

                   /* int8 */
                   case 81  :
                             y1_c = Getint8OutPortPtrs(block,1);
                             y2_c = Getint8OutPortPtrs(block,2);

                             for(i=0;i<nu*mu;i++) {
                               A = (unsigned long long) u1_l[i];
                               B = (unsigned long long) u2_l[i];

                               ADDER

                               y1_c[i] = (char) D;
                               y2_c[i] = (char) A;
                             }
                             break;

                   /* uint32 */
                   case 814 :
                             y1_ul = Getuint32OutPortPtrs(block,1);
                             y2_ul = Getuint32OutPortPtrs(block,2);

                             for(i=0;i<nu*mu;i++) {
                               A = (unsigned long long) u1_l[i];
                               B = (unsigned long long) u2_l[i];

                               ADDER

                               y1_ul[i] = (unsigned int) D;
                               y2_ul[i] = (unsigned int) A;
                             }
                             break;

                   /* uint16 */
                   case 812 :
                             y1_us = Getuint16OutPortPtrs(block,1);
                             y2_us = Getuint16OutPortPtrs(block,2);

                             for(i=0;i<nu*mu;i++) {
                               A = (unsigned long long) u1_l[i];
                               B = (unsigned long long) u2_l[i];

                               ADDER

                               y1_us[i] = (unsigned short) D;
                               y2_us[i] = (unsigned short) A;
                             }
                             break;

                   /* uint8 */
                   case 811 :
                             y1_uc = Getuint8OutPortPtrs(block,1);
                             y2_uc = Getuint8OutPortPtrs(block,2);

                             for(i=0;i<nu*mu;i++) {
                               A = (unsigned long long) u1_l[i];
                               B = (unsigned long long) u2_l[i];

                               ADDER

                               y1_uc[i] = (unsigned char) D;
                               y2_uc[i] = (unsigned char) A;
                             }
                             break;
                 }
                 break;

      /* int16 */
      case 82  : u1_s = Getint16InPortPtrs(block,1);
                 u2_s = Getint16InPortPtrs(block,2);

                 switch(outtyp) {
                   /* double */
                   case 10  :
                             y1_d = GetRealOutPortPtrs(block,1);
                             y2_d = GetRealOutPortPtrs(block,2);

                             for(i=0;i<nu*mu;i++) {
                               A = (unsigned long long) u1_s[i];
                               B = (unsigned long long) u2_s[i];

                               ADDER

                               y1_d[i] = (double) D;
                               y2_d[i] = (double) A;
                             }
                             break;

                   /* int32 */
                   case 84  :
                             y1_l = Getint32OutPortPtrs(block,1);
                             y2_l = Getint32OutPortPtrs(block,2);

                             for(i=0;i<nu*mu;i++) {
                               A = (unsigned long long) u1_s[i];
                               B = (unsigned long long) u2_s[i];

                               ADDER

                               y1_l[i] = (int) D;
                               y2_l[i] = (int) A;
                             }
                             break;

                   /* int16 */
                   case 82  :
                             y1_s = Getint16OutPortPtrs(block,1);
                             y2_s = Getint16OutPortPtrs(block,2);

                             for(i=0;i<nu*mu;i++) {
                               A = (unsigned long long) u1_s[i];
                               B = (unsigned long long) u2_s[i];

                               ADDER

                               y1_s[i] = (short) D;
                               y2_s[i] = (short) A;
                             }
                             break;

                   /* int8 */
                   case 81  :
                             y1_c = Getint8OutPortPtrs(block,1);
                             y2_c = Getint8OutPortPtrs(block,2);

                             for(i=0;i<nu*mu;i++) {
                               A = (unsigned long long) u1_s[i];
                               B = (unsigned long long) u2_s[i];

                               ADDER

                               y1_c[i] = (char) D;
                               y2_c[i] = (char) A;
                             }
                             break;

                   /* uint32 */
                   case 814 :
                             y1_ul = Getuint32OutPortPtrs(block,1);
                             y2_ul = Getuint32OutPortPtrs(block,2);

                             for(i=0;i<nu*mu;i++) {
                               A = (unsigned long long) u1_s[i];
                               B = (unsigned long long) u2_s[i];

                               ADDER

                               y1_ul[i] = (unsigned int) D;
                               y2_ul[i] = (unsigned int) A;
                             }
                             break;

                   /* uint16 */
                   case 812 :
                             y1_us = Getuint16OutPortPtrs(block,1);
                             y2_us = Getuint16OutPortPtrs(block,2);

                             for(i=0;i<nu*mu;i++) {
                               A = (unsigned long long) u1_s[i];
                               B = (unsigned long long) u2_s[i];

                               ADDER

                               y1_us[i] = (unsigned short) D;
                               y2_us[i] = (unsigned short) A;
                             }
                             break;

                   /* uint8 */
                   case 811 :
                             y1_uc = Getuint8OutPortPtrs(block,1);
                             y2_uc = Getuint8OutPortPtrs(block,2);

                             for(i=0;i<nu*mu;i++) {
                               A = (unsigned long long) u1_s[i];
                               B = (unsigned long long) u2_s[i];

                               ADDER

                               y1_uc[i] = (unsigned char) D;
                               y2_uc[i] = (unsigned char) A;
                             }
                             break;
                 }
                 break;

      /* int8 */
      case 81  : u1_c = Getint8InPortPtrs(block,1);
                 u2_c = Getint8InPortPtrs(block,2);

                 switch(outtyp) {
                   /* double */
                   case 10  :
                             y1_d = GetRealOutPortPtrs(block,1);
                             y2_d = GetRealOutPortPtrs(block,2);

                             for(i=0;i<nu*mu;i++) {
                               A = (unsigned long long) u1_c[i];
                               B = (unsigned long long) u2_c[i];

                               ADDER

                               y1_d[i] = (double) D;
                               y2_d[i] = (double) A;
                             }
                             break;

                   /* int32 */
                   case 84  :
                             y1_l = Getint32OutPortPtrs(block,1);
                             y2_l = Getint32OutPortPtrs(block,2);

                             for(i=0;i<nu*mu;i++) {
                               A = (unsigned long long) u1_c[i];
                               B = (unsigned long long) u2_c[i];

                               ADDER

                               y1_l[i] = (int) D;
                               y2_l[i] = (int) A;
                             }
                             break;

                   /* int16 */
                   case 82  :
                             y1_s = Getint16OutPortPtrs(block,1);
                             y2_s = Getint16OutPortPtrs(block,2);

                             for(i=0;i<nu*mu;i++) {
                               A = (unsigned long long) u1_c[i];
                               B = (unsigned long long) u2_c[i];

                               ADDER

                               y1_s[i] = (short) D;
                               y2_s[i] = (short) A;
                             }
                             break;

                   /* int8 */
                   case 81  :
                             y1_c = Getint8OutPortPtrs(block,1);
                             y2_c = Getint8OutPortPtrs(block,2);

                             for(i=0;i<nu*mu;i++) {
                               A = (unsigned long long) u1_c[i];
                               B = (unsigned long long) u2_c[i];

                               ADDER

                               y1_c[i] = (char) D;
                               y2_c[i] = (char) A;
                             }
                             break;

                   /* uint32 */
                   case 814 :
                             y1_ul = Getuint32OutPortPtrs(block,1);
                             y2_ul = Getuint32OutPortPtrs(block,2);

                             for(i=0;i<nu*mu;i++) {
                               A = (unsigned long long) u1_c[i];
                               B = (unsigned long long) u2_c[i];

                               ADDER

                               y1_ul[i] = (unsigned int) D;
                               y2_ul[i] = (unsigned int) A;
                             }
                             break;

                   /* uint16 */
                   case 812 :
                             y1_us = Getuint16OutPortPtrs(block,1);
                             y2_us = Getuint16OutPortPtrs(block,2);

                             for(i=0;i<nu*mu;i++) {
                               A = (unsigned long long) u1_c[i];
                               B = (unsigned long long) u2_c[i];

                               ADDER

                               y1_us[i] = (unsigned short) D;
                               y2_us[i] = (unsigned short) A;
                             }
                             break;

                   /* uint8 */
                   case 811 :
                             y1_uc = Getuint8OutPortPtrs(block,1);
                             y2_uc = Getuint8OutPortPtrs(block,2);

                             for(i=0;i<nu*mu;i++) {
                               A = (unsigned long long) u1_c[i];
                               B = (unsigned long long) u2_c[i];

                               ADDER

                               y1_uc[i] = (unsigned char) D;
                               y2_uc[i] = (unsigned char) A;
                             }
                             break;
                 }
                 break;

      /* uint32 */
      case 814 : u1_ul = Getuint32InPortPtrs(block,1);
                 u2_ul = Getuint32InPortPtrs(block,2);

                 switch(outtyp) {
                   /* double */
                   case 10  :
                             y1_d = GetRealOutPortPtrs(block,1);
                             y2_d = GetRealOutPortPtrs(block,2);

                             for(i=0;i<nu*mu;i++) {
                               A = (unsigned long long) u1_ul[i];
                               B = (unsigned long long) u2_ul[i];

                               ADDER

                               y1_d[i] = (double) D;
                               y2_d[i] = (double) A;
                             }
                             break;

                   /* int32 */
                   case 84  :
                             y1_l = Getint32OutPortPtrs(block,1);
                             y2_l = Getint32OutPortPtrs(block,2);

                             for(i=0;i<nu*mu;i++) {
                               A = (unsigned long long) u1_ul[i];
                               B = (unsigned long long) u2_ul[i];

                               ADDER

                               y1_l[i] = (int) D;
                               y2_l[i] = (int) A;
                             }
                             break;

                   /* int16 */
                   case 82  :
                             y1_s = Getint16OutPortPtrs(block,1);
                             y2_s = Getint16OutPortPtrs(block,2);

                             for(i=0;i<nu*mu;i++) {
                               A = (unsigned long long) u1_ul[i];
                               B = (unsigned long long) u2_ul[i];

                               ADDER

                               y1_s[i] = (short) D;
                               y2_s[i] = (short) A;
                             }
                             break;

                   /* int8 */
                   case 81  :
                             y1_c = Getint8OutPortPtrs(block,1);
                             y2_c = Getint8OutPortPtrs(block,2);

                             for(i=0;i<nu*mu;i++) {
                               A = (unsigned long long) u1_ul[i];
                               B = (unsigned long long) u2_ul[i];

                               ADDER

                               y1_c[i] = (char) D;
                               y2_c[i] = (char) A;
                             }
                             break;

                   /* uint32 */
                   case 814 :
                             y1_ul = Getuint32OutPortPtrs(block,1);
                             y2_ul = Getuint32OutPortPtrs(block,2);

                             for(i=0;i<nu*mu;i++) {
                               A = (unsigned long long) u1_ul[i];
                               B = (unsigned long long) u2_ul[i];

                               ADDER

                               y1_ul[i] = (unsigned int) D;
                               y2_ul[i] = (unsigned int) A;
                             }
                             break;

                   /* uint16 */
                   case 812 :
                             y1_us = Getuint16OutPortPtrs(block,1);
                             y2_us = Getuint16OutPortPtrs(block,2);

                             for(i=0;i<nu*mu;i++) {
                               A = (unsigned long long) u1_ul[i];
                               B = (unsigned long long) u2_ul[i];

                               ADDER

                               y1_us[i] = (unsigned short) D;
                               y2_us[i] = (unsigned short) A;
                             }
                             break;

                   /* uint8 */
                   case 811 :
                             y1_uc = Getuint8OutPortPtrs(block,1);
                             y2_uc = Getuint8OutPortPtrs(block,2);

                             for(i=0;i<nu*mu;i++) {
                               A = (unsigned long long) u1_ul[i];
                               B = (unsigned long long) u2_ul[i];

                               ADDER

                               y1_uc[i] = (unsigned char) D;
                               y2_uc[i] = (unsigned char) A;
                             }
                             break;
                 }
                 break;

      /* uint16 */
      case 812 : u1_us = Getuint16InPortPtrs(block,1);
                 u2_us = Getuint16InPortPtrs(block,2);

                 switch(outtyp) {
                   /* double */
                   case 10  :
                             y1_d = GetRealOutPortPtrs(block,1);
                             y2_d = GetRealOutPortPtrs(block,2);

                             for(i=0;i<nu*mu;i++) {
                               A = (unsigned long long) u1_us[i];
                               B = (unsigned long long) u2_us[i];

                               ADDER

                               y1_d[i] = (double) D;
                               y2_d[i] = (double) A;
                             }
                             break;

                   /* int32 */
                   case 84  :
                             y1_l = Getint32OutPortPtrs(block,1);
                             y2_l = Getint32OutPortPtrs(block,2);

                             for(i=0;i<nu*mu;i++) {
                               A = (unsigned long long) u1_us[i];
                               B = (unsigned long long) u2_us[i];

                               ADDER

                               y1_l[i] = (int) D;
                               y2_l[i] = (int) A;
                             }
                             break;

                   /* int16 */
                   case 82  :
                             y1_s = Getint16OutPortPtrs(block,1);
                             y2_s = Getint16OutPortPtrs(block,2);

                             for(i=0;i<nu*mu;i++) {
                               A = (unsigned long long) u1_us[i];
                               B = (unsigned long long) u2_us[i];

                               ADDER

                               y1_s[i] = (short) D;
                               y2_s[i] = (short) A;
                             }
                             break;

                   /* int8 */
                   case 81  :
                             y1_c = Getint8OutPortPtrs(block,1);
                             y2_c = Getint8OutPortPtrs(block,2);

                             for(i=0;i<nu*mu;i++) {
                               A = (unsigned long long) u1_us[i];
                               B = (unsigned long long) u2_us[i];

                               ADDER

                               y1_c[i] = (char) D;
                               y2_c[i] = (char) A;
                             }
                             break;

                   /* uint32 */
                   case 814 :
                             y1_ul = Getuint32OutPortPtrs(block,1);
                             y2_ul = Getuint32OutPortPtrs(block,2);

                             for(i=0;i<nu*mu;i++) {
                               A = (unsigned long long) u1_us[i];
                               B = (unsigned long long) u2_us[i];

                               ADDER

                               y1_ul[i] = (unsigned int) D;
                               y2_ul[i] = (unsigned int) A;
                             }
                             break;

                   /* uint16 */
                   case 812 :
                             y1_us = Getuint16OutPortPtrs(block,1);
                             y2_us = Getuint16OutPortPtrs(block,2);

                             for(i=0;i<nu*mu;i++) {
                               A = (unsigned long long) u1_us[i];
                               B = (unsigned long long) u2_us[i];

                               ADDER

                               y1_us[i] = (unsigned short) D;
                               y2_us[i] = (unsigned short) A;
                             }
                             break;

                   /* uint8 */
                   case 811 :
                             y1_uc = Getuint8OutPortPtrs(block,1);
                             y2_uc = Getuint8OutPortPtrs(block,2);

                             for(i=0;i<nu*mu;i++) {
                               A = (unsigned long long) u1_us[i];
                               B = (unsigned long long) u2_us[i];

                               ADDER

                               y1_uc[i] = (unsigned char) D;
                               y2_uc[i] = (unsigned char) A;
                             }
                             break;
                 }
                 break;

      /* uint8 */
      case 811 : u1_uc = Getuint8InPortPtrs(block,1);
                 u2_uc = Getuint8InPortPtrs(block,2);

                 switch(outtyp) {
                   /* double */
                   case 10  :
                             y1_d = GetRealOutPortPtrs(block,1);
                             y2_d = GetRealOutPortPtrs(block,2);

                             for(i=0;i<nu*mu;i++) {
                               A = (unsigned long long) u1_uc[i];
                               B = (unsigned long long) u2_uc[i];

                               ADDER

                               y1_d[i] = (double) D;
                               y2_d[i] = (double) A;
                             }
                             break;

                   /* int32 */
                   case 84  :
                             y1_l = Getint32OutPortPtrs(block,1);
                             y2_l = Getint32OutPortPtrs(block,2);

                             for(i=0;i<nu*mu;i++) {
                               A = (unsigned long long) u1_uc[i];
                               B = (unsigned long long) u2_uc[i];

                               ADDER

                               y1_l[i] = (int) D;
                               y2_l[i] = (int) A;
                             }
                             break;

                   /* int16 */
                   case 82  :
                             y1_s = Getint16OutPortPtrs(block,1);
                             y2_s = Getint16OutPortPtrs(block,2);

                             for(i=0;i<nu*mu;i++) {
                               A = (unsigned long long) u1_uc[i];
                               B = (unsigned long long) u2_uc[i];

                               ADDER

                               y1_s[i] = (short) D;
                               y2_s[i] = (short) A;
                             }
                             break;

                   /* int8 */
                   case 81  :
                             y1_c = Getint8OutPortPtrs(block,1);
                             y2_c = Getint8OutPortPtrs(block,2);

                             for(i=0;i<nu*mu;i++) {
                               A = (unsigned long long) u1_uc[i];
                               B = (unsigned long long) u2_uc[i];

                               ADDER

                               y1_c[i] = (char) D;
                               y2_c[i] = (char) A;
                             }
                             break;

                   /* uint32 */
                   case 814 :
                             y1_ul = Getuint32OutPortPtrs(block,1);
                             y2_ul = Getuint32OutPortPtrs(block,2);

                             for(i=0;i<nu*mu;i++) {
                               A = (unsigned long long) u1_uc[i];
                               B = (unsigned long long) u2_uc[i];

                               ADDER

                               y1_ul[i] = (unsigned int) D;
                               y2_ul[i] = (unsigned int) A;
                             }
                             break;

                   /* uint16 */
                   case 812 :
                             y1_us = Getuint16OutPortPtrs(block,1);
                             y2_us = Getuint16OutPortPtrs(block,2);

                             for(i=0;i<nu*mu;i++) {
                               A = (unsigned long long) u1_uc[i];
                               B = (unsigned long long) u2_uc[i];

                               ADDER

                               y1_us[i] = (unsigned short) D;
                               y2_us[i] = (unsigned short) A;
                             }
                             break;

                   /* uint8 */
                   case 811 :
                             y1_uc = Getuint8OutPortPtrs(block,1);
                             y2_uc = Getuint8OutPortPtrs(block,2);

                             for(i=0;i<nu*mu;i++) {
                               A = (unsigned long long) u1_uc[i];
                               B = (unsigned long long) u2_uc[i];

                               ADDER

                               y1_uc[i] = (unsigned char) D;
                               y2_uc[i] = (unsigned char) A;
                             }
                             break;
                 }
                 break;
    }
  }
}