Loading [MathJax]/extensions/tex2jax.js
kyosu v0.1.0
Complex Without Complexes
 
All Classes Namespaces Functions Variables Typedefs Modules Pages Concepts
Loading...
Searching...
No Matches

◆ ellint_fe

kyosu::ellint_fe = eve::functor<ellint_fe_t>
inlineconstexpr

Computes Jacobi's Amplitude function.

#include <kyosu/functions.hpp>

Callable Signatures

namespace kyosu
{
// Regular overload
constexpr Z ellint_fe( real<Z> z, real<U> m) noexcept; //1
constexpr auto ellint_fe(complex<Z> z, real<U> m) noexcept; //1
//Semantic modifiers
constexpr Z ellint_fe[modular]( real<Z> z, real<U> alpha) noexcept; //1
constexpr auto ellint_fe[modular](complex<Z> z, real<U> alpha) noexcept; //1
constexpr Z ellint_fe[eccentric]( real<Z> z, real<U> m) noexcept; //1
constexpr auto ellint_fe[eccentric](complex<Z> z, real<U> m) noexcept; //1
constexpr auto ellint_fe[threshold = tol]( real<Z> z, real<U> k) noexcept; //1
constexpr auto ellint_fe[threshold = tol](complex<Z> z, real<U> k) noexcept; //1
}
constexpr auto k
Computes the complex number k i.e. quaternion(0, 0, 0, 1) in the chosen type.
Definition: k.hpp:72
constexpr auto ellint_fe
Computes Jacobi's Amplitude function.
Definition: ellint_fe.hpp:96
Main KYOSU namespace.
Definition: cinf.hpp:13

Parameters

  • u: argument.
  • m: amplitude parameter ( \(0\le m\le 1\)).
  • alpha: modular angle in radian.
  • k: elliptic modulus (eccentricity) .
  • ‘tol’: accuracy tolerance (by defaut epsilon.
  • c: Conditional expression masking the operation.
  • l: Logical value masking the operation.

Return value

  1. return the elliptic incomplete functions or first and second kind. Tafe care that the meaning of the second parameters depends on the option used (see note below).
Note
  • \(\alpha\) is named the modular angle given in radian (modular option).
  • \( k = \sin\alpha \) is named the elliptic modulus or eccentricity (eccentric option).
  • \( m = k^2 = \sin^2\alpha\) is named the parameter (no option). Each of the above three quantities is completely determined by any of the others (given that they are non-negative). Thus, they can be used interchangeably up to roundings errors by giving the right option.

External references

Example

#include <kyosu/kyosu.hpp>
#include <eve/wide.hpp>
#include <iostream>
#include <iomanip>
int main()
{
std::cout<< std::setprecision(16) << std::endl;
using w_t = eve::wide<double, eve::fixed<4>>;
auto z = kyosu::complex(w_t(2.0, 1.0, 1.0, 0.0 ), w_t(1.0, 1.0, 0.0, 1.0));
auto m = w_t(0.5);
auto [f, e] = kyosu::ellint_fe(z, eve::sqrt(m));
std::cout << " z " << z << std::endl;
std::cout << " m " << m << std::endl;
std::cout << "f " << f << std::endl;
std::cout << "e " << e << std::endl;
return 0;
}
constexpr auto complex
Constructs a kyosu::complex_t instance.
Definition: to_complex.hpp:75