met*_*ddy 20 python function absolute-value
我在abs()和fabs()函数上运行了一些简单的测试,我不明白使用fabs()的优点是什么,如果是:
1)慢一点
2)仅适用于花车
3)如果在不同类型上使用,将抛出异常
In [1]: %timeit abs(5)
10000000 loops, best of 3: 86.5 ns per loop
In [3]: %timeit fabs(5)
10000000 loops, best of 3: 115 ns per loop
In [4]: %timeit abs(-5)
10000000 loops, best of 3: 88.3 ns per loop
In [5]: %timeit fabs(-5)
10000000 loops, best of 3: 114 ns per loop
In [6]: %timeit abs(5.0)
10000000 loops, best of 3: 92.5 ns per loop
In [7]: %timeit fabs(5.0)
10000000 loops, best of 3: 93.2 ns per loop
Run Code Online (Sandbox Code Playgroud)
花车上的速度更慢!
从我所处的位置使用fabs()的唯一优势是使代码更具可读性,因为通过使用它,您明确表明了使用float/double point值的意图
有没有其他用途的fabs()?
Inb*_*ose 20
为什么数学有fabs功能?它和abs builtin函数最终都会调用fabs()进行浮点运算.abs()启动速度更快.
没有什么 - 数学模块提供C89标准libm中的所有内容(+一些扩展),fabs()是一个标准的C89 libm函数.
没有一个明确的(对我来说)为什么一个人比另一个人更快的原因; 听起来很意外; math.fabs()当然可以更快(如当前实现的(通过math_1),它承受了一堆通用的"试图猜测libm是否应该设置errno"浪费的样板(没有可能的域或范围错误)对于fabs())).
似乎没有理由使用fabs.只是abs用于几乎所有目的.
| 归档时间: |
|
| 查看次数: |
7535 次 |
| 最近记录: |