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) Berechnet das Exponentialintegral von arg .
2) Ein Satz von Überladungen oder eine Funktionsvorlage, die ein Argument eines beliebigen integralen Typs akzeptiert. Entspricht (1) nach dem Casten des Arguments zu double .

Wie alle speziellen Funktionen ist expint nur garantiert in <cmath> verfügbar, wenn __STDCPP_MATH_SPEC_FUNCS__ von der Implementierung auf einen Wert von mindestens 201003L definiert wurde und wenn der Benutzer __STDCPP_WANT_MATH_SPEC_FUNCS__ definiert, bevor er Standardbibliotheksheader einbindet.

Inhaltsverzeichnis

Parameter

arg - Wert eines Gleitkomma- oder Integraltyps

Rückgabewert

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

Fehlerbehandlung

Fehler können gemäß den Spezifikationen in math_errhandling gemeldet werden.

  • Wenn das Argument NaN ist, wird NaN zurückgegeben und kein Domänenfehler gemeldet.
  • Wenn das Argument ±0 ist, wird -∞ zurückgegeben.

Hinweise

Implementierungen, die TR 29124 nicht unterstützen, aber TR 19768 unterstützen, stellen diese Funktion im Header tr1/cmath und im Namespace std::tr1 bereit.

Eine Implementierung dieser Funktion ist ebenfalls in boost.math verfügbar .

Beispiel

(funktioniert wie dargestellt mit 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';
}

Ausgabe:

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

Externe Links

Weisstein, Eric W. "Exponential Integral." Von MathWorld -- Eine Wolfram Web Resource.