Computational routine
eng
summation
#include <math.h>
#include "scicos_block4.h"
void summation(scicos_block *block,int flag)
{
int j,k;
double *u;
int nu,mu;
double *y;
int *ipar;
y=GetRealOutPortPtrs(block,1);
nu=GetInPortRows(block,1);
mu=GetInPortCols(block,1);
ipar=GetIparPtrs(block);
if(flag==1){
if (GetNin(block)==1){
y[0]=0.0;
u=GetRealInPortPtrs(block,1);
for (j=0;j<nu*mu;j++) {
y[0]=y[0]+u[j];
}
}
else {
for (j=0;j<nu*mu;j++) {
y[j]=0.0;
for (k=0;k<GetNin(block);k++) {
u=GetRealInPortPtrs(block,k+1);
if(ipar[k]>0){
y[j]=y[j]+u[j];
}else{
y[j]=y[j]-u[j];
}
}
}
}
}
}