relationalop.c

Go to the documentation of this file.
00001 #include "scicos_block.h"
00002 #include <math.h>
00003 
00004 
00005 void relationalop(scicos_block *block,int flag)
00006 {
00007   int i;
00008   i=block->ipar[0];
00009   if(flag==1){
00010     if ((block->ng!=0)&(get_phase_simulation()==2))
00011       {
00012         block->outptr[0][0]=block->mode[0]-1.0;
00013       }
00014     else {
00015       switch (i)
00016         {
00017         case 0:
00018           if(block->inptr[0][0]==block->inptr[1][0]) {
00019             block->outptr[0][0]=1.0;
00020           }else{
00021             block->outptr[0][0]=0.0;
00022           }
00023           break;
00024           
00025         case 1:
00026           if(block->inptr[0][0]!=block->inptr[1][0]) {
00027             block->outptr[0][0]=1.0;
00028           }else{
00029             block->outptr[0][0]=0.0;
00030           }
00031           break;
00032         case 2:
00033           if(block->inptr[0][0]<block->inptr[1][0]) {
00034             block->outptr[0][0]=1.0;
00035           }else{
00036             block->outptr[0][0]=0.0;
00037           }
00038           break;    
00039         case 3:
00040           if(block->inptr[0][0]<=block->inptr[1][0]) {
00041             block->outptr[0][0]=1.0;
00042           }else{
00043             block->outptr[0][0]=0.0;
00044           }
00045           break;   
00046         case 4:
00047           if(block->inptr[0][0]>=block->inptr[1][0]) {
00048             block->outptr[0][0]=1.0;
00049           }else{
00050             block->outptr[0][0]=0.0;
00051           }
00052           break;   
00053         case 5:
00054           if(block->inptr[0][0]>block->inptr[1][0]) {
00055             block->outptr[0][0]=1.0;
00056           }else{
00057             block->outptr[0][0]=0.0;
00058           }
00059           break;
00060         }
00061     }
00062 
00063   }else if(flag==9){
00064     block->g[0]=block->inptr[0][0]-block->inptr[1][0];
00065     if (get_phase_simulation()==1) {
00066       switch (i)
00067         {
00068         case 0:
00069           if(block->inptr[0][0]==block->inptr[1][0]) {
00070             block->mode[0]=(int)2.0;
00071           }else{
00072             block->mode[0]=(int)1.0;
00073           }
00074           break;
00075           
00076         case 1:
00077           if(block->inptr[0][0]!=block->inptr[1][0]) {
00078             block->mode[0]=(int)2.0;
00079           }else{
00080             block->mode[0]=(int)1.0;
00081           }
00082           break;
00083         case 2:
00084           if(block->inptr[0][0]<block->inptr[1][0]) {
00085             block->mode[0]=(int)2.0;
00086           }else{
00087             block->mode[0]=(int)1.0;
00088           }
00089           break;    
00090         case 3:
00091           if(block->inptr[0][0]<=block->inptr[1][0]) {
00092             block->mode[0]=(int)2.0;
00093           }else{
00094             block->mode[0]=(int)1.0;
00095           }
00096           break;   
00097         case 4:
00098           if(block->inptr[0][0]>=block->inptr[1][0]) {
00099             block->mode[0]=(int)2.0;
00100           }else{
00101             block->mode[0]=(int)1.0;
00102           }
00103           break;   
00104         case 5:
00105           if(block->inptr[0][0]>block->inptr[1][0]) {
00106             block->mode[0]=(int)2.0;
00107           }else{
00108             block->mode[0]=(int)1.0;
00109           }
00110           break;
00111         }
00112     }
00113   }
00114 }

Generated on Sun Mar 4 15:03:59 2007 for Scilab [trunk] by  doxygen 1.5.1