Created attachment 192060 [details] pow.cc powl produces inaccurate results. The attached program prints different results, depending on it using powl or not. In the unoptimized case, it used powl: > $ c++ -o pow pow.cc && pow > /tmp/pow-a03910.o: In function `main': > pow.cc:(.text+0x5b): warning: powl has lower than advertised precision > pow(integer{2}, 4.5l) -> 22.627416997969518774880270939320 > std::pow(2.l, 4.5l) -> 22.627416997969518774880270939320 In the optimized case, powl is pre-computed by the compiler: > $ c++ -O3 -o pow pow.cc && pow > pow(integer{2}, 4.5l) -> 22.627416997969520780220609168509 > std::pow(2.l, 4.5l) -> 22.627416997969520780220609168509 The results are different.
Assign to -numerics.