VFRoundMode#

产品支持情况#

  • Ascend 950PR&950DT系列产品:支持

  • Atlas A3系列产品:不支持

  • Atlas A2系列产品:不支持

功能说明#

VFRoundMode定义了vf.astype类型转换时的浮点舍入模式。仅在可能导致精度损失且支持该舍入模式的转换中生效,不涉及精度损失的转换路径标记为UNKNOWN(可省略)。

不同转换路径支持的舍入模式不同,详见vf.astype约束说明各表。

原型定义#

class VFRoundMode(enum.Enum):
     CAST_ROUND = ...  # 四舍五入,向远离零的方向舍入
     CAST_RINT = ...  # 默认舍入,向最近的偶数舍入
     CAST_FLOOR = ...  # 向下取整(floor)
     CAST_CEIL = ...  # 向上取整(ceil)
     CAST_TRUNC = ...  # 向零舍入(截断)
     CAST_ODD = ...  # 冯·诺伊曼舍入(最近的奇数)
     CAST_HYBRID = ...  # 混合舍入

约束说明#

不同型号支持的舍入模式有所差异:

  • Ascend 950PR&950DT系列产品:所有舍入模式均支持。

  • Atlas A3系列产品:不支持CAST_HYBRID。

  • Atlas A2系列产品:不支持CAST_HYBRID。

调用示例#

import pypto_pro.language as pl

@pl.vector_function
def vf_kernel(src, preg):
    dst = vf.astype(src, preg, dtype=pl.DT_INT32, round_mode=pl.VFRoundMode.CAST_FLOOR)