1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
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 -->
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">
16
<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
17
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
19
<LINK REL="STYLESHEET" HREF="main.css">
23
<BODY bgcolor="#FFFFFF">
25
<!--Table of Child-Links-->
26
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
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>
42
<!--End of Table of Child-Links-->
45
<H2><A NAME="SECTION005713000000000000000"></A><A NAME="LOGICAL_OP"></A>
51
$\epsfig{file=LOGICAL_OP.eps,width=90.00pt}$
54
WIDTH="143" HEIGHT="129" ALIGN="BOTTOM" BORDER="0"
56
ALT="\epsfig{file=LOGICAL_OP.eps,width=90.00pt}">
58
<H3><font color="blue"><A NAME="SECTION005713100000000000000">
63
<H3><font color="blue"><A NAME="SECTION005713200000000000000">
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)
70
<H3><font color="blue"><A NAME="SECTION005713300000000000000">
74
<TABLE CELLPADDING=3 BORDER="1">
75
<TR><TD ALIGN="CENTER">Set parameters</TD>
78
<TR><TD ALIGN="CENTER">number of inputs</TD>
79
<TD ALIGN="CENTER">2</TD>
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>
88
<LI>number of inputs: The number of block inputs. The value must
89
be appropriate for the selected operator.
91
<LI>Operator: AND : The logical operator to be applied to the
92
block inputs. Valid choices are the operators from the list.
96
<H3><font color="blue"><A NAME="SECTION005713400000000000000">
97
Default properties</A>
101
<LI>always active: no
103
<LI>direct-feedthrough: yes
105
<LI>zero-crossing: no
109
<LI>number/sizes of inputs: 2 / -1 -1
111
<LI>number/sizes of outputs: 1 / -1
113
<LI>number/sizes of activation inputs: 0 /
115
<LI>number/sizes of activation outputs: 0 /
117
<LI>continuous-time state: no
119
<LI>discrete-time state: no
121
<LI>name of computational function: <EM>logicalop</EM>
124
<H3><font color="blue"><A NAME="SECTION005713500000000000000">
125
Interfacing function</A>
127
<TT>scilab/macros/scicos_blocks/misc/LOGICAL_OP.sci</TT>
129
<H3><font color="blue"><A NAME="SECTION005713600000000000000">
130
Computational function (type 4)</A>
133
<PRE>#include "scicos_block.h"
134
#include <math.h>
136
void logicalop(scicos_block *block,int flag)
143
if (block->nin==1)
145
block->outptr[0][0]=1.0;
146
for (j=0;j<block->insz[0];j++) {
147
if(block->inptr[0][j]<=0)
149
block->outptr[0][0]=0.0;
155
for (j=0;j<block->insz[0];j++) {
156
block->outptr[0][j]=1.0;
157
for (k=0;k<block->nin;k++) {
158
if(block->inptr[k][j]<=0) {
159
block->outptr[0][j]=0.0;
168
if (block->nin==1)
170
block->outptr[0][0]=0.0;
171
for (j=0;j<block->insz[0];j++) {
172
if(block->inptr[0][j]>0) {
173
block->outptr[0][0]=1.0;
179
for (j=0;j<block->insz[0];j++) {
180
block->outptr[0][j]=0.0;
181
for (k=0;k<block->nin;k++) {
182
if(block->inptr[k][j]>0) {
183
block->outptr[0][j]=1.0;
192
if (block->nin==1)
194
block->outptr[0][0]=0.0;
195
for (j=0;j<block->insz[0];j++) {
196
if(block->inptr[0][j]<=0)
198
block->outptr[0][0]=1.0;
204
for (j=0;j<block->insz[0];j++) {
205
block->outptr[0][j]=0.0;
206
for (k=0;k<block->nin;k++) {
207
if(block->inptr[k][j]<=0) {
208
block->outptr[0][j]=1.0;
217
if (block->nin==1)
219
block->outptr[0][0]=1.0;
220
for (j=0;j<block->insz[0];j++) {
221
if(block->inptr[0][j]>0) {
222
block->outptr[0][0]=0.0;
228
for (j=0;j<block->insz[0];j++) {
229
block->outptr[0][j]=1.0;
230
for (k=0;k<block->nin;k++) {
231
if(block->inptr[k][j]>0) {
232
block->outptr[0][j]=0.0;
241
if (block->nin==1)
244
for (j=0;j<block->insz[0];j++) {
245
if(block->inptr[0][j]>0) {
249
block->outptr[0][0]=(double) l;
252
for (j=0;j<block->insz[0];j++) {
254
for (k=0;k<block->nin;k++) {
255
if(block->inptr[k][j]>0) {
259
block->outptr[0][j]=(double) l;
265
for (j=0;j<block->insz[0];j++) {
266
if(block->inptr[0][j]>0) {
267
block->outptr[0][j]=0.0;
270
block->outptr[0][j]=1.0;