std:: comp_ellint_2, std:: comp_ellint_2f, std:: comp_ellint_2l
|
Défini dans l'en-tête
<cmath>
|
||
| (1) | ||
|
float
comp_ellint_2
(
float
k
)
;
double
comp_ellint_2
(
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) |
std::comp_ellint_2
pour tous les types à virgule flottante non qualifiés cv comme type du paramètre
k
.
(depuis C++23)
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. |