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