std:: riemann_zeta, std:: riemann_zetaf, std:: riemann_zetal
|
Definiert im Header
<cmath>
|
||
| (1) | ||
|
float
riemann_zeta
(
float
num
)
;
double
riemann_zeta
(
double
num
)
;
|
(seit C++17)
(bis C++23) |
|
|
/* floating-point-type */
riemann_zeta
(
/* floating-point-type */
num
)
;
|
(seit C++23) | |
|
float
riemann_zetaf
(
float
num
)
;
|
(2) | (seit C++17) |
|
long
double
riemann_zetal
(
long
double
num
)
;
|
(3) | (seit C++17) |
|
Definiert im Header
<cmath>
|
||
|
template
<
class
Integer
>
double riemann_zeta ( Integer num ) ; |
(A) | (seit C++17) |
std::riemann_zeta
für alle cv-unqualifizierten Gleitkommatypen als Typ des Parameters
num
an.
(since C++23)
Inhaltsverzeichnis |
Parameter
| num | - | Gleitkomma- oder Ganzzahlwert |
Rückgabewert
Wenn keine Fehler auftreten, Wert der Riemannschen Zetafunktion von num , ζ(num) , definiert für die gesamte reelle Achse:
-
Für
num>1
,
Σ
∞
n=1 n -num
-
Für
0≤num≤1
,
Σ ∞1 2 1-num
-1
n=1 (-1) n
n -num
-
Für
num<0
,
2
num
π num-1
sin(
)Γ(1−num)ζ(1−num)πnum 2
Fehlerbehandlung
Fehler können gemäß den Angaben in math_errhandling gemeldet werden.
- Wenn das Argument NaN ist, wird NaN zurückgegeben und kein Domänenfehler gemeldet
Hinweise
Implementierungen, die C++17 nicht unterstützen, aber
ISO 29124:2010
unterstützen, stellen diese Funktion bereit, wenn
__STDCPP_MATH_SPEC_FUNCS__
durch die Implementierung auf einen Wert von mindestens 201003L definiert wird und wenn der Benutzer
__STDCPP_WANT_MATH_SPEC_FUNCS__
definiert, bevor er Standardbibliotheksheader einbindet.
Implementierungen, die ISO 29124:2010 nicht unterstützen, aber TR 19768:2007 (TR1) 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 .
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 :: riemann_zeta ( num ) die gleiche Wirkung hat wie std :: riemann_zeta ( static_cast < double > ( num ) ) .
Beispiel
#include <cmath> #include <format> #include <iostream> #include <numbers> int main() { constexpr auto π = std::numbers::pi; // Stichproben für bekannte Werte for (const double x : {-1.0, 0.0, 1.0, 0.5, 2.0}) std::cout << std::format("ζ({})\t= {:+.5f}\n", x, std::riemann_zeta(x)); std::cout << std::format("π²/6\t= {:+.5f}\n", π * π / 6); }
Ausgabe:
ζ(-1) = -0.08333 ζ(0) = -0.50000 ζ(1) = +inf ζ(0.5) = -1.46035 ζ(2) = +1.64493 π²/6 = +1.64493
Externe Links
| Weisstein, Eric W. "Riemann Zeta Function." Von MathWorld — Eine Wolfram Web Resource. |