Add two objects using fimath object
c = add(F,a,b)
c = add(F,a,b) adds objects 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 must both be fi objects and must have the same dimensions unless one is a scalar. If either a or b is scalar, then c has the dimensions of the nonscalar object.
In this example, c is the 32-bit sum of a and b with fraction length 16:
a = fi(pi); b = fi(exp(1)); F = fimath('SumMode','SpecifyPrecision',... 'SumWordLength',32,'SumFractionLength',16); c = add(F,a,b) c = 5.8599 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 32 FractionLength: 16
c = add(F,a,b) is similar to
a.fimath = F; b.fimath = F; c = a + b c = 5.8599 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 32 FractionLength: 16 RoundingMethod: Nearest OverflowAction: Saturate ProductMode: FullPrecision SumMode: SpecifyPrecision SumWordLength: 32 SumFractionLength: 16 CastBeforeSum: true
but not identical. When you use add, 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.