std:: exp2, std:: exp2f, std:: exp2l
|
Défini dans l'en-tête
<cmath>
|
||
| (1) | ||
|
float
exp2
(
float
num
)
;
double
exp2
(
double
num
)
;
|
(jusqu'à C++23) | |
|
/*floating-point-type*/
exp2 ( /*floating-point-type*/ num ) ; |
(depuis C++23)
(constexpr depuis C++26) |
|
|
float
exp2f
(
float
num
)
;
|
(2) |
(depuis C++11)
(constexpr depuis C++26) |
|
long
double
exp2l
(
long
double
num
)
;
|
(3) |
(depuis C++11)
(constexpr depuis C++26) |
|
Surcharge SIMD
(depuis C++26)
|
||
|
Défini dans l'en-tête
<simd>
|
||
|
template
<
/*math-floating-point*/
V
>
constexpr
/*deduced-simd-t*/
<
V
>
|
(S) | (depuis C++26) |
|
Surcharges supplémentaires
(depuis C++11)
|
||
|
Défini dans l'en-tête
<cmath>
|
||
|
template
<
class
Integer
>
double exp2 ( Integer num ) ; |
(A) | (constexpr depuis C++26) |
std::exp2
pour tous les types à virgule flottante non qualifiés cv comme type du paramètre.
(depuis C++23)
|
S)
La surcharge SIMD effectue un calcul
std::exp2
élément par élément sur
v_num
.
|
(depuis C++26) |
|
A)
Des surcharges supplémentaires sont fournies pour tous les types entiers, qui sont traités comme
double
.
|
(depuis C++11) |
Table des matières |
Paramètres
| num | - | valeur à virgule flottante ou entière |
Valeur de retour
Si aucune erreur ne se produit, l'exponentielle de base
2
de
num
(
2
num
) est retournée.
Si une erreur de plage due à un dépassement de capacité se produit,
+HUGE_VAL
,
+HUGE_VALF
, ou
+HUGE_VALL
est renvoyé.
Si une erreur de plage se produit en raison d'un dépassement inférieur, le résultat correct (après arrondi) est retourné.
Gestion des erreurs
Les erreurs sont signalées comme spécifié dans math_errhandling .
Si l'implémentation prend en charge l'arithmétique à virgule flottante IEEE (IEC 60559),
- Si l'argument est ±0, 1 est retourné.
- Si l'argument est -∞, +0 est retourné.
- Si l'argument est +∞, +∞ est retourné.
- Si l'argument est NaN, NaN est retourné.
Notes
Les surcharges supplémentaires ne sont pas requises d'être fournies exactement comme (A) . Elles doivent seulement être suffisantes pour garantir que pour leur argument num de type entier, std :: exp2 ( num ) ait le même effet que std :: exp2 ( static_cast < double > ( num ) ) .
Pour les exposants entiers, il peut être préférable d'utiliser std::ldexp .
Exemple
#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'; // valeurs spéciales std::cout << "exp2(-0) = " << std::exp2(-0.0) << '\n' << "exp2(-Inf) = " << std::exp2(-INFINITY) << '\n'; // gestion d'erreur 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 déclenchée\n"; }
Sortie possible :
exp2(4) = 16
exp2(0.5) = 1.41421
exp2(-4) = 0.0625
exp2(-0) = 1
exp2(-Inf) = 0
exp2(1024) = inf
errno == ERANGE: Résultat numérique hors limites
FE_OVERFLOW déclenchée
Voir aussi
|
(C++11)
(C++11)
|
retourne
e
élevé à la puissance donnée (
e
x
)
(fonction) |
|
(C++11)
(C++11)
(C++11)
|
retourne
e
élevé à la puissance donnée, moins
1
(
e
x
-1
)
(fonction) |
|
(C++11)
(C++11)
|
multiplie un nombre par
2
élevé à une puissance entière
(fonction) |
|
(C++11)
(C++11)
(C++11)
|
logarithme en base
2
du nombre donné (
log
2
(x)
)
(fonction) |
|
Documentation C
pour
exp2
|
|