Programmer Guide/SPU Reference/MASKABC: Difference between revisions

From STX Wiki
Jump to navigationJump to search
No edit summary
No edit summary
 
(12 intermediate revisions by the same user not shown)
Line 19: Line 19:


;Description:
;Description:
If the condition defined by <var>COND</var> is true, <var>C</var><sub>i</sub> is assigned to <var>Y</var><sub>i</sub>, otherwise <var>Y</var><sub>i</sub> is set to <var>A</var><sub>i</sub>
If the condition defined by <var>COND</var> is true, <var>C</var><sub>i</sub> is assigned to <var>Y</var><sub>i</sub>, otherwise <var>Y</var><sub>i</sub> is set to <var>A</var><sub>i</sub>.
 


If <var>A</var> is a vector, the inputs <var>B</var> and <var>C</var> can be numbers or vectors with the same length as <var>A</var>. The output <var>Y</var> has always the same type as <var>A</var>.
{|class="einrahmen"
{|class="einrahmen"
!SEL
!<var>COND</var> !!Assignment
! <var>Y<sub>number</sub></var>=f(<var>A<sub>number</sub></var>,<var>B<sub>number</sub></var>)
! <var>Y<sub>vector</sub></var>=f(<var>A<sub>vector</sub></var>,<var>B<sub>number</sub></var>)
! <var>Y<sub>number</sub></var>=f(<var>A<sub>vector</sub></var>,<var>B<sub>vector</sub></var>)
|-
|-
|<code>0</code> or <code>A</code>
|<code>0</code> or <code>&lt;</code>  
|<var>Y</var> = <var>A</var>
|<math>Y_i=\begin{cases}
|<var>Y</var>[i] = <var>A</var>[i]
C_{[i]} & \mbox{if }A_i < B_{[i]} \\
|<var>Y</var>[i] = <var>A</var>[i]
A_i & \mbox{otherwise}
\end{cases}
</math>
|-
|-
|<code>1</code> or <code>B</code>
|<code>1</code> or <code>&gt;</code>
|<var>Y</var> = <var>B</var>
|<math>Y_i=\begin{cases}
|<var>Y</var>[i] = <var>B</var>
C_{[i]} & \mbox{if }A_i > B_{[i]} \\
|<var>Y</var>[i] = <var>B</var>[i]
A_i & \mbox{otherwise}
\end{cases}
</math>
|-
|-
|<code>2</code> or <code>minimum</code>
|<code>2</code> or <code>&le;</code>
|<var>Y</var> = min(<var>A</var>,<var>B</var>)
|<math>Y_i=\begin{cases}
|<var>Y</var>[i] = min(<var>A</var>[i],<var>B</var>)
C_{[i]} & \mbox{if }A_i \leqslant B_{[i]} \\
|<var>Y</var>[i] = min(<var>A</var>[i],<var>B</var>[i])
A_i & \mbox{otherwise}
\end{cases}
</math>
|-
|-
|<code>3</code> or <code>maximum</code>
|<code>3</code> or <code>&ge;</code>
|<var>Y</var> = max(<var>A</var>,<var>B</var>)
|<math>Y_i=\begin{cases}
|<var>Y</var>[i] = max(<var>A</var>[i],<var>B</var>)
C_{[i]} & \mbox{if }A_i \geqslant B_{[i]} \\
|<var>Y</var>[i] = max(<var>A</var>[i],<var>B</var>[i])
A_i & \mbox{otherwise}
\end{cases}
</math>
|}
|}
with: 0 &le; i &lt; length of <var>A<sub>vector</sub></var>
with: 0 &le; i &lt; length of <var>A</var>; [i] means: index is used only if the input is a vector
 
;See also:
;See also:
<[[../#Signal Processing Atoms|SP-atoms]]>; [[../MASKABC]]
<[[../#Signal Processing Atoms|SP-atoms]]>
<!-- AN, 2.5.2011 -->
<!-- AN, 2.5.2011 -->

Latest revision as of 08:43, 9 May 2011

Data masking / thresholding.

[SPU MASKABC A B SEL OUT Y]

input description data type value type default value
A input data number, vector variable
B masker or threshold number, vector variable
C replacement data number, vector variable
COND condition number (int.), string variable 0
output description data type value type comment
Y masked data same type as A variable
Description

If the condition defined by COND is true, Ci is assigned to Yi, otherwise Yi is set to Ai.

If A is a vector, the inputs B and C can be numbers or vectors with the same length as A. The output Y has always the same type as A.

COND Assignment
0 or < {\displaystyle Y_{i}={\begin{cases}C_{[i]}&{\mbox{if }}A_{i}<B_{[i]}\\A_{i}&{\mbox{otherwise}}\end{cases}}}
1 or > {\displaystyle Y_{i}={\begin{cases}C_{[i]}&{\mbox{if }}A_{i}>B_{[i]}\\A_{i}&{\mbox{otherwise}}\end{cases}}}
2 or {\displaystyle Y_{i}={\begin{cases}C_{[i]}&{\mbox{if }}A_{i}\leqslant B_{[i]}\\A_{i}&{\mbox{otherwise}}\end{cases}}}
3 or {\displaystyle Y_{i}={\begin{cases}C_{[i]}&{\mbox{if }}A_{i}\geqslant B_{[i]}\\A_{i}&{\mbox{otherwise}}\end{cases}}}

with: 0 ≤ i < length of A; [i] means: index is used only if the input is a vector

See also

<SP-atoms>

Navigation menu

Personal tools