You can always write to the following properties of fimath
objects:
Property  Description  Valid Values  

CastBeforeSum  Whether both operands are cast to the sum data type before addition 
 
MaxProductWordLength  Maximum allowable word length for the product data type 
 
MaxSumWordLength  Maximum allowable word length for the sum data type 
 
OverflowAction  Action to take on overflow 
 
ProductBias  Bias of the product data type 
 
ProductFixedExponent  Fixed exponent of the product data type 
 
ProductFractionLength  Fraction length, in bits, of the product data type 
 
ProductMode  Defines how the product data type is determined 
 
ProductSlope  Slope of the product data type 
 
ProductSlopeAdjustmentFactor  Slope adjustment factor of the product data type 
 
ProductWordLength  Word length, in bits, of the product data type 
 
RoundingMethod  Rounding method 
 
SumBias  Bias of the sum data type 
 
SumFixedExponent  Fixed exponent of the sum data type 
 
SumFractionLength  Fraction length, in bits, of the sum data type 
 
SumMode  Defines how the sum data type is determined 
 
SumSlope  Slope of the sum data type 
 
SumSlopeAdjustmentFactor  Slope adjustment factor of the sum data type 
 
SumWordLength  Word length, in bits, of the sum data type 

For details about these properties, refer to the fi Object Properties.
To learn how to specify properties for fimath
objects
in FixedPoint Designer™ software, refer to Setting fimath Object Properties.
The slope of the sum of two fi
objects is
related to the SumSlopeAdjustmentFactor
and SumFixedExponent
properties
by
$$SumSlope\text{=}SumSlopeAdjustmentFactor\times {2}^{SumFixedExponent}$$
If any of these properties are updated, the others are modified accordingly.
In a FullPrecision
sum, the resulting word
length is represented by
$${W}_{s}=\text{integerlength}+{F}_{s}$$
where
$$\text{integerlength}=\mathrm{max}\left({W}_{a}{F}_{a},{W}_{b}{F}_{b}\right)+\mathrm{ceil}\left(\mathrm{log}2\left(NumberOfSummands\right)\right)$$
and
$${F}_{s}=\mathrm{max}({F}_{a},{F}_{b})$$
When the SumMode
is set to KeepLSB
,
the resulting word length and fraction length is determined by
$$\begin{array}{l}{W}_{s}=\text{specifiedinthe}\text{SumWordLength}\text{property}\\ {F}_{s}=\mathrm{max}({F}_{a},{F}_{b})\end{array}$$
When the SumMode
is set to KeepMSB
,
the resulting word length and fraction length is determined by
$$\begin{array}{l}{W}_{s}=\text{specifiedinthe}\text{SumWordLength}\text{property}\\ {F}_{s}={W}_{s}\text{integerlength}\end{array}$$
where
$$\text{integerlength}=\mathrm{max}\left({W}_{a}{F}_{a},{W}_{b}{F}_{b}\right)+\mathrm{ceil}\left(\mathrm{log}2\left(NumberOfSummands\right)\right)$$
When the SumMode
is set to SpecifyPrecision
,
you specify both the word and fraction length or slope and bias of
the sum data type with the SumWordLength
and SumFractionLength
,
or SumSlope
and SumBias
properties
respectively.
The slope of the product of two fi
objects
is related to the ProductSlopeAdjustmentFactor
and ProductFixedExponent
properties
by
$$ProductSlope=ProductSlopeAdjustmentFactor\times {2}^{ProductFixedExponent}$$
If any of these properties are updated, the others are modified accordingly.
In a FullPrecision
multiply, the resulting
word length and fraction length are represented by
$$\begin{array}{l}{W}_{p}={W}_{a}+{W}_{b}\\ {F}_{p}={F}_{a}+{F}_{b}\end{array}$$
When the ProductMode
is KeepLSB
the
word length and fraction length are determined by
$$\begin{array}{l}{W}_{p}=\text{specifiedinthe}\text{ProductWordLength}\text{property}\\ {F}_{p}={F}_{a}+{F}_{b}\end{array}$$
When the ProductMode
is KeepMSB
the
word length and fraction length are
$$\begin{array}{l}{W}_{p}=\text{specifiedinthe}\text{ProductWordLength}\text{property}\\ {F}_{p}={W}_{p}\text{integerlength}\end{array}$$
where
$$\text{integerlength}=({W}_{a}+{W}_{b})({F}_{a}{F}_{b})$$
When the ProductMode
is set to SpecifyPrecision
,
you specify both the word and fraction length or slope and bias of
the product data type with the ProductWordLength
and ProductFractionLength
,
or ProductSlope
and ProductBias
properties
respectively.
For more information about how certain functions use the fimath
properties,
see
You can set properties of fimath
objects
at the time of object creation by including properties after the arguments
of the fimath
constructor function.
For example, to set the overflow action to Saturate
and
the rounding method to Convergent
,
F = fimath('OverflowAction','Saturate','RoundingMethod','Convergent')
F = RoundingMethod: Convergent OverflowAction: Saturate ProductMode: FullPrecision SumMode: FullPrecision
In addition to creating a fimath
object at
the command line, you can also set fimath
properties
using the Insert fimath Constructor dialog box.
For an example of this approach, see Building fimath Object Constructors in a GUI.
You can reference directly into a property for setting or retrieving fimath
object
property values using MATLAB^{®} structurelike referencing. You
do so by using a period to index into a property by name.
For example, to get the RoundingMethod
of F
,
F.RoundingMethod
ans = Convergent
To set the OverflowAction
of F
,
F.OverflowAction = 'Wrap'
F = RoundingMethod: Convergent OverflowAction: Wrap ProductMode: FullPrecision SumMode: FullPrecision