このページは前リリースの情報です。該当の英語のページはこのリリースで削除されています。
Sum ブロックでの入力の並べ替え
この例では、Sum ブロックでの入力の並べ替えの方法を示します。-
符号を最初の演算として使用すると、可能な場合は、ブロックで入力が並べ替えられて +
演算が使用されます。たとえば、式 output = -a-b+c
では、output = c-a-b
となるように、Sum ブロックにより入力が並べ替えられます。アキュムレータを初期化するには、Sum ブロックでは最初の +
入力端子を使用します。
ブロックでは最初のオペランド a
で単項マイナス演算が実行されるのを避けます。単項マイナス演算が実行されると a
の値が固定小数点データ型用に変更されてしまうためです。その場合、出力値は、a
、b
、c
の値の累計結果と異なります。
どちらの定数入力でも int8
データ型が使用されます。Sum ブロックはアキュムレータと出力データ型にも int8
を使用し、[整数オーバーフローで飽和] が有効になっています。Sum ブロックで入力が並べ替えられて、127
の理想的な結果が得られます。
入力を
(-Input1 + Input2)
から(Input2 - Input1)
に並べ替えます。最初の
+
入力端子を使用して、アキュムレータを初期化します。Accumulator = int8(-1) = -1
値の累積を続けます。
Accumulator = Accumulator - int8(-128) = 127
ブロック出力を計算します。
Output = int8(127) = 127
Sum ブロックで入力が並べ替えられない場合は、理想的ではない結果 126
が算出されます。
最初の入力端子を使用して、アキュムレータを初期化します。
Accumulator = int8(-(-128)) = 127
飽和が on に設定されているため、アキュムレータの初期値は
127
で飽和し、ラップしません。値の累積を続けます。
Accumulator = Accumulator + int8(-1) = 126
ブロック出力を計算します。
Output = int8(126) = 126
output = -a-b+c
の単項マイナス演算を明示的に指定するには、Math Operations ライブラリの Unary Minus ブロックを使用できます。