mpy

Умножить два объекта используя fimath объект

Синтаксис

c = mpy(F,a,b)

Описание

c = mpy(F,a,b) выполняет элементарное умножение на a и b использование fimath F объекта. Это полезно в случаях, когда вы хотите переопределить fimath объекты a и b, или если fimath свойства, связанные с a и b разные. Область выхода fi c объекта не имеет локального fimath.

a и b можно оба fi объекты с такими же размерностями, если они не являются скаляром. Если либо a или b скаляром, тогда c имеет размерности нескалярного объекта. a и b могут также быть двойными, одинарными или целыми числами.

Примеры

В этом примере c является 40-битным продуктом a и b с длиной дроби 30.

a = fi(pi);
b = fi(exp(1));
F = fimath('ProductMode','SpecifyPrecision',...
		'ProductWordLength',40,'ProductFractionLength',30);
c = mpy(F, a, b) 
c =
 
    8.5397


          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Signed
            WordLength: 40
        FractionLength: 30

Алгоритмы

c = mpy(F,a,b) подобно тому, как

a.fimath = F;
b.fimath = F;
c = a .* b

c =
    8.5397

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Signed
            WordLength: 40
        FractionLength: 30

        RoundingMethod: nearest
        OverflowAction: saturate
           ProductMode: SpecifyPrecision
     ProductWordLength: 40
 ProductFractionLength: 30
               SumMode: FullPrecision

но не идентично. Когда вы используете mpy, а fimath свойства a и b не изменяются, и выходные fi c объекта не имеет локального fimath. Когда вы используете синтаксис c = a .* b, где a и b иметь свои собственные fimath объекты, выходные fi c объекта получает то же fimath объект как входы a и b. Дополнительные сведения см. в разделе "Правила fimath для арифметики с фиксированной точкой" Руководства пользователя по Fixed-Point Designer™ ".

Расширенные возможности

.

См. также

| | | | | | | |

Представлено до R2006a