2026a

# abs


fi 对象的绝对值

函数库: TyFixedPoint

# 语法

y = abs(x)
y = abs(x,T)
y = abs(x,F)
y = abs(x,T,F)

# 说明

y = abs(x) 返回定点数 x 的 绝对值 y,y 与 x 具有相同的 numerictypefimath 属性。


y = abs(x,T) 返回定点数 x 的 绝对值 y,y 与 x 具有相同的 fimath 属性,y 的 numerictype 为 T。


y = abs(x,F) 返回定点数 x 的 绝对值 y,采用 fimath F 进行计算,y 与 x 具有相同的 numerictype 属性,y 的 fimath 为默认的 fimath。


y = abs(x,T,F) 返回定点数 x 的 绝对值 y,采用 fimath F 进行计算,y 的 numerictype 属性为 T,y 的 fimath 为默认的 fimath。

# 示例

求定点实数的绝对值

使用默认属性设置创建实数 fi 对象。

using TyFixedPoint
a = fi(-128.0)
-128.0

DataTypeMode:   Fixed_point_binary_point_scaling
Signedness:     Signed
WordLength:     16
FractionLength: 8

求实数 fi 对象的绝对值。

y = abs(a)
127.99609375

DataTypeMode:   Fixed_point_binary_point_scaling
Signedness:     Signed
WordLength:     16
FractionLength: 8
求定点复数的绝对值

使用默认属性设置创建复数 fi 对象。

using TyFixedPoint
r = fi(-1,1,16,15);
i = fi(0,1,16,15);
a = complex(r,i)
-1.0+0.0im

DataTypeMode:   Fixed_point_binary_point_scaling
Signedness:     Signed
WordLength:     16
FractionLength: 15

求复数 fi 对象的绝对值。

y = abs(a)
0.999969482421875

DataTypeMode:   Fixed_point_binary_point_scaling
Signedness:     Signed
WordLength:     16
FractionLength: 15
指定 numerictype 和 fimath 属性,求定点实数的绝对值

使用 fimath("OverflowAction","Wrap") 数学设置创建实数 fi 对象。

using TyFixedPoint
a = fi(-1,1,6,5, fimath("OverflowAction","Wrap"));
y = abs(a);
infoall(y)
-1.0

DataTypeMode:   Fixed_point_binary_point_scaling
Signedness:     Signed
WordLength:     6
FractionLength: 5

CastBeforeSum:                0
MaxProductWordLength:         65535
MaxSumWordLength:             65535
OverflowAction:               Wrap
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
F = fimath("OverflowAction","Saturate");
y = abs(a,F);
infoall(y)
0.96875

DataTypeMode:   Fixed_point_binary_point_scaling
Signedness:     Signed
WordLength:     6
FractionLength: 5

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

使用数值类型(定标)属性 T 和数学设置属性 F,求实数 fi 对象的绝对值。
fimath 对象 F 仅控制求解过程,返回的计算结果中关联默认 fimath 属性。

T = numerictype(0,6,5);
y = abs(a,T,F);
infoall(y)
1.0
 
DataTypeMode:   Fixed_point_binary_point_scaling
Signedness:     Unsigned
WordLength:     6
FractionLength: 5
 
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
指定 numerictype 和 fimath 属性,求定点复数的绝对值

使用 fimath("OverflowAction","Wrap") 数学设置创建复数 fi 对象。

using TyFixedPoint
a = fi(-1-im,1,16,15, fimath("OverflowAction","Wrap"));
T = numerictype(0,16,15);
y = abs(a,T);
infoall(y)
1.414215087890625
 
DataTypeMode:   Fixed_point_binary_point_scaling
Signedness:     Unsigned
WordLength:     16
FractionLength: 15
 
CastBeforeSum:                0
MaxProductWordLength:         65535
MaxSumWordLength:             65535
OverflowAction:               Wrap
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

使用数值类型(定标)属性 T 和数学设置属性 F,求复数 fi 对象的绝对值。
fimath 对象 F 仅控制求解过程,返回的计算结果中关联默认 fimath 属性。

T = numerictype(0,16,15);
F = fimath("OverflowAction","Saturate","SumMode",
        "KeepLSB","SumWordLength",16,
        "ProductMode","SpecifyPrecision",
        "ProductWordLength",16,
        "ProductFractionLength",15);
y = abs(a,T,F);
infoall(y)
1.4141845703125

DataTypeMode:   Fixed_point_binary_point_scaling
Signedness:     Unsigned
WordLength:     16
FractionLength: 15

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

# 输入参数

x — 输入 fi 数组
标量 | 向量 | 矩阵 | 多维数组

输入 fi 数组,指定为标量、向量、矩阵或 多维数组。
abs 支持二进制小数点定标 和 trival 斜率-偏置定标(偏置为 0.0,斜率为 1.0)。
abs 对于实数和复数采用了不同的算法,复数时为其实部虚部平方和的开方。

数据类型: fi
复数支持:

T — 指定输出中的 numerictype 属性
numerictype 对象

指定输出 fi 数组的数值类型(定标)属性 numerictype 对象。

示例: T = numerictype(0,24,12)

F — 指定输出中的 fimath 属性
fimath 对象

指定输出 fi 数组的数学设置属性 fimath 对象。

示例: F = fimath("OverflowAction","Saturate","RoundingMethod","Convergent")

# 输出参数

y — 定点数的绝对值
标量 | 向量 | 矩阵 | 多维数组

定点数的绝对值,指定为 fi 标量、向量、矩阵或 多维数组。

数据类型: fi

# 另请参阅

fi | fimath | numerictype | infoall