Espacios de nombres
Variantes
Acciones

std::riemann_zeta, std::riemann_zetaf, std::riemann_zetal

De cppreference.com
 
 
 
 
Definido en el archivo de encabezado <cmath>
double      riemann_zeta( double arg );

float       riemann_zeta( float arg );
long double riemann_zeta( long double arg );
float       riemann_zetaf( float arg );

long double riemann_zetal( long double arg );
(1) (desde C++17)
double      riemann_zeta( TipoEntero arg );
(2) (desde C++17)
1) Calcula la función zeta de Riemann de arg.
2) Un conjunto de sobrecargas o una función que acepta un argumento de cualquier tipo entero. Equivalente a (1) después de convertir el argumento a double.

Contenido

[editar] Parámetros

arg - El valor de un tipo de punto flotante o entero.

[editar] Valor de retorno

Si no se generan errores, devuelve el valor de la función zeta de Riemann de arg, ζ(arg), definida para todo el eje real:

  • Para arg>1, Σ
    n=1
    n-arg
    .
  • Para 0≤arg≤1,
    1
    21-arg
    -1
    Σ
    n=1
    (-1)n
    n-arg
    .
  • Para arg<0, 2arg
    πarg-1
    sin(
    πarg
    2
    )Γ(1−arg)ζ(1−arg)
    .

[editar] Manejo de errores

Los errores se pueden informar como se especifica en math_errhandling.

  • Si el argumento es NaN, se devuelve NaN y no se informa de un error de dominio.

[editar] Notas

Las implementaciones que no son compatibles con C++17, pero son compatibles con ISO 29124:2010, proporcionan esta función si __STDCPP_MATH_SPEC_FUNCS__ está definida por la implementación a un valor de al menos 201003L y si el usuario define __STDCPP_WANT_MATH_SPEC_FUNCS__ antes de incluir cualquier archivo de encabezado de la biblioteca estándar.

Las implementaciones que no son compatibles con ISO 29124:2010 pero son compatibles con TR 19768:2007 (TR1), proporcionan esta función en el archivo de encabezado tr1/cmath y el espacio de nombres std::tr1.

Una implementación de esta función también se encuentra disponible en Boost.Math.

[editar] Ejemplo

#include <cmath>
#include <iostream>
#include <numbers>
const auto π² = std::pow(std::numbers::pi,2);
int main()
{
    // verificaciones al azar para valores muy conocidos
    std::cout << "ζ(-1) = " << std::riemann_zeta(-1) << '\n'
              << "ζ(0) = " << std::riemann_zeta(0) << '\n'
              << "ζ(1) = " << std::riemann_zeta(1) << '\n'
              << "ζ(0.5) = " << std::riemann_zeta(0.5) << '\n'
              << "ζ(2) = " << std::riemann_zeta(2) << ' '
              << "(π²/6 = " << π²/6 << ")\n";
}

Salida:

ζ(-1) = -0.0833333
ζ(0) = -0.5
ζ(1) = inf
ζ(0.5) = -1.46035
ζ(2) = 1.64493 (π²/6 = 1.64493)

[editar] Enlaces externos

Weisstein, Eric W. "Función zeta de Riemann." De MathWorld – Un recurso web de Wolfram.