Tengo una aplicación C++ en la que necesito comparar dos valores y decidir cuál es mayor. La única complicación es que un número está representado en el espacio de registro, el otro no. Por ejemplo:C++ Exp vs. Log: ¿Cuál es más rápido?
double log_num_1 = log(1.23);
double num_2 = 1.24;
Si quiero comparar num_1
y num_2
, tengo que usar ya sea log()
o exp()
, y me pregunto si uno es más fácil de calcular que el otro (es decir, se ejecuta en menos tiempo, en general). Puede suponer que estoy usando la biblioteca estándar cmath
.
En otras palabras, los siguientes son semánticamente equivalentes, por lo que es más rápido:
if(exp(log_num_1) > num_2)) cout << "num_1 is greater";
o
if(log_num_1 > log(num_2)) cout << "num_1 is greater";
¿Por qué no escribes algunas pruebas y publicas tus resultados? :) – xian