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