# 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 具有相同的 numerictype 和 fimath 属性。
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