~ubuntu-branches/ubuntu/hoary/scilab/hoary

« back to all changes in this revision

Viewing changes to man/fr/scicos/LOGICAL_OP.htm

  • Committer: Bazaar Package Importer
  • Author(s): Torsten Werner
  • Date: 2005-01-09 22:58:21 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20050109225821-473xr8vhgugxxx5j
Tags: 3.0-12
changed configure.in to build scilab's own malloc.o, closes: #255869

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
 
2
 
 
3
<!--Converted with LaTeX2HTML 2002-2-1 (1.70)
 
4
original version by:  Nikos Drakos, CBLU, University of Leeds
 
5
* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
 
6
* with significant contributions from:
 
7
  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
 
8
<HTML>
 
9
<HEAD>
 
10
<TITLE>Logical operation </TITLE>
 
11
<META NAME="description" CONTENT="Logical operation ">
 
12
<META NAME="keywords" CONTENT="main">
 
13
<META NAME="resource-type" CONTENT="document">
 
14
<META NAME="distribution" CONTENT="global">
 
15
 
 
16
<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
 
17
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
 
18
 
 
19
<LINK REL="STYLESHEET" HREF="main.css">
 
20
 
 
21
</HEAD>
 
22
 
 
23
<BODY bgcolor="#FFFFFF">
 
24
 
 
25
<!--Table of Child-Links-->
 
26
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
 
27
 
 
28
<UL>
 
29
<LI><A NAME="tex2html4795"
 
30
  HREF="LOGICAL_OP.htm#SECTION005713100000000000000">Library</A>
 
31
<LI><A NAME="tex2html4796"
 
32
  HREF="LOGICAL_OP.htm#SECTION005713200000000000000">Description</A>
 
33
<LI><A NAME="tex2html4797"
 
34
  HREF="LOGICAL_OP.htm#SECTION005713300000000000000">Dialog Box</A>
 
35
<LI><A NAME="tex2html4798"
 
36
  HREF="LOGICAL_OP.htm#SECTION005713400000000000000">Default properties</A>
 
37
<LI><A NAME="tex2html4799"
 
38
  HREF="LOGICAL_OP.htm#SECTION005713500000000000000">Interfacing function</A>
 
39
<LI><A NAME="tex2html4800"
 
40
  HREF="LOGICAL_OP.htm#SECTION005713600000000000000">Computational function (type 4)</A>
 
41
</UL>
 
42
<!--End of Table of Child-Links-->
 
43
<HR>
 
44
 
 
45
<H2><A NAME="SECTION005713000000000000000"></A><A NAME="LOGICAL_OP"></A>
 
46
<BR>
 
47
Logical operation 
 
48
</H2>
 
49
<DIV ALIGN="CENTER">
 
50
<!-- MATH
 
51
 $\epsfig{file=LOGICAL_OP.eps,width=90.00pt}$
 
52
 -->
 
53
<IMG
 
54
 WIDTH="143" HEIGHT="129" ALIGN="BOTTOM" BORDER="0"
 
55
 SRC="img135.gif"
 
56
 ALT="\epsfig{file=LOGICAL_OP.eps,width=90.00pt}">
 
57
</DIV>
 
58
<H3><font color="blue"><A NAME="SECTION005713100000000000000">
 
59
Library</A>
 
60
</font></H3>
 
61
Others
 
62
 
 
63
<H3><font color="blue"><A NAME="SECTION005713200000000000000">
 
64
Description</A>
 
65
</font></H3>
 
66
The Logical Operator block performs the specified logical operation on
 
67
its inputs. An input value is TRUE (1) if it is nonzero and FALSE (0)
 
68
if it is zero. 
 
69
 
 
70
<H3><font color="blue"><A NAME="SECTION005713300000000000000">
 
71
Dialog Box</A>
 
72
</font></H3>
 
73
<DIV ALIGN="CENTER">
 
74
<TABLE CELLPADDING=3 BORDER="1">
 
75
<TR><TD ALIGN="CENTER">Set parameters</TD>
 
