pow, powf, powl
|
Definiert in Header
<math.h>
|
||
|
float
powf
(
float
base,
float
exponent
)
;
|
(1) | (seit C99) |
|
double
pow
(
double
base,
double
exponent
)
;
|
(2) | |
|
long
double
powl
(
long
double
base,
long
double
exponent
)
;
|
(3) | (seit C99) |
|
Definiert in Header
<tgmath.h>
|
||
|
#define pow( base, exponent )
|
(4) | (seit C99) |
powl
aufgerufen. Andernfalls, wenn ein Argument einen Ganzzahltyp oder den Typ
double
hat, wird
pow
aufgerufen. Andernfalls wird
powf
aufgerufen. Wenn mindestens ein Argument komplex oder imaginär ist, ruft das Makro die entsprechende komplexe Funktion auf (
cpowf
,
cpow
,
cpowl
).
Inhaltsverzeichnis |
Parameter
| base | - | Basis als Gleitkommawert |
| exponent | - | Exponent als Gleitkommawert |
Rückgabewert
Wenn keine Fehler auftreten,
base
hoch
exponent
(
base
exponent
) zurückgegeben wird.
Wenn ein Domänenfehler auftritt, wird ein implementierungsdefinierter Wert zurückgegeben (NaN, sofern unterstützt).
Wenn ein Polfehler oder ein Bereichsfehler aufgrund von Überlauf auftritt,
wird
±
HUGE_VAL
,
±HUGE_VALF
, oder
±HUGE_VALL
zurückgegeben.
Wenn ein Bereichsfehler aufgrund von Unterlauf auftritt, wird das korrekte Ergebnis (nach Rundung) zurückgegeben.
Fehlerbehandlung
Fehler werden gemeldet, wie in
math_errhandling
spezifiziert.
Wenn base endlich und negativ ist und exponent endlich und nicht ganzzahlig ist, tritt ein Domänenfehler auf und ein Wertebereichsfehler kann auftreten.
Wenn base null ist und exponent null ist, kann ein Definitionsbereichsfehler auftreten.
Wenn base null ist und exponent negativ ist, kann ein Definitionsfehler oder ein Polfehler auftreten.
Wenn die Implementierung IEEE-Gleitkommaarithmetik (IEC 60559) unterstützt,
-
pow
(
+
0
, exponent
)
, wobei
exponent
eine negative ungerade Ganzzahl ist, gibt
+∞zurück und löst FE_DIVBYZERO aus -
pow
(
-
0
, exponent
)
, wobei
exponent
eine negative ungerade Ganzzahl ist, gibt
-∞zurück und löst FE_DIVBYZERO aus - pow ( ± 0 , exponent ) , wobei exponent negativ, endlich und eine gerade ganze Zahl oder eine Nicht-Ganzzahl ist, gibt +∞ zurück und löst FE_DIVBYZERO aus
- pow ( ± 0 , - ∞ ) gibt +∞ zurück und kann FE_DIVBYZERO auslösen (bis C23)
- pow ( + 0 , exponent ) , wobei exponent eine positive ungerade ganze Zahl ist, gibt +0 zurück
- pow ( - 0 , exponent ) , wobei exponent eine positive ungerade ganze Zahl ist, gibt -0 zurück
- pow ( ± 0 , exponent ) , wobei exponent eine positive nicht-ganzzahlige Zahl oder eine positive gerade ganze Zahl ist, gibt +0 zurück
- pow ( - 1 , ±∞ ) liefert 1
-
pow
(
+
1
, exponent
)
liefert
1
für jeden
exponent
, selbst wenn
exponent
NaNist -
pow
(
base, ±
0
)
liefert
1
für jede beliebige
base
, selbst wenn
base
NaNist -
pow
(
base, exponent
)
gibt
NaNzurück und löst FE_INVALID aus, wenn base endlich und negativ ist und exponent endlich und nicht ganzzahlig ist. -
pow
(
base,
-
∞
)
liefert +∞ für jedes
|base|<1 -
pow
(
base,
-
∞
)
liefert +0 für jedes
|base|>1 -
pow
(
base,
+
∞
)
liefert +0 für jedes
|base|<1 -
pow
(
base,
+
∞
)
liefert +∞ für jedes
|base|>1 - pow ( - ∞, exponent ) gibt -0 zurück, wenn exponent eine negative ungerade ganze Zahl ist
- pow ( - ∞, exponent ) gibt +0 zurück, wenn exponent eine negative Nicht-Ganzzahl oder negative gerade Ganzzahl ist
- pow ( - ∞, exponent ) gibt -∞ zurück, wenn exponent eine positive ungerade Ganzzahl ist
- pow ( - ∞, exponent ) liefert +∞ zurück, wenn exponent eine positive nicht-ganzzahlige Zahl oder eine positive gerade ganze Zahl ist
- pow ( + ∞, exponent ) gibt +0 für jeden negativen exponent zurück
- pow ( + ∞, exponent ) gibt +∞ für jeden positiven exponent
- außer wo oben angegeben, wenn ein Argument NaN ist, wird NaN zurückgegeben.
Hinweise
Obwohl
pow
nicht verwendet werden kann, um eine Wurzel einer negativen Zahl zu erhalten,
cbrt
wird für den häufigen Fall bereitgestellt, in dem
exponent
gleich
1
/
3
ist.
Beispiel
#include <errno.h> #include <fenv.h> #include <math.h> #include <stdio.h> // #pragma STDC FENV_ACCESS ON int main(void) { // typische Verwendung printf("pow(2, 10) = %f\n", pow(2, 10)); printf("pow(2, 0.5) = %f\n", pow(2, 0.5)); printf("pow(-2, -3) = %f\n", pow(-2, -3)); // spezielle Werte printf("pow(-1, NAN) = %f\n", pow(-1, NAN)); printf("pow(+1, NAN) = %f\n", pow(+1, NAN)); printf("pow(INFINITY, 2) = %f\n", pow(INFINITY, 2)); printf("pow(INFINITY, -1) = %f\n", pow(INFINITY, -1)); // Fehlerbehandlung errno = 0; feclearexcept(FE_ALL_EXCEPT); printf("pow(-1, 1/3) = %f\n", pow(-1, 1.0 / 3)); if (errno == EDOM) perror(" errno == EDOM"); if (fetestexcept(FE_INVALID)) puts(" FE_INVALID raised"); feclearexcept(FE_ALL_EXCEPT); printf("pow(-0, -3) = %f\n", pow(-0.0, -3)); if (fetestexcept(FE_DIVBYZERO)) puts(" FE_DIVBYZERO raised"); }
Mögliche Ausgabe:
pow(2, 10) = 1024.000000
pow(2, 0.5) = 1.414214
pow(-2, -3) = -0.125000
pow(-1, NAN) = nan
pow(+1, NAN) = 1.000000
pow(INFINITY, 2) = inf
pow(INFINITY, -1) = 0.000000
pow(-1, 1/3) = -nan
errno == EDOM: Numerical argument out of domain
FE_INVALID raised
pow(-0, -3) = -inf
FE_DIVBYZERO raised
Referenzen
- C23-Standard (ISO/IEC 9899:2024):
-
- 7.12.7.5 Die pow-Funktionen
-
- 7.27 Typgenerische Mathematik <tgmath.h>
-
- F.10.4.5 Die pow-Funktionen (S. 524-525)
- C17-Standard (ISO/IEC 9899:2018):
-
- 7.12.7.4 Die pow-Funktionen (S. 248-249)
-
- 7.25 Typgenerische Mathematik <tgmath.h> (S. 373-375)
-
- F.10.4.4 Die pow-Funktionen (S. 524-525)
- C11-Standard (ISO/IEC 9899:2011):
-
- 7.12.7.4 Die pow-Funktionen (S. 248-249)
-
- 7.25 Typgenerische Mathematik <tgmath.h> (S. 373-375)
-
- F.10.4.4 Die pow-Funktionen (S. 524-525)
- C99-Standard (ISO/IEC 9899:1999):
-
- 7.12.7.4 Die pow-Funktionen (S. 229)
-
- 7.22 Typgenerische Mathematik <tgmath.h> (S. 335-337)
-
- F.9.4.4 Die pow-Funktionen (S. 461)
- C89/C90 Standard (ISO/IEC 9899:1990):
-
- 4.5.5.1 Die pow-Funktion
Siehe auch
|
(C99)
(C99)
|
berechnet Quadratwurzel (
√
x
)
(Funktion) |
|
(C99)
(C99)
(C99)
|
berechnet Kubikwurzel (
3
√
x
)
(Funktion) |
|
(C99)
(C99)
(C99)
|
berechnet Quadratwurzel der Summe der Quadrate zweier gegebener Zahlen (
√
x
2
+y 2 ) (Funktion) |
|
(C99)
(C99)
(C99)
|
berechnet die komplexe Potenzfunktion
(Funktion) |
|
C++-Dokumentation
für
pow
|
|