E.V.E
v2022.09.01

◆ lbeta

eve::lbeta = {}
inlineconstexpr

Computes the natural logarithm of the beta function.

Defined in header

#include <eve/module/special.hpp>

Callable Signatures

namespace eve
{
template< eve::floating_real_value T, eve::floating_real_value U >
auto lbeta(T x,U y) noexcept; //1
template< eve::floating_value T, eve::floating_value U >
auto lbeta(eve::as_complex_t<T> x, U y) noexcept; //2
template< eve::floating_value T, eve::floating_value U >
autol beta(T x, eve::as_complex_t<U> y) noexcept; //2
template< eve::floating_value T, eve::floating_value U >
auto lbeta(eve::as_complex_t<T> x, eve::as_complex_t<U> y) noexcept; //2
}
constexpr callable_beta_ beta
Computes the beta function: is returned.
Definition: beta.hpp:66
constexpr callable_lbeta_ lbeta
Computes the natural logarithm of the beta function.
Definition: lbeta.hpp:61
Definition: all_of.hpp:22

Parameters

  1. x, y: strictly positive real floating argument.
  2. x, y: real floating or complex arguments.

Return value

Real version

#include <eve/module/special.hpp>
#include <eve/wide.hpp>
#include <iostream>
int main()
{
wide_ft pf = { 0.0f, 1.0f, 4.0f, 2.0f };
wide_ft qf = { 1.0f, 1.0f, 3.0f, 5.0f};
std::cout
<< "---- simd" << '\n'
<< "<- pf = " << pf << '\n'
<< "<- qf = " << qf << '\n'
<< "-> lbeta(pf, qf) = " << eve::lbeta(pf, qf) << '\n'
;
float xf = 2.0f;
float yf = 10.0f;
std::cout
<< "---- scalar" << '\n'
<< "<- xf = " << xf << '\n'
<< "<- yf = " << yf << '\n'
<< "-> lbeta(xf, yf) = " << eve::lbeta(xf, yf) << '\n';
return 0;
}
Wrapper for SIMD registers.
Definition: wide.hpp:65

Complex version

#include <eve/module/complex.hpp>
#include <eve/wide.hpp>
#include <iostream>
int main()
{
wide_ft ref1 = { 0.0f, 1.0f, -1.0f, 0.5f};
wide_ft imf1 = { 2.0f , -1.0, -5.0, 0.0};
auto z1 = eve::as_complex_t<wide_ft>(ref1, imf1);
wide_ft ref2 = { 4.0f, 0.0f, -1.0f, -0.5f};
wide_ft imf2 = { -2.0f , 1.0, 3.0, 10.0};
auto z2 = eve::as_complex_t<wide_ft>(ref2, imf2);
std::cout
<< "---- simd" << std::endl
<< "<- z1 = " << z1 << std::endl
<< "<- z2 = " << z2 << std::endl
<< "-> lbeta(z1,z2) = " << eve::lbeta(z1,z2) << std::endl;
return 0;
}