summation_z
#include "scicos_block4.h"
#include "../machine.h"
void summation_z(scicos_block *block,int flag)
{
double *ur;
double *ui;
int *ipar;
int nu,mu;
double *yr;
double *yi;
int j,k;
yr=GetRealOutPortPtrs(block,1);
yi=GetImagOutPortPtrs(block,1);
mu=GetInPortRows(block,1);
nu=GetInPortCols(block,1);
if(flag==1)
{
if (GetNin(block)==1)
{
ur=GetRealInPortPtrs(block,1);
ui=GetImagInPortPtrs(block,1);
yr[0]=0.0;
yi[0]=0.0;
for (j=0;j<mu*nu;j++)
{
yr[0]=yr[0]+ur[j];
yi[0]=yi[0]+ui[j];
}
}
else
{
for (j=0;j<mu*nu;j++)
{
yr[j]=0.0;
yi[j]=0.0;
for (k=1;k<GetNin(block)+1;k++)
{
ur=GetRealInPortPtrs(block,k);
ui=GetImagInPortPtrs(block,k);
ipar=GetIparPtrs(block);
if(ipar[k-1]>0)
{
yr[j]=yr[j]+ur[j];
yi[j]=yi[j]+ui[j];
}
else
{
yr[j]=yr[j]-ur[j];
yi[j]=yi[j]-ui[j];
}
}
}
}
}
}