给定 a double x
,我们知道使用它来x*x
代替更有效pow(x,2)
。想象一下,为了简单起见,我们必须计算 : 的平方根,x
因为它是一元运算,为此我们有sqrt(x)
。现在,提高x
到二次方也是一元运算,但我们没有(据我所知)pow2(x)
。
我将自己的实现pow2
为:
inline double pow2(double a){return a*a;}
这应该仍然比 更好pow(a,2)
,但它基于*
非一元运算符。如何实现真正的一元实现pow2
?这会是获得 a 的二次方的最有效方法double
吗?
注意:我知道正实数的每一个实数幂都是一元运算,从实际的角度来看,定义无限数量的pow2
, pow3
, pow3.14
... 是无稽之谈,我对此非常满意pow(double, double)
。