MCPcopy Create free account
hub / github.com/ARM-software/ComputeLibrary / lgamma

Method lgamma

include/half/half.hpp:1581–1598  ·  view source on GitHub ↗

Gamma logarithm implementation. \param arg function argument \return function value stored in single-preicision

Source from the content-addressed store, hash-verified

1579 /// \param arg function argument
1580 /// \return function value stored in single-preicision
1581 static expr lgamma(float arg)
1582 {
1583 #if HALF_ENABLE_CPP11_CMATH
1584 return expr(std::lgamma(arg));
1585 #else
1586 if(builtin_isinf(arg))
1587 return expr(std::numeric_limits<float>::infinity());
1588 if(arg < 0.0f)
1589 {
1590 float i, f = std::modf(-arg, &i);
1591 if(f == 0.0f)
1592 return expr(std::numeric_limits<float>::infinity());
1593 return expr(static_cast<float>(1.1447298858494001741434273513531-
1594 std::log(std::abs(std::sin(3.1415926535897932384626433832795*f)))-lgamma(1.0-arg)));
1595 }
1596 return expr(static_cast<float>(lgamma(static_cast<double>(arg))));
1597 #endif
1598 }
1599
1600 /// Gamma implementation.
1601 /// \param arg function argument

Callers

nothing calls this directly

Calls 7

exprClass · 0.85
lgammaFunction · 0.85
builtin_isinfFunction · 0.85
modfFunction · 0.85
logFunction · 0.85
absFunction · 0.85
sinFunction · 0.85

Tested by

no test coverage detected