#include "scicos_block.h"#include <math.h>Include dependency graph for logicalop.c:

Go to the source code of this file.
Functions | |
| void | logicalop (scicos_block *block, int flag) |
| void logicalop | ( | scicos_block * | block, | |
| int | flag | |||
| ) |
Definition at line 4 of file logicalop.c.
References i, scicos_block::inptr, scicos_block::insz, scicos_block::ipar, j, l, scicos_block::nin, and scicos_block::outptr.
00005 { 00006 int i,j,k,l; 00007 i=block->ipar[0]; 00008 switch (i) 00009 { 00010 case 0: 00011 if (block->nin==1) 00012 { 00013 block->outptr[0][0]=1.0; 00014 for (j=0;j<block->insz[0];j++) { 00015 if(block->inptr[0][j]<=0) 00016 { 00017 block->outptr[0][0]=0.0; 00018 break; 00019 } 00020 } 00021 } 00022 else { 00023 for (j=0;j<block->insz[0];j++) { 00024 block->outptr[0][j]=1.0; 00025 for (k=0;k<block->nin;k++) { 00026 if(block->inptr[k][j]<=0) { 00027 block->outptr[0][j]=0.0; 00028 break; 00029 } 00030 } 00031 } 00032 } 00033 break; 00034 00035 case 1: 00036 if (block->nin==1) 00037 { 00038 block->outptr[0][0]=0.0; 00039 for (j=0;j<block->insz[0];j++) { 00040 if(block->inptr[0][j]>0) { 00041 block->outptr[0][0]=1.0; 00042 break; 00043 } 00044 } 00045 } 00046 else { 00047 for (j=0;j<block->insz[0];j++) { 00048 block->outptr[0][j]=0.0; 00049 for (k=0;k<block->nin;k++) { 00050 if(block->inptr[k][j]>0) { 00051 block->outptr[0][j]=1.0; 00052 break; 00053 } 00054 } 00055 } 00056 } 00057 break; 00058 00059 case 2: 00060 if (block->nin==1) 00061 { 00062 block->outptr[0][0]=0.0; 00063 for (j=0;j<block->insz[0];j++) { 00064 if(block->inptr[0][j]<=0) 00065 { 00066 block->outptr[0][0]=1.0; 00067 break; 00068 } 00069 } 00070 } 00071 else { 00072 for (j=0;j<block->insz[0];j++) { 00073 block->outptr[0][j]=0.0; 00074 for (k=0;k<block->nin;k++) { 00075 if(block->inptr[k][j]<=0) { 00076 block->outptr[0][j]=1.0; 00077 break; 00078 } 00079 } 00080 } 00081 } 00082 break; 00083 00084 case 3: 00085 if (block->nin==1) 00086 { 00087 block->outptr[0][0]=1.0; 00088 for (j=0;j<block->insz[0];j++) { 00089 if(block->inptr[0][j]>0) { 00090 block->outptr[0][0]=0.0; 00091 break; 00092 } 00093 } 00094 } 00095 else { 00096 for (j=0;j<block->insz[0];j++) { 00097 block->outptr[0][j]=1.0; 00098 for (k=0;k<block->nin;k++) { 00099 if(block->inptr[k][j]>0) { 00100 block->outptr[0][j]=0.0; 00101 break; 00102 } 00103 } 00104 } 00105 } 00106 break; 00107 00108 case 4: 00109 if (block->nin==1) 00110 { 00111 l=0; 00112 for (j=0;j<block->insz[0];j++) { 00113 if(block->inptr[0][j]>0) { 00114 l=(l+1)%2; 00115 } 00116 } 00117 block->outptr[0][0]=(double) l; 00118 } 00119 else { 00120 for (j=0;j<block->insz[0];j++) { 00121 l=0; 00122 for (k=0;k<block->nin;k++) { 00123 if(block->inptr[k][j]>0) { 00124 l=(l+1)%2; 00125 } 00126 } 00127 block->outptr[0][j]=(double) l; 00128 } 00129 } 00130 break; 00131 00132 case 5: 00133 for (j=0;j<block->insz[0];j++) { 00134 if(block->inptr[0][j]>0) { 00135 block->outptr[0][j]=0.0; 00136 } 00137 else{ 00138 block->outptr[0][j]=1.0; 00139 } 00140 } 00141 } 00142 }
1.5.1