Namespaces
Variants

std:: expint, std:: expintf, std:: expintl

From cppreference.net
double expint ( double arg ) ;

double expint ( float arg ) ;
double expint ( long double arg ) ;
float expintf ( float arg ) ;

long double expintl ( long double arg ) ;
(1)
double expint ( IntegralType arg ) ;
(2)
1) Calcule l' intégrale exponentielle de arg .
2) Un ensemble de surcharges ou un modèle de fonction acceptant un argument de tout type intégral . Équivalent à (1) après conversion de l'argument en double .

Comme toutes les fonctions spéciales, expint est uniquement garantie d'être disponible dans <cmath> si __STDCPP_MATH_SPEC_FUNCS__ est défini par l'implémentation à une valeur d'au moins 201003L et si l'utilisateur définit __STDCPP_WANT_MATH_SPEC_FUNCS__ avant d'inclure tout en-tête de la bibliothèque standard.

Table des matières

Paramètres

arg - valeur d'un type à virgule flottante ou Intégral

Valeur de retour

If no errors occur, value of the exponential integral of arg , that is -
-arg
e -t
t
d t
, is returned.

Gestion des erreurs

Les erreurs peuvent être signalées comme spécifié dans math_errhandling .

  • Si l'argument est NaN, NaN est retourné et aucune erreur de domaine n'est signalée.
  • Si l'argument est ±0, -∞ est retourné.

Notes

Les implémentations qui ne prennent pas en charge TR 29124 mais prennent en charge TR 19768 fournissent cette fonction dans l'en-tête tr1/cmath et l'espace de noms std::tr1 .

Une implémentation de cette fonction est également disponible dans boost.math .

Exemple

(fonctionne comme indiqué avec gcc 6.0)

#define __STDCPP_WANT_MATH_SPEC_FUNCS__ 1
#include <cmath>
#include <iostream>
int main()
{
    std::cout << "Ei(0) = " << std::expint(0) << '\n'
              << "Ei(1) = " << std::expint(1) << '\n'
              << "Gompetz constant = " << -std::exp(1) * std::expint(-1) << '\n';
}

Sortie :

Ei(0) = -inf
Ei(1) = 1.89512
Gompetz constant = 0.596347

Liens externes

Weisstein, Eric W. "Exponential Integral." De MathWorld--Une ressource Web Wolfram.