Elliptic Integrals Calculator
Description:
Elliptic_Integrals::Elliptic(const double phi, const double k) computes elliptic integrals F(ϕ,k) and E(ϕ,k).
Usage:
std::vector<double> Elliptic_Integrals::Elliptic(const double phi, const double k)
In main.cpp displays a table for comparison with Irene A. Stegun, Milton Abramowitz, "Handbook of Mathematical Functions with Formulas, Graphs, and Mathematical Tables", page 613-618.
Parameters:
- 'phi': The argument in degrees. It must be in the range [0,90]
- 'k': The modulus. It must be in the range [−1,1]
Returns:
A vector containing the values of F(ϕ,k) (at the first position) and E(ϕ,k) (at the second position).
Exceptions:
- Throws an error if 'k' is not within the range [−1,1]
- Throws an error if 'phi' is not within the range [0,90]
Special Cases:
- If 'k' is equal to 1 and 'phi' is 90, the function returns ∞ for F(ϕ,k) and 1 for E(ϕ,k).
- If 'k' is equal to 1, the function applies specific formulas for computing F(ϕ,k) and E(ϕ,k).
- For other cases, the function iteratively computes the integrals until a desired level of precision is achieved.
Note:
This implementation has a maximum iteration limit of 1000. Adjustments may be needed based on the desired precision and performance requirements.
Related papers:
- Shanjie Zhang, Jian-Ming Jin, "Computation of Special Functions", page 664-665
- Irene A. Stegun, Milton Abramowitz, "Handbook of Mathematical Functions with Formulas, Graphs, and Mathematical Tables", page 613-618