/* Modnumlib Scicos interfacing function * Copyright (C) 2009 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); } }