Main Content

fimath オブジェクト プロパティ

演算、丸め、オーバーフローのプロパティ

必要に応じて fimath オブジェクトの以下のプロパティに書き込むことができます。

プロパティ説明有効な値
CastBeforeSum

両方のオペランドが加算前に加算データ型にキャストされるかどうか

  • 0 (既定値) — 加算前にキャストしない

  • 1 — 加算前にキャストする

メモ

SumModeFullPrecision に設定されていると、このプロパティは非表示になります。

MaxProductWordLength

乗算データ型の最大許容語長

  • 65535 (既定の設定)

  • 任意の正の整数

MaxSumWordLength

加算データ型の最大許容語長

  • 65535 (既定の設定)

  • 任意の正の整数

OverflowAction

オーバーフロー時のアクション

  • Saturate (既定の設定) — オーバーフローの場合、固定小数点の範囲の最大値または最小値に飽和します。

  • Wrap — オーバーフローの場合、ラップします。このモードは、2 の補数オーバーフローとも呼ばれます。

ProductBias

乗算データ型のバイアス

  • 0 (既定の設定)

  • 任意の浮動小数点数

ProductFixedExponent

乗算データ型の固定小数点の指数

  • -30 (既定の設定)

  • 任意の正または負の整数

メモ

ProductFractionLength は、ProductFixedExponent の負の値です。1 つのプロパティを変更すると、他のプロパティも変更されます。

ProductFractionLength

乗算データ型の小数部の長さ (ビット単位)

  • 30 (既定の設定)

  • 任意の正または負の整数

メモ

ProductFractionLength は、ProductFixedExponent の負の値です。1 つのプロパティを変更すると、他のプロパティも変更されます。

ProductMode

乗算データ型の決定方法の定義

  • FullPrecision (既定の設定) — 結果の完全精度を維持します。

  • KeepLSB — 最下位ビットを維持します。乗算の語長は指定しますが、小数部の長さは積の最下位ビットを維持するように設定されています。

  • KeepMSB — 最上位ビットを維持します。乗算の語長は指定しますが、小数部の長さは積の最上位ビットを維持するように設定されています。

  • SpecifyPrecision — 語長と小数部の長さまたは乗算の勾配とバイアスを指定します。

ProductSlope

乗算データ型の勾配

  • 9.3132e-010 (既定の設定)

  • 任意の浮動小数点数

メモ

ProductSlope=ProductSlopeAdjustmentFactor×2ProductFixedExponent

これらのプロパティの 1 つを変更すると、他のプロパティに影響を与えます。

ProductSlopeAdjustmentFactor

乗算データ型の勾配調整係数

  • 1 (既定の設定)

  • 1 以上 2 未満の任意の浮動小数点数

メモ

ProductSlope=ProductSlopeAdjustmentFactor×2ProductFixedExponent

これらのプロパティの 1 つを変更すると、他のプロパティに影響を与えます。

ProductWordLength

乗算データ型の語長 (ビット単位)

  • 32 (既定の設定)

  • 任意の正の整数

RoundingMethod

丸め手法

  • Nearest (既定の設定) — 最も近い整数へ丸めます。等距離の場合は、正の無限大方向に丸めます。

  • Ceiling — 正の無限大方向に丸めます。

  • Convergent — 最も近い偶数方向へ丸めます。等距離の場合は、最も近い偶数の格納整数に丸めます (最小バイアス)。

  • Zero — ゼロ方向に丸めます。

  • Floor — 負の無限大方向に丸めます。

  • Round — 最も近い整数へ丸めます。等距離の場合、負数に対しては負の無限大方向に丸め、正数に対しては正の無限大方向に丸めます。

SumBias

加算データ型のバイアス

  • 0 (既定の設定)

  • 任意の浮動小数点数

SumFixedExponent

加算データ型の固定小数点の指数

  • -30 (既定の設定)

  • 任意の正または負の整数

メモ

SumFractionLength は、SumFixedExponent の負の値です。1 つのプロパティを変更すると、他のプロパティも変更されます。

SumFractionLength

加算データ型の小数部の長さ (ビット単位)

  • 30 (既定の設定)

  • 任意の正または負の整数

メモ

SumFractionLength は、SumFixedExponent の負の値です。1 つのプロパティを変更すると、他のプロパティも変更されます。

SumMode

加算データ型の決定方法の定義

  • FullPrecision (既定の設定) — 結果の完全精度を維持します。

  • KeepLSB — 最下位ビットを維持します。加算データ型の語長は指定しますが、小数部の長さは加算の最下位ビットを維持するように設定されています。

  • KeepMSB — 最上位ビットを維持します。加算データ型の語長は指定しますが、小数部の長さは加算の最上位ビットを維持するように設定されており、必要以上の小数部ビットはありません。

  • SpecifyPrecision — 語長と小数部の長さまたは加算データ型の勾配とバイアスを指定します。

SumSlope

加算データ型の勾配

  • 9.3132e-010 (既定の設定)

  • 任意の浮動小数点数

