exponenta event banner

fimath для совместного использования арифметических правил

Существует два способа совместного использования fimath свойства в программе Fixed-Point Designer™:

Разделение fimath свойства по всему fi объекты гарантируют, что fi объекты используют одни и те же арифметические правила и помогают избежать "несовпадения fimath"ошибки.

Использование fimath по умолчанию для совместного использования арифметических правил

Вы можете убедиться, что ваш fi все объекты используют одно и то же fimath путем отсутствия указания локального fimath. Гарантировать отсутствие местных fimath связан с fi объект, можно:

  • Создать fi с использованием fi конструктор без указания какого-либо fimath свойства в вызове конструктора. Например:

    a = fi(pi)
  • Создать fi с использованием sfi или ufi конструктор. Все fi объекты, созданные с помощью этих конструкторов, не имеют локального fimath.

    b = sfi(pi)
  • Использовать removefimath для удаления локального fimath объект из существующего fi объект.

Использование локального fimath для совместного использования арифметических правил

Также можно использовать fimath объект для определения общих арифметических правил, которые необходимо использовать для нескольких fi объекты. Затем можно создать fi объекты, использующие то же самое fimath объект для каждого. Для этого необходимо также создать numerictype для определения общего типа данных и масштабирования. Дополнительные сведения см. в разделе «Построение объекта числового типа» numerictype объекты. В следующем примере показано создание numerictype объект и fimath объект, а затем использует эти объекты для создания двух fi объекты с одинаковым numerictype и fimath атрибуты:

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