Namespaces
Variants

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

From cppreference.net
double riemann_zeta ( double arg ) ;

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

long double riemann_zetal ( long double arg ) ;
(1)
double riemann_zeta ( IntegralType arg ) ;
(2)
1) Calcule la fonction zêta de Riemann de arg .
2) Un ensemble de surcharges ou un modèle de fonction acceptant un argument de tout type intégral . Équivalent à (1) après conversion de l'argument en double .

Comme toutes les fonctions spéciales, riemann_zeta n'est garantie d'être disponible dans <cmath> que si __STDCPP_MATH_SPEC_FUNCS__ est défini par l'implémentation à une valeur d'au moins 201003L et si l'utilisateur définit __STDCPP_WANT_MATH_SPEC_FUNCS__ avant d'inclure tout en-tête de la bibliothèque standard.

Table des matières

Paramètres

arg - valeur d'un type à virgule flottante ou intégral

Valeur de retour

Si aucune erreur ne se produit, valeur de la fonction zêta de Riemann de arg , ζ(arg) , définie pour l'ensemble de l'axe réel :

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

Gestion des erreurs

Les erreurs peuvent être signalées comme spécifié dans math_errhandling .

  • Si l'argument est NaN, NaN est retourné et aucune erreur de domaine n'est signalée.

Notes

Les implémentations qui ne prennent pas en charge TR 29124 mais prennent en charge TR 19768 fournissent cette fonction dans l'en-tête tr1/cmath et l'espace de noms std::tr1 .

Une implémentation de cette fonction est également disponible dans boost.math .

Exemple

(fonctionne comme illustré avec gcc 6.0)

#define __STDCPP_WANT_MATH_SPEC_FUNCS__ 1
#include <cmath>
#include <iostream>
int main()
{
    // vérifications ponctuelles pour des valeurs connues
    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 = " << std::pow(std::acos(-1), 2) / 6 << ")\n";
}

Sortie :

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

Liens externes

Weisstein, Eric W. "Fonction Zêta de Riemann." De MathWorld--Une ressource Web Wolfram.