ClickHouse

Форк
0
/
sigmoid.cpp 
49 строк · 879.0 Байт
1
#include <Functions/FunctionMathUnary.h>
2
#include <Functions/FunctionFactory.h>
3

4
namespace DB
5
{
6
namespace
7
{
8

9
struct SigmoidName { static constexpr auto name = "sigmoid"; };
10

11
#if USE_FASTOPS
12

13
namespace
14
{
15
    struct Impl
16
    {
17
        static constexpr auto name = SigmoidName::name;
18
        static constexpr auto rows_per_iteration = 0;
19
        static constexpr bool always_returns_float64 = false;
20

21
        template <typename T>
22
        static void execute(const T * src, size_t size, T * dst)
23
        {
24
            NFastOps::Sigmoid<>(src, size, dst);
25
        }
26
    };
27
}
28

29
using FunctionSigmoid = FunctionMathUnary<Impl>;
30

31
#else
32

33
double sigmoid(double x)
34
{
35
    return 1.0 / (1.0 + exp(-x));
36
}
37

38
using FunctionSigmoid = FunctionMathUnary<UnaryFunctionVectorized<SigmoidName, sigmoid>>;
39

40
#endif
41

42
}
43

44
REGISTER_FUNCTION(Sigmoid)
45
{
46
    factory.registerFunction<FunctionSigmoid>();
47
}
48

49
}
50

51

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

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

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

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