fimath for Rounding and Overflow Modes
Only rounding methods and overflow actions set prior to an operation with
fi objects affect the outcome of those operations. Once you
create a fi object in MATLAB®, changing its rounding or overflow settings does not affect its value. For
example, consider the fi objects a and
b:
p = fipref('NumberDisplay', 'RealWorldValue',... 'NumericTypeDisplay', 'none', 'FimathDisplay', 'none'); T = numerictype('WordLength',8,'FractionLength',7); F = fimath('RoundingMethod','Floor','OverflowAction','Wrap'); a = fi(1,T,F)
a =
-1b = fi(1,T)
b =
0.9922Because you create a with a fimath object
F that has OverflowAction set to
Wrap, the value of a wraps to -1. Conversely,
because you create b with the default
OverflowAction value of Saturate, its value
saturates to 0.9922.
Now, assign the fimath object F to
b:
b.fimath = F
b =
0.9922Because the assignment operation and corresponding overflow and saturation happened
when you created b, its value does not change when you assign it the
new fimath object F.
Note
fi objects with no local fimath and created from a
floating-point value always get constructed with a RoundingMethod
of Nearest and an OverflowAction of
Saturate. To construct fi objects with
different RoundingMethod and OverflowAction
properties, specify the desired RoundingMethod and
OverflowAction properties in the fi
constructor.
For more information about the fimath object and its properties,
see fimath Object Properties