Main Content

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) を使用します。ここで、pfipref オブジェクトです。これはデータ型オーバーライドとログ作成が無効になっていることを確認するのに便利です。

固定小数点スケーリングのデータ型オーバーライド

アルゴリズムで固定小数点変数のスケーリングを選択するのが難しい場合があります。Fixed-Point Designer™ ソフトウェアでは、データ型オーバーライドと最小/最大のログ作成の組み合わせを使用して、固定小数点のデータ型が対応しなければならない数値範囲を容易に確認できます。この範囲によって固定小数点のデータ型に対する適切なスケーリングが決まります。一般的には、以下の手順で行います。

  1. 固定小数点 fi オブジェクトを使用し、語長とスケーリングには "最適な推定値" の初期値を使用してアルゴリズムを実装します。

  2. fipref DataTypeOverride プロパティを ScaledDoublesTrueSingles、または TrueDoubles に設定します。

  3. fipref LoggingMode プロパティを on に設定します。

  4. 関数 maxlog と関数 minlog を使用し、浮動小数点モードのアルゴリズムの変数で得られた最大値と最小値のログを作成します。

  5. fipref DataTypeOverride プロパティを ForceOff に設定します。

  6. 手順 4 で得られた情報を使用し、各変数の完全な数値範囲がそのデータ型とスケーリングで表現されるように、アルゴリズムの各変数に固定小数点スケーリングを設定します。

このプロセスの詳細な例は、Fixed-Point Designer の最小/最大のインストルメンテーションを使用したデータ型の設定の例で示されています。