2026a

# divide


将两个 fi 对象相除

函数库:TyFixedPoint

# 语法

c = divide(T,a,b)

# 说明

c = divide(T,a,b) 将 a 的元素除以 b 的元素,结果 c 具有由 numerictype 对象 T 指定的数值类型。


除法运算 fimath 对象的 ProductMode 和 SummMode 等属性不生效。
如果 a 和 b 为斜率-偏置定标,只能是平凡(trival)斜率-偏置定标 (斜率 slope 只能为 2 的幂,偏置 bias 必须为 0)。

# 示例

将两个 fi 对象相除

此示例说明如何控制 divide 函数的精度。
创建一个无符号 fi 对象,其字长为 80 位,采用 2^-83 定标,将表示形式的前导 1 放入最高有效位。用值 0.1 初始化该对象,并检查二进制表示。

using TyFixedPoint
a = fi(0.1, 0, 80, 83);
bin(a)
"11001100110011001100110011001100110011001100110011010000000000000000000000000000"

请注意,无限重复表示在 52 位后截断,因为 IEEE® 标准双精度浮点数的尾数是 52 位。
将上述内容与在定点算术中计算 1/10 进行对比,其中商设置为与之前相同的数值类型。

T = numerictype(false, 80, 83);
a = fi(1);
b = fi(10);
c = divide(T, a, b);
bin(c)
"11001100110011001100110011001100110011001100110011001100110011001100110011001101"

请注意,当您使用 divide 函数时,无论 a 和 b 的精度如何,商都计算到完整的 80 位。因此,fi 对象 c 可比 IEEE® 标准双精度浮点数更精确地表示 1/10。

# 输入参数

T — 输出的数值类型
numerictype 对象

输出的数值类型,指定为 numerictype 对象。

a,b — 分子分母
标量 | 向量 | 矩阵 | 多维数组

分子分母,指定为标量、向量、矩阵或多维数组。
a 和 b 必须均为 fi 对象,并且必须具有相同的维度。

数据类型: fi
复数支持:

# 输出参数

c — 商
标量 | 向量 | 矩阵 | 多维数组

商,以 fi 标量、向量、矩阵或多维数组形式返回。
c 的大小由 a 和 b 的维度的隐式扩展决定。

数据类型: fi

# 另请参阅

fi | fimath | numerictype | add | sub | mpy | sum