E.V.E
v2023.02.15

◆ ellint_rf

eve::ellint_rf = {}
inlineconstexpr

Computes the Carlson's elliptic integral \( \mathbf{R}_\mathbf{F}(x, y) = \mathbf{R}_\mathbf{D}(x, y) = \frac32 \int_{0}^{\infty} \scriptstyle[(t+x)(t+y)]^{-1/2} (t+z)^{-3/2}\scriptstyle\;\mathrm{d}t\).

Defined in header

#include <eve/module/elliptic.hpp>

Callable Signatures

namespace eve
{
eve::common_value_t<T, U, V> ellint_rf(T x, U y, V z) noexcept;
}
Definition: value.hpp:114
constexpr callable_ellint_rf_ ellint_rf
Computes the Carlson's elliptic integral .
Definition: ellint_rf.hpp:56
Definition: abi.hpp:18
typename eve::detail::common_value_impl< void, Ts... >::type common_value_t
Computes the SIMD-compatible common type between all Ts.
Definition: common_value.hpp:50

Parameters

  • x, y, z: floating real arguments. All those arguments must be non-negative and at most one zero or the the result is NaN.

Return value

the value of the \(\mathbf{R}_\mathbf{F}\) Carlson elliptic integral is returned:

Example

#include <eve/module/elliptic.hpp>
#include <eve/wide.hpp>
#include <iostream>
int
main()
{
wide_ft pf = {1.0f, 0.0f, 1.5f, 3.0f};
wide_ft qf = {1.0f, 4.0f, 0.2f, 0.5f};
std::cout << "---- simd" << '\n'
<< "<- pf = " << pf << '\n'
<< "<- qf = " << qf << '\n'
<< "-> ellint_rc(pf, qf) = " << eve::ellint_rc(pf, qf) << '\n';
float xf = 3.0f;
float yf = 0.5f;
std::cout << "---- scalar" << '\n'
<< "<- xf = " << xf << '\n'
<< "<- yf = " << yf << '\n'
<< "-> ellint_rc(xf, yf) = " << eve::ellint_rc(xf, yf) << '\n';
return 0;
}
constexpr callable_ellint_rc_ ellint_rc
computes the degenerate Carlson's elliptic integral .
Definition: ellint_rc.hpp:52
Wrapper for SIMD registers.
Definition: wide.hpp:65