Namespaces
Variants

std:: exp2, std:: exp2f, std:: exp2l

From cppreference.net
Common mathematical functions
Nearest integer floating point operations
(C++11)
(C++11)
(C++11) (C++11) (C++11)
Floating point manipulation functions
(C++11) (C++11)
(C++11)
(C++11)
Classification and comparison
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
Types
(C++11)
(C++11)
(C++11)
Macro constants
Défini dans l'en-tête <cmath>
(1)
float exp2 ( float num ) ;

double exp2 ( double num ) ;

long double exp2 ( long 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 >

exp2 ( const V & v_num ) ;
(S) (depuis C++26)
Défini dans l'en-tête <cmath>
template < class Integer >
double exp2 ( Integer num ) ;
(A) (constexpr depuis C++26)
1-3) Calcule 2 élevé à la puissance donnée num . La bibliothèque fournit des surcharges de 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 .
(Voir math-floating-point et deduced-simd-t pour leurs définitions.)
(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)