Main Content

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 = 

    -1
b = fi(1,T)
b = 

    0.9922

Because 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.9922

Because 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