给定 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)。