我看到了关于std::pow
:What is more efficient? Using pow to square or just multiply it with itself?
旧问题提及std::pow
的变体是std::pow(double, int)
,有些用户说这个版本可能更快。
std::pow(double, int)
比std::pow(double, double)
快吗?如果有,那要快多少?
P.S。标准样板免责声明"我已经知道过早优化是邪恶的,但我是出于学术目的而提出这个优化问题,或者我已经确定将代码行/代码作为瓶颈"
答案 0 :(得分:-2)
期望:
std :: pow(double,int)是log(n)运行时的日志减少for循环。
std :: pow(double x,double y){exp(log(x)* y); }
应该非常接近。