table of contents
- bullseye 4.10.0-1
- bullseye-backports 4.17.0-2~bpo11+1
- testing 4.17.0-2
- unstable 4.17.0-2
POW(3) | Linux-Programmierhandbuch | POW(3) |
BEZEICHNUNG¶
pow, powf, powl - Potenzfunktionen
ÜBERSICHT¶
#include <math.h>
double pow(double x, double y); float powf(float x, float y); long double powl(long double x, long double y);
Linken Sie mit der Option -lm.
powf(), powl():
|| /* Seit Glibc 2.19: */ _DEFAULT_SOURCE
|| /* Glibc-Versionen <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE
BESCHREIBUNG¶
Diese Funktionen geben die y-te Potenz von x zurück.
RÜCKGABEWERT¶
Bei erfolgreicher Ausführung geben diese Funktionen die y-te Potenz von x zurück.
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 zurückgegeben.
Bei einem Überlauf des Ergebnisses tritt ein Ergebnis-Bereichsfehler ein; die Funktionen geben entsprechend HUGE_VAL, HUGE_VALF oder HUGE_VALL mit dem mathematisch richtigen Vorzeichen zurück.
Wenn im Ergebnis eine Bereichsunterschreitung auftritt und das Ergebnis nicht darstellbar ist, tritt ein Ergebnis-Bereichsfehler ein. In diesem Fall ist der Rückgabewert 0.
Mit Ausnahme der im Folgenden beschriebenen Fälle ist das Ergebnis ein »NaN«, wenn x oder y ein »NaN« ist.
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).
Wenn x gleich +0 (-0) und y eine ungerade ganze Zahl größer als 0 ist, ist das Ergebnis +0 (-0).
Wenn x gleich 0 und y größer 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 der Absolutwert von x kleiner als 1 ist und y negativ unendlich ist, ist das Ergebnis positiv unendlich.
Wenn der Absolutwert von x größer 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 größer 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 größer 0 ist, ist das Ergebnis negativ unendlich.
Wenn x negativ unendlich und y größer 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 größer als Null ist, ist das Ergebnis positiv unendlich.
Wenn x gleich +0 oder -0 und y eine ungerade ganze Zahl kleiner als 0 ist, tritt ein Polfehler ein. Der Rückgabewert 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 Rückgabewert ist dann HUGE_VAL, HUGE_VALF oder HUGE_VALL.
FEHLER¶
In math_error(7) erfahren Sie, wie Sie Fehler bei der Ausführung mathematischer Funktionen erkennen.
Die folgenden Fehler können auftreten:
- Eingabe-Bereichsfehler: x ist negativ und y ist eine endliche, nicht ganze Zahl (noninteger).
- errno wird auf EDOM gesetzt. Es wird der Fließkomma-Ausnahmefehler »unzulässige Fließkommazahl« (FE_INVALID) ausgelöst.
- Polfehler: x ist 0 und y ist negativ.
- errno wird auf ERANGE gesetzt (siehe aber FEHLER). Es wird der Fließkomma-Ausnahmefehler »Division durch Null« (FE_DIVBYZERO) ausgelöst.
- Ergebnis-Bereichsfehler: Überlauf
- errno wird auf ERANGE gesetzt. Es wird der Fließkomma-Ausnahmefehler »Überlauf« (FE_OVERFLOW) ausgelöst.
- Ergebnis-Bereichsfehler: Unterschreitung
- errno wird auf ERANGE gesetzt. Es wird der Fließkomma-Ausnahmefehler »Unterschreitung« (FE_UNDERFLOW) ausgelöst.
ATTRIBUTE¶
Siehe attributes(7) für eine Erläuterung der in diesem Abschnitt verwandten Ausdrücke.
Schnittstelle | Attribut | Wert |
pow(), powf(), powl() | Multithread-Fähigkeit | MT-Safe |
KONFORM ZU¶
C99, POSIX.1-2001, POSIX.1-2008.
Die Variante, die double zurückgibt, ist außerdem konform zu SVr4, 4.3BSD, C89.
FEHLER¶
Historische Fehler (jetzt behoben)¶
Vor Glibc 2.28 war pow() für 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 Version 2.16 behoben.
Bis Version 2.9 der Glibc wird beim Eintreten eines Polfehlers errno auf EDOM gesetzt und nicht auf ERANGE, wie es POSIX fordert. Seit Version 2.10 verhält sich Glibc korrekt.
Bis einschließlich Version 2.3.2: wenn ein Überlauf oder Unterlauf auftritt, erzeugt die Glibc-Version von pow() einen zusätzlichen (ungültige) Fließkomma-Ausnahmefehler (FE_INVALID).
SIEHE AUCH¶
KOLOPHON¶
Diese Seite ist Teil der Veröffentlichung 5.10 des Projekts Linux-man-pages. Eine Beschreibung des Projekts, Informationen, wie Fehler gemeldet werden können sowie die aktuelle Version dieser Seite finden sich unter https://www.kernel.org/doc/man-pages/.
ÜBERSETZUNG¶
Die deutsche Übersetzung dieser Handbuchseite wurde von Maik Messerschmidt <Maik.Messerschmidt@gmx.net>, Martin Eberhard Schauer <Martin.E.Schauer@gmx.de> und Helge Kreutzmann <debian@helgefjell.de> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer.
9. Juni 2020 |