E.V.E
v2023.02.15
Loading...
Searching...
No Matches
◆
log_abs_gamma
auto eve::log_abs_gamma =
functor
<log_abs_gamma_t>
inline
constexpr
Header file
#include <eve/module/special.hpp>
Callable Signatures
namespace
eve
{
// Regular overload
constexpr
auto
log_abs_gamma
(
floating_value
auto
x)
noexcept
;
// 1
// Lanes masking
constexpr
auto
log_abs_gamma
[raw](
floating_value
auto
x)
noexcept
;
// 2
constexpr
auto
log_abs_gamma
[fast](
floating_value
auto
x)
noexcept
;
// 2
constexpr
auto
log_abs_gamma
[
conditional_expr
auto
c](
floating_value
auto
x)
noexcept
;
// 3
constexpr
auto
log_abs_gamma
[
logical_value
auto
m](
floating_value
auto
x)
noexcept
;
// 3
}
eve::conditional_expr
Specifies that a type is a Conditional Expression.
Definition
conditional.hpp:28
eve::floating_value
The concept floating_value<T> is satisfied if and only if T satisfies eve::value and the element type...
Definition
value.hpp:116
eve::logical_value
The concept logical_value<T> is satisfied if and only if T satisfies eve::value and the element type ...
Definition
value.hpp:134
eve::log_abs_gamma
constexpr auto log_abs_gamma
elementwise_callable object computing the natural logarithm of the absolute value of the function.
Definition
log_abs_gamma.hpp:76
eve
EVE Main Namespace.
Definition
abi.hpp:19
Parameters
x
:
floating argument
.
c
:
Conditional expression
masking the operation.
m
:
Logical value
masking the operation.
Return value
the value of the logarithm of the absolute value of the \(\Gamma\) function is returned.
faster computations at accuracy price based on "An accurate approximation formula for gamma function" of Zhen-Hang Yang and Jing-Feng Tian.
The operation is performed conditionnaly
.
External references
[Wolfram MathWorld: Log Gamma Function](
https://mathworld.wolfram.com/LogGammaFunction.html
Zhen-Hang Yang & al.
Example
// revision 1
#include <eve/module/special.hpp>
#include <iostream>
int
main()
{
eve::wide
wf = {0.5f, -1.5f, -1.0f, 1.0f, 5.0f,
eve::inf
(
eve::as<float>
()), eve::minf(
eve::as<float>
()),
eve::nan
(
eve::as<float>
())};
std::cout <<
"<- wf = "
<< wf <<
"\n"
;
std::cout <<
"-> log_abs_gamma(wf) = "
<<
eve::log_abs_gamma
(wf) <<
"\n"
;
std::cout <<
"-> log_abs_gamma[ignore_last(2)](wf) = "
<<
eve::log_abs_gamma
[
eve::ignore_last
(2)](wf) <<
"\n"
;
std::cout <<
"-> log_abs_gamma[wf != 2.0f](wf) = "
<<
eve::log_abs_gamma
[wf != 2.0f](wf) <<
"\n"
;
}
eve::nan
constexpr auto nan
Computes the IEEE quiet NaN constant.
Definition
nan.hpp:67
eve::inf
constexpr auto inf
Computes the infinity ieee value.
Definition
inf.hpp:67
eve::as
Lightweight type-wrapper.
Definition
as.hpp:29
eve::ignore_last
Conditional expression ignoring the k last lanes from a eve::simd_value.
Definition
conditional.hpp:353
eve::wide
Wrapper for SIMD registers.
Definition
wide.hpp:94
eve