Avatar ·

Función estándar sign (signum, sgn) en C++: ¿existe y cómo implementarla?

¡Hola, colegas! Estoy escribiendo un pequeño programa en C++ para análisis numérico y necesito una función que devuelva el signo de un número: -1 para negativos, 0 para cero y 1 para positivos. En matemáticas se llama signum o sgn. Revisé la documentación de y , pero no encontré nada similar. En Python existe numpy.sign(), en MATLAB existe sign(), y en C++ hay silencio. ¿De verdad no hay algo tan elemental en la biblioteca estándar de C++? Aquí hay un ejemplo de lo que quiero hacer: ```cpp #include #include // ¿tal vez aquí? int main() { double x = -5.7; // Me gustaría escribir algo como: // int s = sign(x); // Pero el compilador se queja de que sign no está declarado. // Tengo que escribir parches: int s; if (x > 0) s = 1; else if (x < 0) s = -1; else s = 0; std::cout << "sign(" << x << ") = " << s << std::endl; return 0; } ``` Esto funciona, pero se ve horrible. Para enteros puedo usar un truco