Namespaces
Variants

std:: comp_ellint_2, std:: comp_ellint_2f, std:: comp_ellint_2l

From cppreference.net
Défini dans l'en-tête <cmath>
(1)
float comp_ellint_2 ( float k ) ;

double comp_ellint_2 ( double k ) ;

long double comp_ellint_2 ( long double k ) ;
(depuis C++17)
(jusqu'à C++23)
/* floating-point-type */ comp_ellint_2 ( /* floating-point-type */ k ) ;
(depuis C++23)
float comp_ellint_2f ( float k ) ;
(2) (depuis C++17)
long double comp_ellint_2l ( long double k ) ;
(3) (depuis C++17)
Défini dans l'en-tête <cmath>
template < class Integer >
double comp_ellint_2 ( Integer k ) ;
(A) (depuis C++17)
1-3) Calcule l' intégrale elliptique complète de seconde espèce de k . La bibliothèque fournit des surcharges de std::comp_ellint_2 pour tous les types à virgule flottante non qualifiés cv comme type du paramètre k . (depuis C++23)
A) Des surcharges supplémentaires sont fournies pour tous les types entiers, qui sont traités comme double .

Table des matières

Paramètres

k - module elliptique ou excentricité (une valeur à virgule flottante ou entière)

Valeur de retour

Si aucune erreur ne se produit, la valeur de l'intégrale elliptique complète de seconde espèce de k , c'est-à-dire std::ellint_2(k, π/2) , est renvoyée.

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.
  • Si |k|>1 , une erreur de domaine peut survenir.

Notes

Les implémentations qui ne prennent pas en charge C++17, mais qui prennent en charge ISO 29124:2010 , fournissent cette fonction 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.

Les implémentations qui ne prennent pas en charge ISO 29124:2010 mais supportent TR 19768:2007 (TR1), 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 .

Le périmètre d'une ellipse d'excentricité k et de demi-grand axe a est égal à 4aE(k) , où E représente std::comp_ellint_2 . Lorsque l'excentricité vaut 0 , l'ellipse dégénère en un cercle de rayon a et le périmètre devient 2πa , donc E(0) = π/2 . Lorsque l'excentricité vaut 1 , l'ellipse dégénère en un segment de longueur 2a, dont le périmètre est 4a , donc E(1) = 1 .

Les surcharges supplémentaires ne sont pas requises d'être fournies exactement comme (A) . Elles doivent seulement être suffisantes pour garantir que pour leur argument num de type entier, std :: comp_ellint_2 ( num ) ait le même effet que std :: comp_ellint_2 ( static_cast < double > ( num ) ) .

Exemple

#include <cmath>
#include <iostream>
#include <numbers>
int main()
{
    constexpr double hpi = std::numbers::pi / 2.0;
    std::cout << "E(0) = " << std::comp_ellint_2(0) << '\n'
              << "π/2 = " << hpi << '\n'
              << "E(1) = " << std::comp_ellint_2(1) << '\n'
              << "E(1, π/2) = " << std::ellint_2(1, hpi) << '\n';
}

Sortie :

E(0) = 1.5708
π/2 = 1.5708
E(1) = 1
E(1, π/2) = 1

Voir aussi

(C++17) (C++17) (C++17)
intégrale elliptique incomplète de seconde espèce
(fonction)

Liens externes

Weisstein, Eric W. "Complete Elliptic Integral of the Second Kind." De MathWorld — Une ressource Web Wolfram.