Main Content

fimath による演算規則の共有

Fixed-Point Designer™ ソフトウェアで fimath プロパティを共有するには 2 つの方法があります。

fi オブジェクト全体で fimath プロパティを共有することにより、fi オブジェクトが同じ演算規則を使用するため、"fimath の不一致" エラーを確実に回避できます。

既定の fimath を使用した演算規則の共有

ローカル fimath を指定しないことにより、すべての fi オブジェクトが確実に同じ fimath プロパティを使用するようにできます。ローカル fimathfi オブジェクトに関連付けないようにするには、次の方法があります。

  • コンストラクターの呼び出しで 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