std::ellint_3,std::ellint_3f,std::ellint_3l (3) - Linux Manuals

std::ellint_3,std::ellint_3f,std::ellint_3l: std::ellint_3,std::ellint_3f,std::ellint_3l

NAME

std::ellint_3,std::ellint_3f,std::ellint_3l - std::ellint_3,std::ellint_3f,std::ellint_3l

Synopsis


double ellint_3( double k, double ν, double φ );
float ellint_3f( float k, float ν, float φ ); (1) (since C++17)
long double ellint_3l( long double k, long double ν, long double φ );
Promoted ellint_3( Arithmetic k, Arithmetic ν, Arithmetic φ ); (2) (since C++17)


1) Computes the incomplete_elliptic_integral_of_the_third_kind of k, ν, and φ.
2) A set of overloads or a function template for all combinations of arguments of arithmetic type not covered by (1). If any argument has integral_type, it is cast to double. If any argument is long double, then the return type Promoted is also long double, otherwise the return type is always double.

Parameters


k - elliptic modulus or eccentricity (a value of a floating-point or integral type)
ν- elliptic characteristic (a value of floating-point or integral type)
φ- Jacobi amplitude (a value of floating-point or integral type, measured in radians)

Return value


If no errors occur, value of the incomplete elliptic integral of the third kind of k, ν, and φ, that is ∫φ
0



(1-νsin2
θ)

1-k2
sin2
θ


, is returned.

Error handling


Errors may be reported as specified in math_errhandling


* If the argument is NaN, NaN is returned and domain error is not reported
* If |k|>1, a domain error may occur

Notes


Implementations that do not support C++17, but support ISO_29124:2010, provide this function if __STDCPP_MATH_SPEC_FUNCS__ is defined by the implementation to a value at least 201003L and if the user defines __STDCPP_WANT_MATH_SPEC_FUNCS__ before including any standard library headers.
Implementations that do not support ISO 29124:2010 but support TR 19768:2007 (TR1), provide this function in the header tr1/cmath and namespace std::tr1
An implementation of this function is also available_in_boost.math

Example


// Run this code


  #include <cmath>
  #include <iostream>
  int main()
  {
      double hpi = std::acos(-1)/2;
      std::cout << "Π(0,0,π/2) = " << std::ellint_3(0, 0, hpi) << '\n'
                << "π/2 = " << hpi << '\n';
  }

Output:


  Π(0,0,π/2) = 1.5708
  π/2 = 1.5708


 This section is incomplete
 Reason: this and other elliptic integrals deserve better examples.. perhaps calculate elliptic arc length?

External links


Weisstein,_Eric_W._"Elliptic_Integral_of_the_Third_Kind." From MathWorld--A Wolfram Web Resource.

See also


comp_ellint_3
comp_ellint_3f
comp_ellint_3l (complete) elliptic integral of the third kind
               (function)
(C++17)
(C++17)
(C++17)