mpy
Multiply two objects using fimath
object
Syntax
c = mpy(F,a,b)
Description
c = mpy(F,a,b)
performs elementwise multiplication
on a
and b
using fimath
object F
.
This is helpful in cases when you want to override the fimath
objects
of a
and b
, or if the fimath
properties
associated with a
and b
are
different. The output fi
object c
has
no local fimath.
a
and b
can both be fi
objects
with the same dimensions unless one is a scalar. If either a
or b
is
scalar, then c
has the dimensions of the nonscalar
object. a
and b
can also be
doubles, singles, or integers.
Examples
In this example, c
is the 40-bit product
of a
and b
with fraction length
30.
a = fi(pi); b = fi(exp(1)); F = fimath('ProductMode','SpecifyPrecision',... 'ProductWordLength',40,'ProductFractionLength',30); c = F.mpy(a, b)
c = 8.5397 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 40 FractionLength: 30
Algorithms
c = mpy(F,a,b)
is similar to
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
but not identical. When you use mpy
, the fimath
properties
of a
and b
are not modified,
and the output fi
object c
has
no local fimath. When you use the syntax c = a .* b
,
where a
and b
have their own fimath
objects,
the output fi
object c
gets
assigned the same fimath
object as inputs a
and b
.
See fimath Rules for Fixed-Point Arithmetic in the Fixed-Point Designer™ User's
Guide for more information.
Extended Capabilities
Version History
Introduced before R2006a