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: 30F = fimath('RoundingMethod', 'Floor', 'OverflowAction', 'Wrap')
F =
RoundingMethod: Floor
OverflowAction: Wrap
ProductMode: FullPrecision
SumMode: FullPrecisiona = 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: FullPrecisionb = 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