Main Content

addAlgorithmProperty

コード置換テーブル エントリのアルゴリズム プロパティの追加

説明

addAlgorithmProperty(hEntry,Name,Value) は、アルゴリズム プロパティ設定をコード置換テーブル エントリの概念表現に追加します。たとえば、この関数を使用して、ルックアップ テーブル関数によって適用されるアルゴリズムを調整します。

関数 lookup1D のアルゴリズム プロパティの構成

この例は、関数 addAlgorithmProperty を使用して、関数 lookup1D のコードを置換する際に以下の手法を適用するようにコード ジェネレーターを構成する方法を示しています。

  • クリップ外挿

  • 線形内挿

  • 二分インデックス検索または線形インデックス検索

hLib = RTW.TflTable;

hEnt = RTW.TflCFunctionEntry;
hEnt.setTflCFunctionEntryParameters( ...
                    'Key',                      'lookup1D', ...
                    'Priority',                 100, ...
                    'ImplementationName',       'my_Lookup1D_Repl', ...
                    'ImplementationHeaderFile', 'my_Lookup1D.h', ...
                    'ImplementationSourceFile', 'my_Lookup1D.c', ...
                    'GenCallback', 'RTW.copyFileToBuildDir');

arg = hEnt.getTflArgFromString('y1','double');
arg.IOType = 'RTW_IO_OUTPUT';
hEnt.addConceptualArg(arg);

arg = hEnt.getTflArgFromString('u1','double');
hEnt.addConceptualArg(arg);

arg = RTW.TflArgMatrix('u2','RTW_IO_INPUT','double');
arg.DimRange = [0 0; Inf Inf];
hEnt.addConceptualArg(arg);

arg = RTW.TflArgMatrix('u3', 'RTW_IO_INPUT', 'double');
arg.DimRange = [0 0; Inf Inf];
hEnt.addConceptualArg(arg);

hEnt.addAlgorithmProperty('ExtrapMethod', 'Clip');
hEnt.addAlgorithmProperty('InterpMethod', 'Linear point-slope');
hEnt.addAlgorithmProperty('IndexSearchMethod', 'Linear search');

入力引数

すべて折りたたむ

事前に関数 RTW.TflCFunctionEntry または RTW.TflCOperationEntry を呼び出して返されたコード置換テーブル エントリ。

名前と値の引数

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名、Value は対応する値です。名前と値の引数は他の引数の後に配置しなければなりませんが、ペアの順序は重要ではありません。

R2021a より前では、コンマを使用して各名前と値を区切り、Name を引用符で囲みます。

例: 'Name','y1'

ExtrapMethod の値は、ブレークポイント データ セットの範囲外にある入力の値の外挿に使用する方法を指定します。

例: 'ExtrapMethod', 'Clip'

IndexSearchMethod の値は、テーブル インデックスの計算方法を指定します。ブレークポイント セットが等間隔に並んでいる場合、Evenly spaced points を選択してテーブル インデックスを計算することにより、速度を最大に上げることができます。ブレークポイント セットが等間隔でない場合は、Linear search または Binary search を使用します。

例: 'IndexSearchMethod','Evenly spaced points'

InterpMethod の値は、ブレークポイント値間の内挿の方法を指定します。

例: 'InterpMethod', 'Linear point-slope'

RemoveProtectionInput の値は、範囲外の入力値をチェックするコードを含めるかどうかを指定します。入力値が範囲外でない場合は、RemoveProtectionInputoff に設定できます。

例: 'RemoveProtectionInput', 'off'

RndMeth の値は、固定小数点ルックアップ テーブルの計算の丸めモードを指定します。

例: 'RndMeth', 'Zero'

SaturateOnIntegerOverflow の値は、オーバーフロー アクションの方法を指定します。値を off に設定すると、オーバーフローはデータ型によって表現される適切な値にラップされます。それ以外の場合、オーバーフローはデータ型で表現できる最小値または最大値のいずれかに飽和します。

例: 'SaturateOnIntegerOverflow', 'on'

生成コード内で調整可能なテーブル サイズを有効にする場合は、SupportTunableTableSize の値を on に設定します。

例: 'SupportTunableTableSize', 'on'

UseLastTableValue の値は、ブレークポイント セットの最後の要素とそれに対応するテーブル値のアドレス指定に使用するインデックス規則を指定します。

例: 'UseLastTableValue', 'on'

UseRowMajorAlgorithm の値を on に設定すると、行優先のアルゴリズムの使用が有効になります。値を off に設定すると、列優先のアルゴリズムが使用されます。

例: 'UseRowMajorAlgorithm', 'on'

ブレークポイントが 2 のべき乗間隔の値であるブロックをコード置換ライブラリで指定されたユーザー定義関数で置き換える場合は、BPPower2Spacing の値を on に設定します。ブレークポイントが 2 のべき乗間隔の値でないブロックをコード置換ライブラリで指定されたユーザー定義関数で置き換える場合は、値を off に設定します。

バージョン履歴

R2014b で導入