📜  Python – math.ulp(x)函数

📅  最后修改于: 2022-05-13 01:54:20.032000             🧑  作者: Mango

Python – math.ulp(x)函数

ULP 代表“最后位置的单元”。 math.ulp() 是在Python 3.9.0 版本中引入的,它返回浮点数x 的最低有效位的值。在数值分析和计算机科学中,最小精度单位 (ULP) 或最后一个单位是浮点数之间的间距。

笔记:

  • 如果参数是 NaN(不是数字),则输出是 NaN。
  • 如果输入 x 为负,则输出为 ulp(-x)。
  • 如果输入 x 为正无穷大,则输出为 inf。
  • 如果输入为零,则最小的正非规范化可表示浮点数是输出(小于最小正规范化浮点数 sys.float_info.min)。
  • 如果输入值 x 是可表示的最大正浮点数,则 x 的最低有效位的值是输出,这样第一个小于 x 的浮点数是 x – ulp(x)。
  • 否则,如果输入值 x 是一个正有限数,则 x 的最低有效位的值是输出,这样第一个大于 x 的浮点数是 x + ulp(x)。

示例:显示 math.ulp(x) 方法的工作。

Python3
# python program to explain
# math.ulp(x) for different values of x
import math
import sys
 
# when x is NaN
x = float('nan')
print(math.ulp(x))
 
# when x is positive infinity
x = float('inf')
print(math.ulp(x))
 
# when x is negative infinity
print(math.ulp(-x))
 
# when x = 0
x = 0.0
print(math.ulp(x))
 
# when x is maximum representable float
x = sys.float_info.max
print(math.ulp(x))
 
# x is a positive finite number
x = 5
print(math.ulp(x))
 
# when x is a negative number
x = -5
print(math.ulp(x))


输出:

nan
inf
inf
5e-324
1.99584030953472e+292
8.881784197001252e-16
8.881784197001252e-16