fimath による演算規則の共有
Fixed-Point Designer™ ソフトウェアで fimath
プロパティを共有するには 2 つの方法があります。
fi
オブジェクト全体で fimath
プロパティを共有することにより、fi
オブジェクトが同じ演算規則を使用するため、"fimath
の不一致" エラーを確実に回避できます。
既定の fimath を使用した演算規則の共有
ローカル fimath を指定しないことにより、すべての fi
オブジェクトが確実に同じ fimath
プロパティを使用するようにできます。ローカル fimath
を fi
オブジェクトに関連付けないようにするには、次の方法があります。
コンストラクターの呼び出しで
fimath
プロパティを指定しないで、fi
コンストラクターを使用してfi
オブジェクトを作成します。以下に例を示します。a = fi(pi)
sfi
コンストラクターまたはufi
コンストラクターを使用してfi
オブジェクトを作成します。これらのコンストラクターを使用して作成されたfi
オブジェクトはすべて、ローカル fimath をもちません。b = sfi(pi)
removefimath
を使用して、既存のfi
オブジェクトからローカルのfimath
オブジェクトを削除します。
ローカルの fimath を使用した演算規則の共有
fimath
オブジェクトを使用して複数の fi
オブジェクト間で使用する共通の演算規則を定義することができます。その後で、それぞれに対して同じ fimath
オブジェクトを使用して独自の fi
オブジェクトを作成できます。このためには、numerictype
オブジェクトも作成し、共通のデータ型とスケーリングを定義しなければなりません。numerictype
オブジェクトの詳細は、numerictype オブジェクトの作成を参照してください。次の例で、numerictype
オブジェクトと fimath
オブジェクトを作成し、次にこれらのオブジェクトを使用して同じ numerictype
属性と fimath
属性をもつ 2 つの fi
オブジェクトを作成します。
T = numerictype('WordLength', 32, 'FractionLength', 30)
T = DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 32 FractionLength: 30
F = fimath('RoundingMethod', 'Floor', 'OverflowAction', 'Wrap')
F = RoundingMethod: Floor OverflowAction: Wrap ProductMode: FullPrecision SumMode: FullPrecision
a = fi(pi, T, F)
a = -0.8584 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 32 FractionLength: 30 RoundingMethod: Floor OverflowAction: Wrap ProductMode: FullPrecision SumMode: FullPrecision
b = fi(pi/2, T, F)
b = 1.5708 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 32 FractionLength: 30 RoundingMethod: Floor OverflowAction: Wrap ProductMode: FullPrecision SumMode: FullPrecision