00001
00002 #include <math.h>
00003 #include <memory.h>
00004
00005 #include "scicos_block.h"
00006 #include "machine.h"
00007
00008 extern int C2F(dmmul)();
00009 extern int C2F(dmmul1)();
00010
00011
00012 void tcslti4(scicos_block *block,int flag)
00013 {
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 int un=1,lb,lc,ld;
00024 int nx=block->nx;
00025 double* x=block->x;
00026 double* xd=block->xd;
00027 double* rpar=block->rpar;
00028 double* y=block->outptr[0];
00029 double* u1=block->inptr[0];
00030 double* u2=block->inptr[1];
00031 int* outsz=block->outsz;
00032 int* insz=block->insz;
00033
00034 lb=nx*nx;
00035 lc=lb+nx*insz[0];
00036
00037 if (flag ==1 || flag ==6){
00038
00039 ld=lc+nx*outsz[0];
00040
00041 C2F(dmmul)(&rpar[lc],outsz,x,&nx,y,outsz,outsz,&nx,&un);
00042 C2F(dmmul1)(&rpar[ld],outsz,u1,&insz[0],y,outsz,outsz,&insz[0],&un);
00043
00044 }else if (flag == 2 && block->nevprt == 1){
00045
00046 memcpy(x,u2 ,nx*sizeof(double));
00047 }else if (flag ==0 && block->nevprt == 0){
00048
00049 C2F(dmmul)(&rpar[0],&nx,x,&nx,xd,&nx,&nx,&nx,&un);
00050 C2F(dmmul1)(&rpar[lb],&nx,u1,&insz[0],xd,&nx,&nx,&insz[0],&un);
00051 }
00052 }
00053