Computational routine
eng
bin2dec
/* 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.
*/
/* bin2dec Scicos Bit vector to integer
* vector block
*
* Type 4 simulation function ver 1.0 - scicoslab4.3
* 15 Février 2009 - INRIA - Author : A.Layec
*/
/* REVISION HISTORY :
* $Log$
*/
#include <scicos/scicos_block4.h>
#include "modnum_lib.h"
/* work struct for that block */
typedef struct {
SCSINT32_COP *u_i;
SCSINT32_COP *y_i;
} wrk_struct ;
void bin2dec(scicos_block *block,int flag)
{
SCSREAL_COP *u_d; /* real */
SCSREAL_COP *y_d;
SCSREAL_COP *u_di; /* imag */
SCSREAL_COP *y_di;
SCSINT32_COP *u_i; /* int32 */
SCSINT32_COP *y_i;
SCSINT16_COP *u_s; /* int16 */
SCSINT16_COP *y_s;
SCSINT8_COP *u_c; /* int8 */
SCSINT8_COP *y_c;
SCSUINT32_COP *u_ui; /* uint32 */
SCSUINT32_COP *y_ui;
SCSUINT16_COP *u_us; /* uint16 */
SCSUINT16_COP *y_us;
SCSUINT8_COP *u_uc; /* uint8 */
SCSUINT8_COP *y_uc;
/* the struct ptr of that block */
wrk_struct *ptr;
int N;
int msb;
int insz;
int outsz;
int sig;
int intyp;
int outtyp;
int *ipar;
int i;
insz = GetInPortRows(block,1);
intyp = GetInType(block,1);
outsz = GetOutPortRows(block,1);
outtyp = GetOutType(block,1);
ipar = GetIparPtrs(block);
N = ipar[0];
msb = ipar[1];
sig = ipar[2];
/* init */
if (flag == 4) {
if((*(block->work)=(wrk_struct*) scicos_malloc(sizeof(wrk_struct)))==NULL) {
set_block_error(-16);
return;
}
ptr = *(block->work);
ptr->u_i = NULL;
ptr->y_i = NULL;
if ((intyp==SCSINT16_N) || \
(intyp==SCSINT8_N) || \
(intyp==SCSUINT16_N) || \
(intyp==SCSUINT8_N) || \
(intyp==SCSUINT32_N)) {
if((ptr->u_i=(SCSINT32_COP *) \
scicos_malloc(insz*sizeof(SCSINT32_COP)))==NULL) {
set_block_error(-16);
scicos_free(ptr);
*(block->work) = NULL;
return;
}
}
if ((outtyp==SCSINT16_N) || \
(outtyp==SCSINT8_N) || \
(outtyp==SCSUINT16_N) || \
(outtyp==SCSUINT8_N) || \
(outtyp==SCSUINT32_N)) {
if((ptr->y_i=(SCSINT32_COP *) \
scicos_malloc(outsz*sizeof(SCSINT32_COP)))==NULL) {
set_block_error(-16);
scicos_free(ptr);
*(block->work) = NULL;
return;
}
}
}
else if(flag == 1) {
ptr = *(block->work);
if ((intyp==SCSINT16_N) || \
(intyp==SCSINT8_N) || \
(intyp==SCSUINT16_N) || \
(intyp==SCSUINT8_N) || \
(intyp==SCSUINT32_N)) {
u_i = ptr->u_i;
}
if ((outtyp==SCSINT16_N) || \
(outtyp==SCSINT8_N) || \
(outtyp==SCSUINT16_N) || \
(outtyp==SCSUINT8_N) || \
(outtyp==SCSUINT32_N)) {
y_i = ptr->y_i;
}
switch (intyp)
{
case SCSREAL_N : u_d = GetRealInPortPtrs(block,1);
if (outtyp==SCSREAL_N) {
y_d = GetRealOutPortPtrs(block,1);
bin2decdd_c(&insz,&N,&msb,&sig,u_d,y_d);
}
else if (outtyp==SCSCOMPLEX_N) {
y_d = GetRealOutPortPtrs(block,1);
bin2decdd_c(&insz,&N,&msb,&sig,u_d,y_d);
}
else if (outtyp==SCSINT32_N) {
y_i = Getint32OutPortPtrs(block,1);
bin2decdi_c(&insz,&N,&msb,&sig,u_d,y_i);
}
else if (outtyp==SCSINT16_N) {
y_s = Getint16OutPortPtrs(block,1);
for(i=0;i<outsz;i++) {
y_i[i] = (SCSINT32_COP) y_s[i];
}
bin2decdi_c(&insz,&N,&msb,&sig,u_d,y_i);
for(i=0;i<outsz;i++) {
y_s[i] = (SCSINT16_COP) y_i[i];
}
}
else if (outtyp==SCSINT8_N) {
y_c = Getint8OutPortPtrs(block,1);
for(i=0;i<outsz;i++) {
y_i[i] = (SCSINT32_COP) y_c[i];
}
bin2decdi_c(&insz,&N,&msb,&sig,u_d,y_i);
for(i=0;i<outsz;i++) {
y_c[i] = (SCSINT8_COP) y_i[i];
}
}
else if (outtyp==SCSUINT32_N) {
y_ui = Getuint32OutPortPtrs(block,1);
for(i=0;i<outsz;i++) {
y_i[i] = (SCSINT32_COP) y_ui[i];
}
bin2decdi_c(&insz,&N,&msb,&sig,u_d,y_i);
for(i=0;i<outsz;i++) {
y_ui[i] = (SCSUINT32_COP) y_i[i];
}
}
else if (outtyp==SCSUINT16_N) {
y_us = Getuint16OutPortPtrs(block,1);
for(i=0;i<outsz;i++) {
y_i[i] = (SCSINT32_COP) y_us[i];
}
bin2decdi_c(&insz,&N,&msb,&sig,u_d,y_i);
for(i=0;i<outsz;i++) {
y_us[i] = (SCSUINT16_COP) y_i[i];
}
}
else if (outtyp==SCSUINT8_N) {
y_uc = Getuint8OutPortPtrs(block,1);
for(i=0;i<outsz;i++) {
y_i[i] = (SCSINT32_COP) y_uc[i];
}
bin2decdi_c(&insz,&N,&msb,&sig,u_d,y_i);
for(i=0;i<outsz;i++) {
y_uc[i] = (SCSUINT8_COP) y_i[i];
}
}
break;
case SCSCOMPLEX_N : u_d = GetRealInPortPtrs(block,1);
if (outtyp==SCSREAL_N) {
y_d = GetRealOutPortPtrs(block,1);
bin2decdd_c(&insz,&N,&msb,&sig,u_d,y_d);
}
else if (outtyp==SCSCOMPLEX_N) {
y_d = GetRealOutPortPtrs(block,1);
bin2decdd_c(&insz,&N,&msb,&sig,u_d,y_d);
u_di = GetImagInPortPtrs(block,1);
y_di = GetImagOutPortPtrs(block,1);
bin2decdd_c(&insz,&N,&msb,&sig,u_di,y_di);
}
else if (outtyp==SCSINT32_N) {
y_i = Getint32OutPortPtrs(block,1);
bin2decdi_c(&insz,&N,&msb,&sig,u_d,y_i);
}
else if (outtyp==SCSINT16_N) {
y_s = Getint16OutPortPtrs(block,1);
for(i=0;i<outsz;i++) {
y_i[i] = (SCSINT32_COP) y_s[i];
}
bin2decdi_c(&insz,&N,&msb,&sig,u_d,y_i);
for(i=0;i<outsz;i++) {
y_s[i] = (SCSINT16_COP) y_i[i];
}
}
else if (outtyp==SCSINT8_N) {
y_c = Getint8OutPortPtrs(block,1);
for(i=0;i<outsz;i++) {
y_i[i] = (SCSINT32_COP) y_c[i];
}
bin2decdi_c(&insz,&N,&msb,&sig,u_d,y_i);
for(i=0;i<outsz;i++) {
y_c[i] = (SCSINT8_COP) y_i[i];
}
}
else if (outtyp==SCSUINT32_N) {
y_ui = Getuint32OutPortPtrs(block,1);
for(i=0;i<outsz;i++) {
y_i[i] = (SCSINT32_COP) y_ui[i];
}
bin2decdi_c(&insz,&N,&msb,&sig,u_d,y_i);
for(i=0;i<outsz;i++) {
y_ui[i] = (SCSUINT32_COP) y_i[i];
}
}
else if (outtyp==SCSUINT16_N) {
y_us = Getuint16OutPortPtrs(block,1);
for(i=0;i<outsz;i++) {
y_i[i] = (SCSINT32_COP) y_us[i];
}
bin2decdi_c(&insz,&N,&msb,&sig,u_d,y_i);
for(i=0;i<outsz;i++) {
y_us[i] = (SCSUINT16_COP) y_i[i];
}
}
else if (outtyp==SCSUINT8_N) {
y_uc = Getuint8OutPortPtrs(block,1);
for(i=0;i<outsz;i++) {
y_i[i] = (SCSINT32_COP) y_uc[i];
}
bin2decdi_c(&insz,&N,&msb,&sig,u_d,y_i);
for(i=0;i<outsz;i++) {
y_uc[i] = (SCSUINT8_COP) y_i[i];
}
}
break;
case SCSINT32_N : u_i = Getint32InPortPtrs(block,1);
if (outtyp==SCSREAL_N) {
y_d = GetRealOutPortPtrs(block,1);
bin2decid_c(&insz,&N,&msb,&sig,u_i,y_d);
}
else if (outtyp==SCSCOMPLEX_N) {
y_d = GetRealOutPortPtrs(block,1);
bin2decid_c(&insz,&N,&msb,&sig,u_i,y_d);
}
else if (outtyp==SCSINT32_N) {
y_i = Getint32OutPortPtrs(block,1);
bin2decii_c(&insz,&N,&msb,&sig,u_i,y_i);
}
else if (outtyp==SCSINT16_N) {
y_s = Getint16OutPortPtrs(block,1);
for(i=0;i<outsz;i++) {
y_i[i] = (SCSINT32_COP) y_s[i];
}
bin2decii_c(&insz,&N,&msb,&sig,u_i,y_i);
for(i=0;i<outsz;i++) {
y_s[i] = (SCSINT16_COP) y_i[i];
}
}
else if (outtyp==SCSINT8_N) {
y_c = Getint8OutPortPtrs(block,1);
for(i=0;i<outsz;i++) {
y_i[i] = (SCSINT32_COP) y_c[i];
}
bin2decii_c(&insz,&N,&msb,&sig,u_i,y_i);
for(i=0;i<outsz;i++) {
y_c[i] = (SCSINT8_COP) y_i[i];
}
}
else if (outtyp==SCSUINT32_N) {
y_ui = Getuint32OutPortPtrs(block,1);
for(i=0;i<outsz;i++) {
y_i[i] = (SCSINT32_COP) y_ui[i];
}
bin2decii_c(&insz,&N,&msb,&sig,u_i,y_i);
for(i=0;i<outsz;i++) {
y_ui[i] = (SCSUINT32_COP) y_i[i];
}
}
else if (outtyp==SCSUINT16_N) {
y_us = Getuint16OutPortPtrs(block,1);
for(i=0;i<outsz;i++) {
y_i[i] = (SCSINT32_COP) y_us[i];
}
bin2decii_c(&insz,&N,&msb,&sig,u_i,y_i);
for(i=0;i<outsz;i++) {
y_us[i] = (SCSUINT16_COP) y_i[i];
}
}
else if (outtyp==SCSUINT8_N) {
y_uc = Getuint8OutPortPtrs(block,1);
for(i=0;i<outsz;i++) {
y_i[i] = (SCSINT32_COP) y_uc[i];
}
bin2decii_c(&insz,&N,&msb,&sig,u_i,y_i);
for(i=0;i<outsz;i++) {
y_uc[i] = (SCSUINT8_COP) y_i[i];
}
}
break;
case SCSINT16_N : u_s = Getint16InPortPtrs(block,1);
for(i=0;i<insz;i++) {
u_i[i] = (SCSINT32_COP) u_s[i];
}
if (outtyp==SCSREAL_N) {
y_d = GetRealOutPortPtrs(block,1);
bin2decid_c(&insz,&N,&msb,&sig,u_i,y_d);
}
else if (outtyp==SCSCOMPLEX_N) {
y_d = GetRealOutPortPtrs(block,1);
bin2decid_c(&insz,&N,&msb,&sig,u_i,y_d);
}
else if (outtyp==SCSINT32_N) {
y_i = Getint32OutPortPtrs(block,1);
bin2decii_c(&insz,&N,&msb,&sig,u_i,y_i);
}
else if (outtyp==SCSINT16_N) {
y_s = Getint16OutPortPtrs(block,1);
for(i=0;i<outsz;i++) {
y_i[i] = (SCSINT32_COP) y_s[i];
}
bin2decii_c(&insz,&N,&msb,&sig,u_i,y_i);
for(i=0;i<outsz;i++) {
y_s[i] = (SCSINT16_COP) y_i[i];
}
}
else if (outtyp==SCSINT8_N) {
y_c = Getint8OutPortPtrs(block,1);
for(i=0;i<outsz;i++) {
y_i[i] = (SCSINT32_COP) y_c[i];
}
bin2decii_c(&insz,&N,&msb,&sig,u_i,y_i);
for(i=0;i<outsz;i++) {
y_c[i] = (SCSINT8_COP) y_i[i];
}
}
else if (outtyp==SCSUINT32_N) {
y_ui = Getuint32OutPortPtrs(block,1);
for(i=0;i<outsz;i++) {
y_i[i] = (SCSINT32_COP) y_ui[i];
}
bin2decii_c(&insz,&N,&msb,&sig,u_i,y_i);
for(i=0;i<outsz;i++) {
y_ui[i] = (SCSUINT32_COP) y_i[i];
}
}
else if (outtyp==SCSUINT16_N) {
y_us = Getuint16OutPortPtrs(block,1);
for(i=0;i<outsz;i++) {
y_i[i] = (SCSINT32_COP) y_us[i];
}
bin2decii_c(&insz,&N,&msb,&sig,u_i,y_i);
for(i=0;i<outsz;i++) {
y_us[i] = (SCSUINT16_COP) y_i[i];
}
}
else if (outtyp==SCSUINT8_N) {
y_uc = Getuint8OutPortPtrs(block,1);
for(i=0;i<outsz;i++) {
y_i[i] = (SCSINT32_COP) y_uc[i];
}
bin2decii_c(&insz,&N,&msb,&sig,u_i,y_i);
for(i=0;i<outsz;i++) {
y_uc[i] = (SCSUINT8_COP) y_i[i];
}
}
for(i=0;i<insz;i++) {
u_s[i] = (SCSINT16_COP) u_i[i];
}
break;
case SCSINT8_N : u_c = Getint8InPortPtrs(block,1);
for(i=0;i<insz;i++) {
u_i[i] = (SCSINT32_COP) u_c[i];
}
if (outtyp==SCSREAL_N) {
y_d = GetRealOutPortPtrs(block,1);
bin2decid_c(&insz,&N,&msb,&sig,u_i,y_d);
}
else if (outtyp==SCSCOMPLEX_N) {
y_d = GetRealOutPortPtrs(block,1);
bin2decid_c(&insz,&N,&msb,&sig,u_i,y_d);
}
else if (outtyp==SCSINT32_N) {
y_i = Getint32OutPortPtrs(block,1);
bin2decii_c(&insz,&N,&msb,&sig,u_i,y_i);
}
else if (outtyp==SCSINT16_N) {
y_s = Getint16OutPortPtrs(block,1);
for(i=0;i<outsz;i++) {
y_i[i] = (SCSINT32_COP) y_s[i];
}
bin2decii_c(&insz,&N,&msb,&sig,u_i,y_i);
for(i=0;i<outsz;i++) {
y_s[i] = (SCSINT16_COP) y_i[i];
}
}
else if (outtyp==SCSINT8_N) {
y_c = Getint8OutPortPtrs(block,1);
for(i=0;i<outsz;i++) {
y_i[i] = (SCSINT32_COP) y_c[i];
}
bin2decii_c(&insz,&N,&msb,&sig,u_i,y_i);
for(i=0;i<outsz;i++) {
y_c[i] = (SCSINT8_COP) y_i[i];
}
}
else if (outtyp==SCSUINT32_N) {
y_ui = Getuint32OutPortPtrs(block,1);
for(i=0;i<outsz;i++) {
y_i[i] = (SCSINT32_COP) y_ui[i];
}
bin2decii_c(&insz,&N,&msb,&sig,u_i,y_i);
for(i=0;i<outsz;i++) {
y_ui[i] = (SCSUINT32_COP) y_i[i];
}
}
else if (outtyp==SCSUINT16_N) {
y_us = Getuint16OutPortPtrs(block,1);
for(i=0;i<outsz;i++) {
y_i[i] = (SCSINT32_COP) y_us[i];
}
bin2decii_c(&insz,&N,&msb,&sig,u_i,y_i);
for(i=0;i<outsz;i++) {
y_us[i] = (SCSUINT16_COP) y_i[i];
}
}
else if (outtyp==SCSUINT8_N) {
y_uc = Getuint8OutPortPtrs(block,1);
for(i=0;i<outsz;i++) {
y_i[i] = (SCSINT32_COP) y_uc[i];
}
bin2decii_c(&insz,&N,&msb,&sig,u_i,y_i);
for(i=0;i<outsz;i++) {
y_uc[i] = (SCSUINT8_COP) y_i[i];
}
}
for(i=0;i<insz;i++) {
u_c[i] = (SCSINT8_COP) u_i[i];
}
break;
case SCSUINT32_N : u_ui = Getuint32InPortPtrs(block,1);
for(i=0;i<insz;i++) {
u_i[i] = (SCSINT32_COP) u_ui[i];
}
if (outtyp==SCSREAL_N) {
y_d = GetRealOutPortPtrs(block,1);
bin2decid_c(&insz,&N,&msb,&sig,u_i,y_d);
}
else if (outtyp==SCSCOMPLEX_N) {
y_d = GetRealOutPortPtrs(block,1);
bin2decid_c(&insz,&N,&msb,&sig,u_i,y_d);
}
else if (outtyp==SCSINT32_N) {
y_i = Getint32OutPortPtrs(block,1);
bin2decii_c(&insz,&N,&msb,&sig,u_i,y_i);
}
else if (outtyp==SCSINT16_N) {
y_s = Getint16OutPortPtrs(block,1);
for(i=0;i<outsz;i++) {
y_i[i] = (SCSINT32_COP) y_s[i];
}
bin2decii_c(&insz,&N,&msb,&sig,u_i,y_i);
for(i=0;i<outsz;i++) {
y_s[i] = (SCSINT16_COP) y_i[i];
}
}
else if (outtyp==SCSINT8_N) {
y_c = Getint8OutPortPtrs(block,1);
for(i=0;i<outsz;i++) {
y_i[i] = (SCSINT32_COP) y_c[i];
}
bin2decii_c(&insz,&N,&msb,&sig,u_i,y_i);
for(i=0;i<outsz;i++) {
y_c[i] = (SCSINT8_COP) y_i[i];
}
}
else if (outtyp==SCSUINT32_N) {
y_ui = Getuint32OutPortPtrs(block,1);
for(i=0;i<outsz;i++) {
y_i[i] = (SCSINT32_COP) y_ui[i];
}
bin2decii_c(&insz,&N,&msb,&sig,u_i,y_i);
for(i=0;i<outsz;i++) {
y_ui[i] = (SCSUINT32_COP) y_i[i];
}
}
else if (outtyp==SCSUINT16_N) {
y_us = Getuint16OutPortPtrs(block,1);
for(i=0;i<outsz;i++) {
y_i[i] = (SCSINT32_COP) y_us[i];
}
bin2decii_c(&insz,&N,&msb,&sig,u_i,y_i);
for(i=0;i<outsz;i++) {
y_us[i] = (SCSUINT16_COP) y_i[i];
}
}
else if (outtyp==SCSUINT8_N) {
y_uc = Getuint8OutPortPtrs(block,1);
for(i=0;i<outsz;i++) {
y_i[i] = (SCSINT32_COP) y_uc[i];
}
bin2decii_c(&insz,&N,&msb,&sig,u_i,y_i);
for(i=0;i<outsz;i++) {
y_uc[i] = (SCSUINT8_COP) y_i[i];
}
}
for(i=0;i<insz;i++) {
u_ui[i] = (SCSUINT32_COP) u_i[i];
}
break;
case SCSUINT16_N : u_us = Getuint16InPortPtrs(block,1);
for(i=0;i<insz;i++) {
u_i[i] = (SCSINT32_COP) u_us[i];
}
if (outtyp==SCSREAL_N) {
y_d = GetRealOutPortPtrs(block,1);
bin2decid_c(&insz,&N,&msb,&sig,u_i,y_d);
}
else if (outtyp==SCSCOMPLEX_N) {
y_d = GetRealOutPortPtrs(block,1);
bin2decid_c(&insz,&N,&msb,&sig,u_i,y_d);
}
else if (outtyp==SCSINT32_N) {
y_i = Getint32OutPortPtrs(block,1);
bin2decii_c(&insz,&N,&msb,&sig,u_i,y_i);
}
else if (outtyp==SCSINT16_N) {
y_s = Getint16OutPortPtrs(block,1);
for(i=0;i<outsz;i++) {
y_i[i] = (SCSINT32_COP) y_s[i];
}
bin2decii_c(&insz,&N,&msb,&sig,u_i,y_i);
for(i=0;i<outsz;i++) {
y_s[i] = (SCSINT16_COP) y_i[i];
}
}
else if (outtyp==SCSINT8_N) {
y_c = Getint8OutPortPtrs(block,1);
for(i=0;i<outsz;i++) {
y_i[i] = (SCSINT32_COP) y_c[i];
}
bin2decii_c(&insz,&N,&msb,&sig,u_i,y_i);
for(i=0;i<outsz;i++) {
y_c[i] = (SCSINT8_COP) y_i[i];
}
}
else if (outtyp==SCSUINT32_N) {
y_ui = Getuint32OutPortPtrs(block,1);
for(i=0;i<outsz;i++) {
y_i[i] = (SCSINT32_COP) y_ui[i];
}
bin2decii_c(&insz,&N,&msb,&sig,u_i,y_i);
for(i=0;i<outsz;i++) {
y_ui[i] = (SCSUINT32_COP) y_i[i];
}
}
else if (outtyp==SCSUINT16_N) {
y_us = Getuint16OutPortPtrs(block,1);
for(i=0;i<outsz;i++) {
y_i[i] = (SCSINT32_COP) y_us[i];
}
bin2decii_c(&insz,&N,&msb,&sig,u_i,y_i);
for(i=0;i<outsz;i++) {
y_us[i] = (SCSUINT16_COP) y_i[i];
}
}
else if (outtyp==SCSUINT8_N) {
y_uc = Getuint8OutPortPtrs(block,1);
for(i=0;i<outsz;i++) {
y_i[i] = (SCSINT32_COP) y_uc[i];
}
bin2decii_c(&insz,&N,&msb,&sig,u_i,y_i);
for(i=0;i<outsz;i++) {
y_uc[i] = (SCSUINT8_COP) y_i[i];
}
}
for(i=0;i<insz;i++) {
u_us[i] = (SCSUINT16_COP) u_i[i];
}
break;
case SCSUINT8_N : u_uc = Getuint8InPortPtrs(block,1);
for(i=0;i<insz;i++) {
u_i[i] = (SCSINT32_COP) u_uc[i];
}
if (outtyp==SCSREAL_N) {
y_d = GetRealOutPortPtrs(block,1);
bin2decid_c(&insz,&N,&msb,&sig,u_i,y_d);
}
else if (outtyp==SCSCOMPLEX_N) {
y_d = GetRealOutPortPtrs(block,1);
bin2decid_c(&insz,&N,&msb,&sig,u_i,y_d);
}
else if (outtyp==SCSINT32_N) {
y_i = Getint32OutPortPtrs(block,1);
bin2decii_c(&insz,&N,&msb,&sig,u_i,y_i);
}
else if (outtyp==SCSINT16_N) {
y_s = Getint16OutPortPtrs(block,1);
for(i=0;i<outsz;i++) {
y_i[i] = (SCSINT32_COP) y_s[i];
}
bin2decii_c(&insz,&N,&msb,&sig,u_i,y_i);
for(i=0;i<outsz;i++) {
y_s[i] = (SCSINT16_COP) y_i[i];
}
}
else if (outtyp==SCSINT8_N) {
y_c = Getint8OutPortPtrs(block,1);
for(i=0;i<outsz;i++) {
y_i[i] = (SCSINT32_COP) y_c[i];
}
bin2decii_c(&insz,&N,&msb,&sig,u_i,y_i);
for(i=0;i<outsz;i++) {
y_c[i] = (SCSINT8_COP) y_i[i];
}
}
else if (outtyp==SCSUINT32_N) {
y_ui = Getuint32OutPortPtrs(block,1);
for(i=0;i<outsz;i++) {
y_i[i] = (SCSINT32_COP) y_ui[i];
}
bin2decii_c(&insz,&N,&msb,&sig,u_i,y_i);
for(i=0;i<outsz;i++) {
y_ui[i] = (SCSUINT32_COP) y_i[i];
}
}
else if (outtyp==SCSUINT16_N) {
y_us = Getuint16OutPortPtrs(block,1);
for(i=0;i<outsz;i++) {
y_i[i] = (SCSINT32_COP) y_us[i];
}
bin2decii_c(&insz,&N,&msb,&sig,u_i,y_i);
for(i=0;i<outsz;i++) {
y_us[i] = (SCSUINT16_COP) y_i[i];
}
}
else if (outtyp==SCSUINT8_N) {
y_uc = Getuint8OutPortPtrs(block,1);
for(i=0;i<outsz;i++) {
y_i[i] = (SCSINT32_COP) y_uc[i];
}
bin2decii_c(&insz,&N,&msb,&sig,u_i,y_i);
for(i=0;i<outsz;i++) {
y_uc[i] = (SCSUINT8_COP) y_i[i];
}
}
for(i=0;i<insz;i++) {
u_uc[i] = (SCSUINT8_COP) u_i[i];
}
break;
}
}
else if (flag == 5) {
ptr = *(block->work);
scicos_free(ptr->u_i);
scicos_free(ptr->y_i);
scicos_free(ptr);
}
}