2026a

# fimath


设置定点数学设置

函数库: TyFixedPoint

# 语法

F = fimath()
F = fimath(Name,Value)

# 说明

F = fimath() 使用默认 fimath 属性设置创建一个 fimath 对象。


F = fimath(Name,Value) 通过使用一个或多个名称-值对组参量来指定 fimath 对象的属性。所有未在构造函数中指定的属性都使用默认值。

# 属性

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