std:: riemann_zeta, std:: riemann_zetaf, std:: riemann_zetal
|
Definido en el encabezado
<cmath>
|
||
| (1) | ||
|
float
riemann_zeta
(
float
num
)
;
double
riemann_zeta
(
double
num
)
;
|
(desde C++17)
(hasta C++23) |
|
|
/* floating-point-type */
riemann_zeta
(
/* floating-point-type */
num
)
;
|
(desde C++23) | |
|
float
riemann_zetaf
(
float
num
)
;
|
(2) | (desde C++17) |
|
long
double
riemann_zetal
(
long
double
num
)
;
|
(3) | (desde C++17) |
|
Definido en el encabezado
<cmath>
|
||
|
template
<
class
Integer
>
double riemann_zeta ( Integer num ) ; |
(A) | (desde C++17) |
std::riemann_zeta
para todos los tipos de punto flotante sin calificación cv como el tipo del parámetro
num
.
(desde C++23)
Contenidos |
Parámetros
| num | - | valor o de punto flotante |
Valor de retorno
Si no ocurren errores, el valor de la función zeta de Riemann de num , ζ(num) , definida para todo el eje real:
-
Para
num>1
,
Σ
∞
n=1 n -num
-
Para
0≤num≤1
,
Σ ∞1 2 1-num
-1
n=1 (-1) n
n -num
-
Para
num<0
,
2
num
π num-1
sin(
)Γ(1−num)ζ(1−num)πnum 2
Manejo de errores
Los errores pueden ser reportados como se especifica en math_errhandling .
- Si el argumento es NaN, se devuelve NaN y no se reporta un error de dominio
Notas
Las implementaciones que no admiten C++17, pero sí admiten
ISO 29124:2010
, proporcionan esta función si
__STDCPP_MATH_SPEC_FUNCS__
está definido por la implementación con un valor de al menos 201003L y si el usuario define
__STDCPP_WANT_MATH_SPEC_FUNCS__
antes de incluir cualquier cabecera de la biblioteca estándar.
Las implementaciones que no admiten ISO 29124:2010 pero sí admiten TR 19768:2007 (TR1), proporcionan esta función en el encabezado
tr1/cmath
y el espacio de nombres
std::tr1
.
Una implementación de esta función también está disponible en boost.math .
Las sobrecargas adicionales no requieren ser proporcionadas exactamente como (A) . Solo necesitan ser suficientes para garantizar que para su argumento num de tipo entero, std :: riemann_zeta ( num ) tenga el mismo efecto que std :: riemann_zeta ( static_cast < double > ( num ) ) .
Ejemplo
#include <cmath> #include <format> #include <iostream> #include <numbers> int main() { constexpr auto π = std::numbers::pi; // verificaciones puntuales para valores conocidos 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); }
Salida:
ζ(-1) = -0.08333 ζ(0) = -0.50000 ζ(1) = +inf ζ(0.5) = -1.46035 ζ(2) = +1.64493 π²/6 = +1.64493
Enlaces externos
| Weisstein, Eric W. "Función Zeta de Riemann." De MathWorld — Un recurso web de Wolfram. |