std::comp_ellint_3,std::comp_ellint_3f,std::comp_ellint_3l (3) - Linux Manuals

std::comp_ellint_3,std::comp_ellint_3f,std::comp_ellint_3l: std::comp_ellint_3,std::comp_ellint_3f,std::comp_ellint_3l

NAME

std::comp_ellint_3,std::comp_ellint_3f,std::comp_ellint_3l - std::comp_ellint_3,std::comp_ellint_3f,std::comp_ellint_3l

Synopsis


double comp_ellint_3( double k, double ν );
float comp_ellint_3f( float k, float ν ); (1) (since C++17)
long double comp_ellint_3l( long double k, long double ν );
Promoted comp_ellint_3( Arithmetic k, Arithmetic ν ); (2) (since C++17)


1) Computes the complete_elliptic_integral_of_the_third_kind of the arguments 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)

Return value


If no errors occur, value of the complete elliptic integral of the third kind of k and ν, that is std::ellint_3(k,ν,π/2), 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.5,0) = " << std::comp_ellint_3(0.5, 0) << '\n'
                << "K(0.5) = " << std::comp_ellint_1(0.5) << '\n'
                << "Π(0,0) = " << std::comp_ellint_3(0, 0) << '\n'
                << "π/2 = " << hpi << '\n'
                << "Π(0.5,1) = " << std::comp_ellint_3(0.5, 1) << '\n';
  }

Output:


  Π(0.5,0) = 1.68575
  K(0.5) = 1.68575
  Π(0,0) = 1.5708
  π/2 = 1.5708
  Π(0.5,1) = inf

External links


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

See also


ellint_3
ellint_3f
ellint_3l (incomplete) elliptic integral of the third kind
          (function)
(C++17)
(C++17)
(C++17)