std::comp_ellint_1, std::comp_ellint_1f, std::comp_ellint_1l
| Defined in header <cmath>
|
||
| double comp_ellint_1 ( double k ); float comp_ellint_1 ( float k ); |
(1) | (since C++17) |
| double comp_ellint_1 ( IntegralType k ); |
(2) | (since C++17) |
Contents |
[edit] Parameters
| k | - | elliptic modulus or eccentricity (a value of a floating-point or integral type) |
[edit] Return value
If no errors occur, value of the complete elliptic integral of the first kind of k, that is std::ellint_1(k, π/2), is returned.
[edit] 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.
[edit] 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.
[edit] Example
The period of a pendulum of length l, given acceleration due to gravity g, and initial angle θ equals 4⋅√l/g⋅K(sin(θ/2)), where K is std::comp_ellint_1.
#include <cmath> #include <iostream> #include <numbers> int main() { constexpr double π {std::numbers::pi}; std::cout << "K(0) ≈ " << std::comp_ellint_1(0) << '\n' << "π/2 ≈ " << π / 2 << '\n' << "K(0.5) ≈ " << std::comp_ellint_1(0.5) << '\n' << "F(0.5, π/2) ≈ " << std::ellint_1(0.5, π / 2) << '\n' << "The period of a pendulum length 1 m at 10° initial angle ≈ " << 4 * std::sqrt(1 / 9.80665) * std::comp_ellint_1(std::sin(π / 18 / 2)) << "s,\n" "whereas the linear approximation gives ≈ " << 2 * π * std::sqrt(1 / 9.80665) << '\n'; }
Output:
K(0) ≈ 1.5708 π/2 ≈ 1.5708 K(0.5) ≈ 1.68575 F(0.5, π/2) ≈ 1.68575 The period of a pendulum length 1 m at 10° initial angle ≈ 2.01024s, whereas the linear approximation gives ≈ 2.00641
[edit] See also
| (C++17)(C++17)(C++17) |
(incomplete) elliptic integral of the first kind (function) |
[edit] External links
| Weisstein, Eric W. "Complete Elliptic Integral of the First Kind." From MathWorld — A Wolfram Web Resource. |