# fimath
设置定点数学设置
函数库: TyFixedPoint
# 语法
F = fimath()
F = fimath(Name,Value)
# 说明
F = fimath() 使用默认 fimath 属性设置创建一个 fimath 对象。
F = fimath(Name,Value) 通过使用一个或多个名称-值对组参量来指定 fimath 对象的属性。所有未在构造函数中指定的属性都使用默认值。
# 属性
# 示例
创建默认 fimath 对象
使用默认属性设置创建 fimath 对象。
using TyFixedPoint
F = fimath();
infoall(F)
CastBeforeSum: 0
MaxProductWordLength: 65535
MaxSumWordLength: 65535
OverflowAction: Saturate
ProductBias: 0.0
ProductFixedExponent: -30
ProductFractionLength: 30
ProductMode: FullPrecision
ProductSlope: 9.3132e-10
ProductSlopeAdjustmentFactor: 1.0
ProductWordLength: 32
RoundingMethod: Nearest
SumBias: 0.0
SumFixedExponent: -30
SumFractionLength: 30
SumMode: FullPrecision
SumSlope: 9.3132e-10
SumSlopeAdjustmentFactor: 1.0
SumWordLength: 32
设置 fimath 对象的属性
使用名称-值对组在创建对象时设置 fimath 对象的属性。例如,将溢出操作设置为饱和,将舍入方法设置为收敛。
using TyFixedPoint
F = fimath("OverflowAction","Saturate","RoundingMethod","Convergent");
infoall(F)
CastBeforeSum: 0
MaxProductWordLength: 65535
MaxSumWordLength: 65535
OverflowAction: Saturate
ProductBias: 0.0
ProductFixedExponent: -30
ProductFractionLength: 30
ProductMode: FullPrecision
ProductSlope: 9.3132e-10
ProductSlopeAdjustmentFactor: 1.0
ProductWordLength: 32
RoundingMethod: Convergent
SumBias: 0.0
SumFixedExponent: -30
SumFractionLength: 30
SumMode: FullPrecision
SumSlope: 9.3132e-10
SumSlopeAdjustmentFactor: 1.0
SumWordLength: 32
# 输入参数
# 名称-参数值
将可选的参量对组指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量后,但参量对组的顺序无关紧要。
使用逗号分隔每个名称和值,用双引号将 Name 引起来,Value 值若为字符串类型,也用双引号引起来,数值不需要使用双引号。
示例: F = fimath("OverflowAction","Saturate","RoundingMethod","Convergent","SumWordLength",32)
CastBeforeSum — 在加法运算之前,是否将两个操作数都转换为加和数据类型false 或 0 (默认) | true 或 1
在加法运算之前是否将两个操作数都转换为加和数据类型,指定为数值或逻辑值 1 (true) 或 0 (false)。
注意
当 SumMode 设置为 FullPrecision 时,此属性隐藏。
示例: F = fimath("CastBeforeSum",1)
数据类型: Float32 | Float64 | Int8 | Int16 | Int32 | Int64 | Int128 | UInt8 | UInt16 | UInt32 | UInt64 | UInt128 | Bool
MaxProductWordLength — 乘积数据类型允许的最大字长65535 (默认) | 正整数
加和数据类型允许的最大字长,指定为正整数。
示例: F = fimath("MaxSumWordLength",16)
数据类型: Float32 | Float64 | Int8 | Int16 | Int32 | Int64 | Int128 | UInt8 | UInt16 | UInt32 | UInt64 | UInt128
OverflowAction — 对溢出采取的操作"Saturate" (默认) | "Wrap"
对溢出采取的操作,指定为以下值之一:
- "Saturate" - 溢出时饱和处理为定点范围的最大或最小值;
- "Wrap" - 溢出时绕回。此模式也称为 2 的补码溢出。
示例: F = fimath("OverflowAction","Wrap")
数据类型: String
ProductBias — 乘积数据类型的偏置0 (默认) | 浮点数
乘积数据类型的偏置,指定为浮点数。
示例: F = fimath("ProductBias",1)
数据类型: Float32 | Float64 | Int8 | Int16 | Int32 | Int64 | Int128 | UInt8 | UInt16 | UInt32 | UInt64 | UInt128
ProductFixedExponent — 乘积数据类型的固定指数-30 (默认) | 非零整数
乘积数据类型的固定指数,指定为非零整数。
注意
ProductFractionLength 是 ProductFixedExponent 的负数。更改一个属性会更改另一个属性。
示例: F = fimath("ProductFixedExponent",-20)
数据类型: Float32 | Float64 | Int8 | Int16 | Int32 | Int64 | Int128 | UInt8 | UInt16 | UInt32 | UInt64 | UInt128
ProductFractionLength — 乘积数据类型的小数长度30 (默认) | 非零整数
乘积数据类型的小数长度,以位为单位,指定为非零整数。
注意
ProductFractionLength 是 ProductFixedExponent 的负数。更改一个属性会更改另一个属性。
示例: F = fimath("ProductFractionLength",20)
数据类型: Float32 | Float64 | Int8 | Int16 | Int32 | Int64 | Int128 | UInt8 | UInt16 | UInt32 | UInt64 | UInt128
ProductMode — 如何确定乘积数据类型"FullPrecision" (默认) |"KeepLSB" | "KeepMSB" | "SpecifyPrecision"
如何确定乘积数据类型,指定为以下值之一:
- "FullPrecision" - 保留结果的全精度;
- "KeepLSB" - 保留最低有效位,指定乘积字长,小数长度设置为保持乘积的最低有效位;
- "KeepMSB" - 保留最高有效位,指定乘积字长,小数长度设置为保持乘积的最高有效位;
- "SpecifyPrecision" - 指定乘积的字长和小数长度或乘积的斜率和偏置。
示例: F = fimath("ProductMode","KeepLSB")
数据类型: String
ProductSlope — 乘积数据类型的斜率9.3132e-10 (默认) | 有限正浮点数
乘积数据类型的斜率,指定为有限正浮点数。
注意
ProductSlope = ProductSlopeAdjustmentFactor × 2^ProductFixedExponent
更改其中一个属性会影响其他属性。
示例: F = fimath("ProductSlope",9.3132e-10)
数据类型: Float32 | Float64 | Int8 | Int16 | Int32 | Int64 | Int128 | UInt8 | UInt16 | UInt32 | UInt64 | UInt128
ProductSlopeAdjustmentFactor — 乘积数据类型的斜率调整因子1 (默认) | 大于或等于 1 且小于 2 的浮点数
乘积数据类型的斜率调整因子,指定为大于或等于 1 且小于 2 的浮点数。
注意
ProductSlope = ProductSlopeAdjustmentFactor × 2^ProductFixedExponent
更改其中一个属性会影响其他属性。
示例: F = fimath("ProductSlopeAdjustmentFactor",1)
数据类型: Float32 | Float64 | Int8 | Int16 | Int32 | Int64 | Int128 | UInt8 | UInt16 | UInt32 | UInt64 | UInt128
ProductWordLength — 乘积数据类型的字长32 (默认) | 正整数
乘积数据类型的字长,以位为单位,指定为正整数。
示例: F = fimath("ProductWordLength",64)
数据类型: Float32 | Float64 | Int8 | Int16 | Int32 | Int64 | Int128 | UInt8 | UInt16 | UInt32 | UInt64 | UInt128
RoundingMethod — 要使用的舍入方法"Nearest" (默认) | "Ceiling" | "Convergent" | "Zero" | "Floor" | "Round"
要使用的舍入方法,指定为以下值之一:
- "Nearest" - 向最邻近值方向舍入,结值向正无穷方向舍入;
- "Ceiling" - 向正无穷方向舍入;
- "Convergent" - 向最邻近值方向舍入,结值舍入到最接近的偶数存储整数(偏置最小);
- "Zero" - 向零方向舍入;
- "Floor" - 向负无穷方向舍入;
- "Round" - 向最邻近值方向舍入,负结值向负无穷方向舍入,正结值向正无穷方向舍入。
示例: F = fimath("RoundingMethod","Convergent")
数据类型: String
SumBias — 加和数据类型的偏置0 (默认) | 浮点数
加和数据类型的偏置,指定为浮点数。
示例: F = fimath("SumBias",0)
数据类型: Float32 | Float64 | Int8 | Int16 | Int32 | Int64 | Int128 | UInt8 | UInt16 | UInt32 | UInt64 | UInt128
SumFixedExponent — 加和数据类型的固定指数-30 (默认) | 非零整数
加和数据类型的固定指数,指定为非零整数。
注意
SumFractionLength 是 SumFixedExponent 的负数。更改一个属性会更改另一个属性。
示例: F = fimath("SumFixedExponent",-20)
数据类型: Float32 | Float64 | Int8 | Int16 | Int32 | Int64 | Int128 | UInt8 | UInt16 | UInt32 | UInt64 | UInt128
SumFractionLength — 加和数据类型的小数长度30 (默认) | 非零整数
加和数据类型的小数长度,以位为单位,指定为非零整数。
注意
SumFractionLength 是 SumFixedExponent 的负数。更改一个属性会更改另一个属性。
示例: F = fimath("SumFractionLength",20)
数据类型: Float32 | Float64 | Int8 | Int16 | Int32 | Int64 | Int128 | UInt8 | UInt16 | UInt32 | UInt64 | UInt128
SumMode — 如何确定加和数据类型"FullPrecision" (默认) |"KeepLSB" | "KeepMSB" | "SpecifyPrecision"
如何确定加和数据类型,指定为以下值之一:
- "FullPrecision" - 保留结果的全精度;
- "KeepLSB" - 保留最低有效位,指定加和数据类型的字长,小数长度设置为保持总和的最低有效位;
- "KeepMSB" - 保留最高有效位,指定加和数据类型的字长,小数长度设置为保持总和的最高有效位,并且不超出必要的小数位;
- "SpecifyPrecision" - 指定加和数据类型的字长和小数长度或斜率和偏置。
示例: F = fimath("SumMode","KeepLSB")
数据类型: String
SumSlope — 加和数据类型的斜率9.3132e-10 (默认) | 有限正浮点数
加和数据类型的斜率,指定为浮点数。
注意
SumSlope = SumSlopeAdjustmentFactor × 2^SumFixedExponent
更改其中一个属性会影响其他属性。
示例: F = fimath("SumSlope",9.3132e-10)
数据类型: Float32 | Float64 | Int8 | Int16 | Int32 | Int64 | Int128 | UInt8 | UInt16 | UInt32 | UInt64 | UInt128
SumSlopeAdjustmentFactor — 加和数据类型的斜率调整因子1 (默认) | 大于或等于 1 且小于 2 的浮点数
加和数据类型的斜率调整因子,指定为大于或等于 1 且小于 2 的浮点数。
注意
SumSlope = SumSlopeAdjustmentFactor × 2^SumFixedExponent
更改其中一个属性会影响其他属性。
示例: F = fimath("SumSlopeAdjustmentFactor",1)
数据类型: Float32 | Float64 | Int8 | Int16 | Int32 | Int64 | Int128 | UInt8 | UInt16 | UInt32 | UInt64 | UInt128
SumWordLength — 加和数据类型的字长32 (默认) | 正整数
加和数据类型的字长,以位为单位,指定为正整数。
示例: F = fimath("SumWordLength",64)
数据类型: Float32 | Float64 | Int8 | Int16 | Int32 | Int64 | Int128 | UInt8 | UInt16 | UInt32 | UInt64 | UInt128
# 输出参数
F — 数学设置属性对象fimath 对象
数学设置属性对象。
数据类型: fimath
# 另请参阅
fi | numerictype | setfimath | infoall