std::riemann_zeta, std::riemann_zetaf, std::riemann_zetal
From cppreference.com
< cpp | numeric | special functions
| ヘッダー <cmath> で定義 |
||
| (1) | ||
float riemann_zeta ( float num ); double riemann_zeta ( double num ); |
(C++17以降) (C++23まで) |
|
| /* floating-point-type */ riemann_zeta( /* floating-point-type */ num ); |
(C++23から) | |
| float riemann_zetaf( float num ); |
(2) | (C++17以降) |
| long double riemann_zetal( long double num ); |
(3) | (C++17以降) |
| ヘッダー <cmath> で定義 |
||
| template< class Integer > double riemann_zeta ( Integer num ); |
(A) | (C++17以降) |
1-3) num のリーマンゼータ関数を計算します。ライブラリは、パラメータ num の型として、すべての cv-修飾されていない浮動小数点型に対する
std::riemann_zeta のオーバーロードを提供します。(since C++23)A) すべての整数型に対する追加のオーバーロードが提供されます。これらは double として扱われます。
目次 |
[編集] パラメータ
| num | - | 浮動小数点数または値 |
[編集] 戻り値
エラーが発生しない場合、num のリーマンゼータ関数、ζ(num) の値。これは実軸全体で定義されます。
- num>1 の場合、Σ∞
n=1n-num - 0≤num≤1 の場合、
Σ∞1 21-num
-1
n=1 (-1)n
n-num - num<0 の場合、2num
πnum-1
sin(
)Γ(1−num)ζ(1−num)πnum 2
[編集] エラー処理
math_errhandling で指定されたとおりにエラーが報告される場合があります。
- 引数が NaN の場合、NaN が返され、ドメインエラーは報告されません。
[編集] 注記
C++17をサポートしないが、ISO 29124:2010をサポートする実装では、実装によって__STDCPP_MATH_SPEC_FUNCS__が少なくとも201003L以上の値に定義され、ユーザーが標準ライブラリヘッダをインクルードする前に__STDCPP_WANT_MATH_SPEC_FUNCS__を定義した場合、この関数が提供されます。
ISO 29124:2010をサポートしないが、TR 19768:2007 (TR1) をサポートする実装では、tr1/cmathヘッダおよびstd::tr1名前空間でこの関数が提供されます。
この関数の実装は、boost.math でも利用可能です。
追加のオーバーロードは (A) とまったく同じように提供される必要はありません。整数型の引数 num に対して、std::riemann_zeta(num) が std::riemann_zeta(static_cast<double>(num)) と同じ効果を持つことを保証するのに十分であればよいのです。
[編集] 例
このコードを実行
#include <cmath> #include <format> #include <iostream> #include <numbers> int main() { constexpr auto π = std::numbers::pi; // spot checks for well-known values 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); }
出力
ζ(-1) = -0.08333 ζ(0) = -0.50000 ζ(1) = +inf ζ(0.5) = -1.46035 ζ(2) = +1.64493 π²/6 = +1.64493
[編集] 外部リンク
| Weisstein, Eric W. "Riemann Zeta Function." MathWorld — A Wolfram Web Resourceより。 |