Math.h : Signum!
-
Hi Profis,
kann jemand mir sagen, ob Math.h eine Methode für die Signumfunktion zur Verfügung stellt? Ich habe zwar programmiert, aber ich will wissen, wie es aufgerufen wird.
-
Hi,
Math.h, gibt es nicht.
math.h ist veraltet oder C.
cmath istWas ist Signum denn?
MfG Eisflamme
-
Mis2com schrieb:
Was ist Signum denn?
signum is ne mathematische funktion die einfach das Vorzeichen zurückgibt
also sgn(-1123123) = -1
sgn(2390239) = +1Ich denk in C++ könnt das dann also so aussehen ^^:
inline int sgn(double x) { if (x==0) return 0; else return (x>0) ? 1 : -1; }
Wie man sieht, keine wirklich spannenende Sache
-
int sgn(double x) { int sgn; if (x > 0.0L) sgn= 1.0L; if (x < 0.0L) sgn= -1.0L; if (x == 0.0L) sgn= 0.0L; return sgn; }
Gibt es in C++ wirklich nicht?
-
ich rufe die sgn funktion in einer Stelle :
double R = sgn(q) * sqrt(abs(p) / 3);
obwohl ich die math.h includiert habe, habe ich Fehlermeldung!
error C2065: 'sgn' : nichtdeklarierter Bezeichner Fehler beim Ausführen von cl.exe.
-
Signum schrieb:
int sgn(double x) { int sgn; if (x > 0.0L) sgn= 1.0L; if (x < 0.0L) sgn= -1.0L; if (x == 0.0L) sgn= 0.0L; return sgn; }
Gibt es in C++ wirklich nicht?
Da dürfte:
int sgn(double x) { if (x > 0.0L) return 1.0L; else if (x < 0.0L) return -1.0L; else return 0.0L; }
aber schneller sein.
-
ich habe nicht gefragt, wie man die sgn-fuktion besser programmiert,
sondern ob es in math.h solche Funktion stattfindet. Ich habe nicht gefunden,
aber hat einer mir behauptet, dass es doch drinsein soll.
-
Es gibt keine. Ich möcht sagen, ich hätt schonmal eine sign-Funktion gesehen, aber im Standard kommt sowas nicht vor.
-
template<class T> int signum(T t) { if(t < T(0)) return T(-1); return t > T(0); }
-
*wegeditiert wegen dummheit*