メモ

SumSlope=SumSlopeAdjustmentFactor×2SumFixedExponent

これらのプロパティの 1 つを変更すると、他のプロパティに影響を与えます。

SumSlopeAdjustmentFactor

加算データ型の勾配調整係数

  • 1 (既定の設定)

  • 1 以上 2 未満の任意の浮動小数点数

メモ

SumSlope=SumSlopeAdjustmentFactor×2SumFixedExponent

これらのプロパティの 1 つを変更すると、他のプロパティに影響を与えます。

SumWordLength

加算データ型の語長 (ビット単位)

  • 32 (既定の設定)

  • 任意の正の整数

これらのプロパティの詳細は、Set fi Object Propertiesを参照してください。Fixed-Point Designer™ ソフトウェアにおける fimath オブジェクトのプロパティの指定方法の詳細については、fimath オブジェクト プロパティの設定を参照してください。

プロパティの関連方法

加算データ型のプロパティ

2 つの fi オブジェクトの加算の勾配は、次のように SumSlopeAdjustmentFactor および SumFixedExponent プロパティに関係しています。

SumSlope=SumSlopeAdjustmentFactor×2SumFixedExponent

これらのいずれかのプロパティが更新されると、他のプロパティもそれに応じて変更されます。

FullPrecision の加算では、最終的な語長は次のように表されます。

Ws=integer length+Fs

ここで、それぞれ以下のようになります。

integer length=max(WaFa,WbFb)+ceil(log2(NumberOfSummands))

および

Fs=max(Fa,Fb)

SumModeKeepLSB に設定すると、最終的な語長と小数部の長さは次のように決定されます。

Ws=specified in the SumWordLength propertyFs=max(Fa,Fb)

SumModeKeepMSB に設定すると、最終的な語長と小数部の長さは次のように決定されます。

Ws=specified in the SumWordLength propertyFs=Wsinteger length

ここでは次のようになります。

integer length=max(WaFa,WbFb)+ceil(log2(NumberOfSummands))

SumModeSpecifyPrecision に設定されている場合、語長と小数部の長さの両方または加算データ型の勾配とバイアスをそれぞれ SumWordLength および SumFractionLength、あるいは SumSlope および SumBias プロパティで指定します。

乗算データ型のプロパティ

2 つの fi オブジェクトの乗算の勾配は、次のように ProductSlopeAdjustmentFactor および ProductFixedExponent プロパティに関係しています。

ProductSlope=ProductSlopeAdjustmentFactor×2ProductFixedExponent

これらのいずれかのプロパティが更新されると、他のプロパティもそれに応じて変更されます。

FullPrecision の乗算では、最終的な語長と小数部の長さは次のように表されます。

Wp=Wa+WbFp=Fa+Fb

ProductModeKeepLSB の場合、語長と小数部の長さは次のように決定されます。

Wp=specified in the ProductWordLength propertyFp=Fa+Fb

ProductModeKeepMSB の場合、語長と小数部の長さは次のようになります。

Wp=specified in the ProductWordLength propertyFp=Wpinteger length

ここで、

integer length=(Wa+Wb)(Fa+Fb)

ProductModeSpecifyPrecision に設定されている場合、語長と小数部の長さの両方または乗算データ型の勾配とバイアスをそれぞれ ProductWordLength および ProductFractionLength、あるいは ProductSlope および ProductBias プロパティで指定します。

特定の関数で fimath プロパティを使用する方法についての詳細は、次を参照してください。

fimath オブジェクト プロパティの設定

オブジェクト作成時の fimath プロパティの設定

コンストラクター関数 fimath の引数の後にプロパティを含めることにより、オブジェクト作成時に fimath オブジェクトのプロパティを設定できます。

たとえば、オーバーフロー アクションを Saturate に、丸め手法を Convergent に設定するには、以下のように入力します。

F = fimath('OverflowAction','Saturate','RoundingMethod','Convergent')
F = 


        RoundingMethod: Convergent
        OverflowAction: Saturate
           ProductMode: FullPrecision
               SumMode: FullPrecision

コマンド ラインで fimath オブジェクトを作成するだけでなく、[fimath コンストラクターの挿入] ダイアログ ボックスを使用して fimath プロパティを設定できます。この方法の例は、GUI での fimath オブジェクト コンストラクターの作成を参照してください。

fimath におけるプロパティの直接参照の使用

MATLAB® 構造体のような参照を使用すると、プロパティを直接参照して fimath オブジェクト プロパティの値を設定または取得できます。プロパティを直接参照するには、ピリオドを使用してプロパティに名前でインデックスを付けます。

たとえば、FRoundingMethod を取得するには、次のようにします。

F.RoundingMethod
ans =

    'Convergent'

FOverflowAction を設定するには、次のようにします。

F.OverflowAction = 'Wrap'
F = 


        RoundingMethod: Convergent
        OverflowAction: Wrap
           ProductMode: FullPrecision
               SumMode: FullPrecision