maxframe.tensor.ldexp#

maxframe.tensor.ldexp(x1, x2, out=None, where=None, **kwargs)[源代码]#

逐元素返回 x1 * 2**x2。

使用尾数 x1 和以2为底的指数 x2 来构造浮点数 x1 * 2**x2

参数:
  • x1 (array_like) -- 乘数张量。

  • x2 (array_like, int) -- 以2为底的指数张量。

  • out (Tensor, None, or tuple of Tensor and None, optional) -- 用于存储结果的位置。如果提供,其形状必须可广播至输入形状。如果未提供或为 None,将返回一个新分配的张量。元组(仅能作为关键字参数)的长度必须等于输出数量。

  • where (array_like, optional) -- True 值表示在该位置计算 ufunc,False 值表示保留输出中的原值。

  • **kwargs

返回:

y -- x1 * 2**x2 的结果。

返回类型:

Tensor or scalar

参见

frexp

x = y1 * 2**y2 返回 (y1, y2),是 ldexp 的逆运算。

备注

不支持复数数据类型,将引发 TypeError。

ldexp 可作为 frexp 的逆运算使用,若单独使用,直接使用表达式 x1 * 2**x2 更为清晰。

示例

>>> import maxframe.tensor as mt
>>> mt.ldexp(5, mt.arange(4)).execute()
array([  5.,  10.,  20.,  40.], dtype=float32)
>>> x = mt.arange(6)
>>> mt.ldexp(*mt.frexp(x)).execute()
array([ 0.,  1.,  2.,  3.,  4.,  5.])