ClickHouse

Форк
0
/
lgamma.cpp 
33 строки · 614.0 Байт
1
#include <Functions/FunctionMathUnary.h>
2
#include <Functions/FunctionFactory.h>
3

4
#if defined(OS_DARWIN)
5
extern "C"
6
{
7
    double lgamma_r(double x, int * signgamp);
8
}
9
#endif
10

11
namespace DB
12
{
13
namespace
14
{
15

16
/// Use wrapper and use lgamma_r version because std::lgamma is not threadsafe.
17
Float64 lgamma_wrapper(Float64 arg)
18
{
19
    int signp;
20
    return lgamma_r(arg, &signp);
21
}
22

23
struct LGammaName { static constexpr auto name = "lgamma"; };
24
using FunctionLGamma = FunctionMathUnary<UnaryFunctionVectorized<LGammaName, lgamma_wrapper>>;
25

26
}
27

28
REGISTER_FUNCTION(LGamma)
29
{
30
    factory.registerFunction<FunctionLGamma>();
31
}
32

33
}
34

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.