76
<TD></TD>
 
77
</TR>
 
78
<TR><TD ALIGN="CENTER">number of inputs</TD>
 
79
<TD ALIGN="CENTER">2</TD>
 
80
</TR>
 
81
<TR><TD ALIGN="CENTER">Operator: AND (0), OR (1), NAND (2), NOR (3), XOR (4), NOT (5)</TD>
 
82
<TD ALIGN="CENTER">0</TD>
 
83
</TR>
 
84
</TABLE>
 
85
</DIV>
 
86
 
 
87
<UL>
 
88
<LI>number of inputs: The number of block inputs. The value must
 
89
  be appropriate for the selected operator. 
 
90
</LI>
 
91
<LI>Operator: AND : The logical operator to be applied to the
 
92
  block inputs. Valid choices are the operators from the list. 
 
93
</LI>
 
94
</UL>
 
95
 
 
96
<H3><font color="blue"><A NAME="SECTION005713400000000000000">
 
97
Default properties</A>
 
98
</font></H3>
 
99
 
 
100
<UL>
 
101
<LI>always active: no
 
102
</LI>
 
103
<LI>direct-feedthrough: yes
 
104
</LI>
 
105
<LI>zero-crossing: no
 
106
</LI>
 
107
<LI>mode: no
 
108
</LI>
 
109
<LI>number/sizes of inputs: 2 / -1  -1
 
110
</LI>
 
111
<LI>number/sizes of outputs: 1 / -1
 
112
</LI>
 
113
<LI>number/sizes of activation inputs: 0 / 
 
114
</LI>
 
115
<LI>number/sizes of activation outputs: 0 / 
 
116
</LI>
 
117
<LI>continuous-time state: no
 
118
</LI>
 
119
<LI>discrete-time state: no
 
120
</LI>
 
121
<LI>name of computational function: <EM>logicalop</EM>
 
122
</LI>
 
123
</UL>
 
124
<H3><font color="blue"><A NAME="SECTION005713500000000000000">
 
125
Interfacing function</A>
 
126
</font></H3>
 
127
<TT>scilab/macros/scicos_blocks/misc/LOGICAL_OP.sci</TT>
 
128
 
 
129
<H3><font color="blue"><A NAME="SECTION005713600000000000000">
 
130
Computational function (type 4)</A>
 
131
</font></H3>
 
132
<BR>
 
133
<PRE>#include "scicos_block.h"
 
134
#include &lt;math.h&gt;
 
135
 
 
136
void logicalop(scicos_block *block,int flag)
 
