std:: exp2, std:: exp2f, std:: exp2l
|
Definiert in Header
<cmath>
|
||
| (1) | ||
|
float
exp2
(
float
num
)
;
double
exp2
(
double
num
)
;
|
(bis C++23) | |
|
/*floating-point-type*/
exp2 ( /*floating-point-type*/ num ) ; |
(seit C++23)
(constexpr seit C++26) |
|
|
float
exp2f
(
float
num
)
;
|
(2) |
(seit C++11)
(constexpr seit C++26) |
|
long
double
exp2l
(
long
double
num
)
;
|
(3) |
(seit C++11)
(constexpr seit C++26) |
|
SIMD-Überladung
(seit C++26)
|
||
|
Definiert in Header
<simd>
|
||
|
template
<
/*math-floating-point*/
V
>
constexpr
/*deduced-simd-t*/
<
V
>
|
(S) | (seit C++26) |
|
Zusätzliche Überladungen
(seit C++11)
|
||
|
Definiert in Header
<cmath>
|
||
|
template
<
class
Integer
>
double exp2 ( Integer num ) ; |
(A) | (constexpr seit C++26) |
std::exp2
für alle cv-unqualifizierten Gleitkommatypen als Typ des Parameters bereit.
(since C++23)
|
S)
Die SIMD-Überladung führt eine elementweise
std::exp2
-Operation auf
v_num
aus.
|
(since C++26) |
|
A)
Zusätzliche Überladungen werden für alle Ganzzahltypen bereitgestellt, die als
double
behandelt werden.
|
(since C++11) |
Inhaltsverzeichnis |
Parameter
| num | - | Gleitkomma- oder Ganzzahlwert |
Rückgabewert
Wenn keine Fehler auftreten, wird die Basis-
2
-Exponentialfunktion von
num
(
2
num
) zurückgegeben.
Wenn ein Bereichsfehler aufgrund von Überlauf auftritt,
+HUGE_VAL
,
+HUGE_VALF
, oder
+HUGE_VALL
wird 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 die Implementierung IEEE-Gleitkommaarithmetik (IEC 60559) unterstützt,
- Wenn das Argument ±0 ist, wird 1 zurückgegeben.
- Wenn das Argument -∞ ist, wird +0 zurückgegeben.
- Wenn das Argument +∞ ist, wird +∞ zurückgegeben.
- Wenn das Argument NaN ist, wird NaN zurückgegeben.
Hinweise
Die zusätzlichen Überladungen müssen nicht exakt wie (A) bereitgestellt werden. Sie müssen lediglich sicherstellen, dass für ihr Argument num vom Ganzzahltyp std :: exp2 ( num ) dieselbe Wirkung hat wie std :: exp2 ( static_cast < double > ( num ) ) .
Für ganzzahlige Exponenten kann es vorzuziehen sein, std::ldexp zu verwenden.
Beispiel
#include <cerrno> #include <cfenv> #include <cmath> #include <cstring> #include <iostream> // #pragma STDC FENV_ACCESS ON int main() { std::cout << "exp2(4) = " << std::exp2(4) << '\n' << "exp2(0.5) = " << std::exp2(0.5) << '\n' << "exp2(-4) = " << std::exp2(-4) << '\n'; // special values std::cout << "exp2(-0) = " << std::exp2(-0.0) << '\n' << "exp2(-Inf) = " << std::exp2(-INFINITY) << '\n'; // error handling errno = 0; std::feclearexcept(FE_ALL_EXCEPT); const double inf = std::exp2(1024); const bool is_range_error = errno == ERANGE; std::cout << "exp2(1024) = " << inf << '\n'; if (is_range_error) std::cout << " errno == ERANGE: " << std::strerror(ERANGE) << '\n'; if (std::fetestexcept(FE_OVERFLOW)) std::cout << " FE_OVERFLOW raised\n"; }
Mögliche Ausgabe:
exp2(4) = 16
exp2(0.5) = 1.41421
exp2(-4) = 0.0625
exp2(-0) = 1
exp2(-Inf) = 0
exp2(1024) = inf
errno == ERANGE: Numerical result out of range
FE_OVERFLOW raised
Siehe auch
|
(C++11)
(C++11)
|
gibt
e
hoch der gegebenen Potenz zurück (
e
x
)
(Funktion) |
|
(C++11)
(C++11)
(C++11)
|
gibt
e
hoch der gegebenen Potenz minus
1
zurück (
e
x
-1
)
(Funktion) |
|
(C++11)
(C++11)
|
multipliziert eine Zahl mit
2
hoch einer ganzzahligen Potenz
(Funktion) |
|
(C++11)
(C++11)
(C++11)
|
Basis-
2
Logarithmus der gegebenen Zahl (
log
2
(x)
)
(Funktion) |
|
C-Dokumentation
für
exp2
|
|