pow(3) Library Functions Manual pow(3) BEZEICHNUNG pow, powf, powl - Potenzfunktionen BIBLIOTHEK Mathematik-Bibliothek (libm, -lm) UBERSICHT #include double pow(double x, double y); float powf(float x, float y); long double powl(long double x, long double y); Mit Glibc erforderliche Feature-Test-Makros (siehe feature_test_macros(7)): powf(), powl(): _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L || /* Seit Glibc 2.19: */ _DEFAULT_SOURCE || /* Glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE BESCHREIBUNG Diese Funktionen geben die y-te Potenz von x zuruck. RUCKGABEWERT Bei erfolgreicher Ausfuhrung geben diese Funktionen die y-te Potenz von x zuruck. Bei einem Uberlauf des Ergebnisses tritt ein Ergebnis-Bereichsfehler ein; die Funktionen geben entsprechend HUGE_VAL, HUGE_VALF oder HUGE_VALL mit dem mathematisch richtigen Vorzeichen zuruck. Wenn im Ergebnis eine Bereichsunterschreitung auftritt und das Ergebnis nicht darstellbar ist, tritt ein Ergebnis-Bereichsfehler ein. In diesem Fall ist der Ruckgabewert 0.0 mit dem geeigneten Vorzeichen. Wenn x gleich +0 oder -0 und y eine ungerade ganze Zahl kleiner als 0 ist, tritt ein Polfehler ein. Der Ruckgabewert ist dann HUGE_VAL, HUGE_VALF oder HUGE_VALL mit dem Vorzeichen von x. Wenn x gleich +0 oder -0 ist und y kleiner als 0 und keine ungerade ganze Zahl ist, tritt ein Polfehler ein. Der Ruckgabewert ist dann HUGE_VAL, HUGE_VALF oder HUGE_VALL. Wenn x gleich +0 (-0) und y eine ungerade ganze Zahl grosser als 0 ist, ist das Ergebnis +0 (-0). Wenn x gleich 0 und y grosser als 0 und keine ungerade ganze Zahl ist, ist das Ergebnis +0. Wenn x gleich -1 und y positiv unendlich oder negativ unendlich ist, ist das Ergebnis 1.0. Wenn x den Wert +1 hat, dann ist das Ergebnis 1.0 (sogar wenn y ein >>NaN<< ist). Wenn y den Wert 0 hat, dann ist das Ergebnis 1.0 (sogar wenn x ein >>NaN<< ist). Falls x ein endlicher Wert kleiner 0 und y endlich und keine ganze Zahl (Integer) ist, tritt ein Eingabe-Bereichsfehler (>>domain error<<) auf und es wird ein NaN zuruckgegeben. Wenn der Absolutwert von x kleiner als 1 ist und y negativ unendlich ist, ist das Ergebnis positiv unendlich. Wenn der Absolutwert von x grosser als 1 und y negativ unendlich ist, ist das Ergebnis +0. Wenn der Absolutwert von x kleiner als 1 und y positiv unendlich ist, ist das Ergebnis +0. Wenn der Absolutwert von x grosser als 1 und y positiv unendlich ist, ist das Ergebnis positiv unendlich. Wenn x negativ unendlich und y eine ungerade ganze Zahl (Integer) kleiner 0 ist, ist das Ergebnis -0. Wenn x negativ unendlich und y keine ungerade ganze Zahl kleiner 0 ist, ist das Ergebnis +0. Wenn x negativ unendlich und y eine ungerade ganze Zahl grosser 0 ist, ist das Ergebnis negativ unendlich. Wenn x negativ unendlich und y grosser als 0 und keine ungerade ganze Zahl ist, ist das Ergebnis positiv unendlich. Wenn x positiv unendlich und y kleiner als 0 ist, ist das Ergebnis +0. Wenn x positiv unendlich und y grosser als Null ist, ist das Ergebnis positiv unendlich. Mit Ausnahme der im Vorgehenden beschriebenen Falle ist das Ergebnis ein >>NaN<<, wenn x oder y ein >>NaN<< ist. FEHLER In math_error(7) erfahren Sie, wie Sie Fehler bei der Ausfuhrung dieser Funktionen erkennen. Die folgenden Fehler konnen auftreten: Eingabe-Bereichsfehler: x ist negativ und y ist eine endliche, nicht ganze Zahl (noninteger). errno wird auf EDOM gesetzt. Es wird der Fliesskomma-Ausnahmefehler >>unzulassige Fliesskommazahl<< (FE_INVALID) ausgelost. Polfehler: x ist 0 und y ist negativ. errno wird auf ERANGE gesetzt (siehe aber FEHLER). Es wird der Fliesskomma-Ausnahmefehler >>Division durch Null<< (FE_DIVBYZERO) ausgelost. Ergebnis-Bereichsfehler: Uberlauf errno wird auf ERANGE gesetzt. Es wird ein Fliesskomma-Ausnahmefehler >>Uberlauf<< (FE_OVERFLOW) ausgelost. Ergebnis-Bereichsfehler: Unterschreitung errno wird auf ERANGE gesetzt. Es wird der Fliesskomma-Ausnahmefehler >>Unterschreitung<< (FE_UNDERFLOW) ausgelost. ATTRIBUTE Siehe attributes(7) fur eine Erlauterung der in diesem Abschnitt verwandten Ausdrucke. +--------------------------------+-------------------------+-----------+ |Schnittstelle | Attribut | Wert | +--------------------------------+-------------------------+-----------+ |pow(), powf(), powl() | Multithread-Fahigkeit | MT-Sicher | +--------------------------------+-------------------------+-----------+ STANDARDS C11, POSIX.1-2008. GESCHICHTE C99, POSIX.1-2001. Die Variante, die double zuruckgibt, ist ausserdem konform zu SVr4, 4.3BSD, C89. FEHLER Historische Fehler (jetzt behoben) Vor Glibc 2.28 war pow() fur bestimmte (seltene) Eingaben auf einigen Architekturen (z.B. X86-64) mehr als 10.000-fach langsamer als bei nahe beiliegenden Eingaben. Dies betrifft nur pow() und nicht powf() oder powl(). Dieses Problem wurde in Glibc 2.28 behoben. Eine Reihe von Fehlern in der Glibc-Implementierung von pow() wurde in Glibc 2.16 behoben. Bis einschliesslich Glibc 2.9 wurde errno bei Auftreten eines Polfehlers auf EDOM gesetzt, statt auf das von POSIX vorgeschriebene ERANGE. Seit Glibc 2.10 verhalt sich Glibc richtig. Bis einschliesslich Glibc 2.3.2: wenn ein Uberlauf oder Unterlauf auftritt, erzeugt die Glibc-Version von pow() einen zusatzlichen (ungultigen) Fliesskomma-Ausnahmefehler (FE_INVALID). SIEHE AUCH cbrt(3), cpow(3), sqrt(3) UBERSETZUNG Die deutsche Ubersetzung dieser Handbuchseite wurde von Maik Messerschmidt , Martin Eberhard Schauer und Helge Kreutzmann erstellt. Diese Ubersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezuglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG ubernommen. Wenn Sie Fehler in der Ubersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Ubersetzer . Linux man-pages 6.06 31. Oktober 2023 pow(3)