137
{
 
138
  int i,j,k,l;
 
139
  i=block-&gt;ipar[0];
 
140
  switch (i)
 
141
    {
 
142
    case 0:
 
143
      if (block-&gt;nin==1)
 
144
        {
 
145
          block-&gt;outptr[0][0]=1.0;
 
146
          for (j=0;j&lt;block-&gt;insz[0];j++) {
 
147
            if(block-&gt;inptr[0][j]&lt;=0)
 
148
              {
 
149
                block-&gt;outptr[0][0]=0.0;
 
150
                break;
 
151
              }
 
152
          }
 
153
        }
 
154
      else {
 
155
        for (j=0;j&lt;block-&gt;insz[0];j++) {
 
156
          block-&gt;outptr[0][j]=1.0;
 
157
          for (k=0;k&lt;block-&gt;nin;k++) {
 
158
            if(block-&gt;inptr[k][j]&lt;=0) {
 
159
              block-&gt;outptr[0][j]=0.0;
 
160
              break;
 
161
            }
 
162
          }
 
163
        }
 
164
      }
 
165
      break;
 
166
      
 
167
    case 1:
 
168
      if (block-&gt;nin==1)
 
169
        {
 
170
          block-&gt;outptr[0][0]=0.0;
 
171
          for (j=0;j&lt;block-&gt;insz[0];j++) {
 
172
            if(block-&gt;inptr[0][j]&gt;0) {
 
173
              block-&gt;outptr[0][0]=1.0;
 
174
              break;
 
175
            }
 
176
          }
 
177
        }
 
178
      else {
 
179
        for (j=0;j&lt;block-&gt;insz[0];j++) {
 
180
          block-&gt;outptr[0][j]=0.0;
 
181
          for (k=0;k&lt;block-&gt;nin;k++) {
 
182
            if(block-&gt;inptr[k][j]&gt;0) {
 
183
              block-&gt;outptr[0][j]=1.0;
 
184
              break;
 
185
            }
 
186
          }
 
187
        }
 
188
      }
 
189
      break;
 
190
 
 
191
    case 2:
 
192
      if (block-&gt;nin==1)
 
193
        {
 
194
          block-&gt;outptr[0][0]=0.0;
 
195
          for (j=0;j&lt;block-&gt;insz[0];j++) {
 
196
            if(block-&gt;inptr[0][j]&lt;=0)
 
197
              {
 
198
                block-&gt;outptr[0][0]=1.0;
 
199
                break;
 
200
              }
 
201
          }
 
202
        }
 
203
      else {
 
204
        for (j=0;j&lt;block-&gt;insz[0];j++) {
 
205
          block-&gt;outptr[0][j]=0.0;
 
206
          for (k=0;k&lt;block-&gt;nin;k++) {
 
207
            if(block-&gt;inptr[k][j]&lt;=0) {
 
208
              block-&gt;outptr[0][j]=1.0;
 
209
              break;
 
210
            }
 
211
          }
 
212
        }
 
213
      }
 
214
      break;
 
215
 
 
216
    case 3:
 
217
      if (block-&gt;nin==1)
 
218
        {
 
219
          block-&gt;outptr[0][0]=1.0;
 
220
          for (j=0;j&lt;block-&gt;insz[0];j++) {
 
221
            if(block-&gt;inptr[0][j]&gt;0) {
 
222
              block-&gt;outptr[0][0]=0.0;
 
223
              break;
 
224
            }
 
225
          }
 
226
        }
 
227
      else {
 
228
        for (j=0;j&lt;block-&gt;insz[0];j++) {
 
229
          block-&gt;outptr[0][j]=1.0;
 
230
          for (k=0;k&lt;block-&gt;nin;k++) {
 
231
            if(block-&gt;inptr[k][j]&gt;0) {
 
232
              block-&gt;outptr[0][j]=0.0;
 
233
              break;
 
234
            }
 
235
          }
 
236
        }
 
237
      }
 
238
      break;
 
239
 
 
240
    case 4:
 
241
      if (block-&gt;nin==1)
 
242
        {
 
243
          l=0;
 
244
          for (j=0;j&lt;block-&gt;insz[0];j++) {
 
245
            if(block-&gt;inptr[0][j]&gt;0) {
 
246
              l=(l+1)%2;
 
247
            }
 
248
          }
 
249
          block-&gt;outptr[0][0]=(double) l;
 
250
        }
 
251
      else {
 
252
        for (j=0;j&lt;block-&gt;insz[0];j++) {
 
253
          l=0;
 
254
          for (k=0;k&lt;block-&gt;nin;k++) {
 
255
            if(block-&gt;inptr[k][j]&gt;0) {
 
256
              l=(l+1)%2;
 
257
            }
 
258
          }
 
259
          block-&gt;outptr[0][j]=(double) l;
 
260
        }
 
261
      }
 
262
      break;
 
263
 
 
264
    case 5:
 
265
      for (j=0;j&lt;block-&gt;insz[0];j++) {
 
266
        if(block-&gt;inptr[0][j]&gt;0) {
 
267
          block-&gt;outptr[0][j]=0.0;
 
268
        }
 
269
        else{
 
270
          block-&gt;outptr[0][j]=1.0;
 
271
        }
 
272
      }
 
273
    }
 
274
}
 
275
</PRE>
 
276
<HR>
 
277
<ADDRESS>
 
278
Ramine Nikoukhah
 
279
2004-06-22
 
280
</ADDRESS>
 
281
</BODY>
 
282
</HTML>