fipref を使用したデータ型オーバーライドの基本設定
fi オブジェクトのデータ型オーバーライド
fipref DataTypeOverride プロパティを使用し、single、double、スケーリングされた double で fi オブジェクトをオーバーライドします。コンストラクター関数 fi が呼び出される場合にのみ、データ型オーバーライドが発生します。データ型オーバーライドが有効なとき作成されたオブジェクトは、オーバーライドされたデータ型をもちます。後でデータ型オーバーライドが無効になってもそのデータ型が維持されます。オーバーライドされていないデータ型のオブジェクトを取得するには、データ型オーバーライドが無効なときにオブジェクトを作成しなければなりません。
p = fipref('DataTypeOverride', 'TrueDoubles')
p =
NumberDisplay: 'RealWorldValue'
NumericTypeDisplay: 'full'
FimathDisplay: 'full'
LoggingMode: 'Off'
DataTypeOverride: 'TrueDoubles'
a = fi(pi)
a =
3.1416
DataTypeMode: Double
p = fipref('DataTypeOverride', 'ForceOff')
p =
NumberDisplay: 'RealWorldValue'
NumericTypeDisplay: 'full'
FimathDisplay: 'full'
LoggingMode: 'Off'
DataTypeOverride: 'ForceOff'
a
a =
3.1416
DataTypeMode: Double
b = fi(pi)
b =
3.1416
DataTypeMode: Fixed-point: binary point scaling
Signedness: Signed
WordLength: 16
FractionLength: 13
ヒント
fipref オブジェクトを既定値にリセットするには、reset(fipref) または reset(p) を使用します。ここで、p は fipref オブジェクトです。これはデータ型オーバーライドとログ作成が無効になっていることを確認するのに便利です。
固定小数点スケーリングのデータ型オーバーライド
アルゴリズムで固定小数点変数のスケーリングを選択するのが難しい場合があります。Fixed-Point Designer™ ソフトウェアでは、データ型オーバーライドと最小/最大のログ作成の組み合わせを使用して、固定小数点のデータ型が対応しなければならない数値範囲を容易に確認できます。この範囲によって固定小数点のデータ型に対する適切なスケーリングが決まります。一般的には、以下の手順で行います。
固定小数点
fiオブジェクトを使用し、語長とスケーリングには "最適な推定値" の初期値を使用してアルゴリズムを実装します。fiprefDataTypeOverrideプロパティをScaledDoubles、TrueSingles、またはTrueDoublesに設定します。fiprefLoggingModeプロパティをonに設定します。関数
maxlogと関数minlogを使用し、浮動小数点モードのアルゴリズムの変数で得られた最大値と最小値のログを作成します。fiprefDataTypeOverrideプロパティをForceOffに設定します。手順 4 で得られた情報を使用し、各変数の完全な数値範囲がそのデータ型とスケーリングで表現されるように、アルゴリズムの各変数に固定小数点スケーリングを設定します。
このプロセスの詳細な例は、Fixed-Point Designer の最小/最大のインストルメンテーションを使用したデータ型の設定の例で示されています。