Coverage Report

Created: 2026-03-13 05:13

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
be/src/exprs/function/function_math_unary.h
Line
Count
Source
1
// Licensed to the Apache Software Foundation (ASF) under one
2
// or more contributor license agreements.  See the NOTICE file
3
// distributed with this work for additional information
4
// regarding copyright ownership.  The ASF licenses this file
5
// to you under the Apache License, Version 2.0 (the
6
// "License"); you may not use this file except in compliance
7
// with the License.  You may obtain a copy of the License at
8
//
9
//   http://www.apache.org/licenses/LICENSE-2.0
10
//
11
// Unless required by applicable law or agreed to in writing,
12
// software distributed under the License is distributed on an
13
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
// KIND, either express or implied.  See the License for the
15
// specific language governing permissions and limitations
16
// under the License.
17
// This file is copied from
18
// https://github.com/ClickHouse/ClickHouse/blob/master/src/Functions/FunctionMathUnary.h
19
// and modified by Doris
20
21
#pragma once
22
23
#include "core/call_on_type_index.h"
24
#include "core/column/column_decimal.h"
25
#include "core/data_type/data_type_decimal.h"
26
#include "core/data_type/data_type_number.h"
27
#include "core/types.h"
28
#include "exprs/function/function.h"
29
#include "exprs/function/function_helpers.h"
30
31
namespace doris {
32
33
template <typename Impl>
34
class FunctionMathUnary : public IFunction {
35
public:
36
    using IFunction::execute;
37
38
    static constexpr auto name = Impl::name;
39
257
    static FunctionPtr create() { return std::make_shared<FunctionMathUnary>(); }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_9AsinhNameEXadL_Z5asinhEEEEE6createEv
Line
Count
Source
39
15
    static FunctionPtr create() { return std::make_shared<FunctionMathUnary>(); }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7CosNameEXadL_Z3cosEEEEE6createEv
Line
Count
Source
39
106
    static FunctionPtr create() { return std::make_shared<FunctionMathUnary>(); }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8CoshNameEXadL_Z4coshEEEEE6createEv
Line
Count
Source
39
11
    static FunctionPtr create() { return std::make_shared<FunctionMathUnary>(); }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7SinNameEXadL_Z3sinEEEEE6createEv
Line
Count
Source
39
12
    static FunctionPtr create() { return std::make_shared<FunctionMathUnary>(); }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8SinhNameEXadL_Z4sinhEEEEE6createEv
Line
Count
Source
39
15
    static FunctionPtr create() { return std::make_shared<FunctionMathUnary>(); }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8CbrtNameEXadL_Z4cbrtEEEEE6createEv
Line
Count
Source
39
12
    static FunctionPtr create() { return std::make_shared<FunctionMathUnary>(); }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7TanNameEXadL_Z3tanEEEEE6createEv
Line
Count
Source
39
12
    static FunctionPtr create() { return std::make_shared<FunctionMathUnary>(); }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8TanhNameEXadL_Z4tanhEEEEE6createEv
Line
Count
Source
39
13
    static FunctionPtr create() { return std::make_shared<FunctionMathUnary>(); }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7CotNameEXadL_ZNS_3cotEdEEEEE6createEv
Line
Count
Source
39
11
    static FunctionPtr create() { return std::make_shared<FunctionMathUnary>(); }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7SecNameEXadL_ZNS_3secEdEEEEE6createEv
Line
Count
Source
39
11
    static FunctionPtr create() { return std::make_shared<FunctionMathUnary>(); }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7CscNameEXadL_ZNS_3cscEdEEEEE6createEv
Line
Count
Source
39
11
    static FunctionPtr create() { return std::make_shared<FunctionMathUnary>(); }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7ExpNameEXadL_Z3expEEEEE6createEv
Line
Count
Source
39
16
    static FunctionPtr create() { return std::make_shared<FunctionMathUnary>(); }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8NameEvenEXadL_ZNS_8EvenImplEdEEEEE6createEv
Line
Count
Source
39
12
    static FunctionPtr create() { return std::make_shared<FunctionMathUnary>(); }
40
41
private:
42
13
    String get_name() const override { return name; }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_9AsinhNameEXadL_Z5asinhEEEEE8get_nameB5cxx11Ev
Line
Count
Source
42
1
    String get_name() const override { return name; }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7CosNameEXadL_Z3cosEEEEE8get_nameB5cxx11Ev
Line
Count
Source
42
1
    String get_name() const override { return name; }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8CoshNameEXadL_Z4coshEEEEE8get_nameB5cxx11Ev
Line
Count
Source
42
1
    String get_name() const override { return name; }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7SinNameEXadL_Z3sinEEEEE8get_nameB5cxx11Ev
Line
Count
Source
42
1
    String get_name() const override { return name; }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8SinhNameEXadL_Z4sinhEEEEE8get_nameB5cxx11Ev
Line
Count
Source
42
1
    String get_name() const override { return name; }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8CbrtNameEXadL_Z4cbrtEEEEE8get_nameB5cxx11Ev
Line
Count
Source
42
1
    String get_name() const override { return name; }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7TanNameEXadL_Z3tanEEEEE8get_nameB5cxx11Ev
Line
Count
Source
42
1
    String get_name() const override { return name; }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8TanhNameEXadL_Z4tanhEEEEE8get_nameB5cxx11Ev
Line
Count
Source
42
1
    String get_name() const override { return name; }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7CotNameEXadL_ZNS_3cotEdEEEEE8get_nameB5cxx11Ev
Line
Count
Source
42
1
    String get_name() const override { return name; }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7SecNameEXadL_ZNS_3secEdEEEEE8get_nameB5cxx11Ev
Line
Count
Source
42
1
    String get_name() const override { return name; }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7CscNameEXadL_ZNS_3cscEdEEEEE8get_nameB5cxx11Ev
Line
Count
Source
42
1
    String get_name() const override { return name; }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7ExpNameEXadL_Z3expEEEEE8get_nameB5cxx11Ev
Line
Count
Source
42
1
    String get_name() const override { return name; }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8NameEvenEXadL_ZNS_8EvenImplEdEEEEE8get_nameB5cxx11Ev
Line
Count
Source
42
1
    String get_name() const override { return name; }
43
140
    size_t get_number_of_arguments() const override { return 1; }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_9AsinhNameEXadL_Z5asinhEEEEE23get_number_of_argumentsEv
Line
Count
Source
43
6
    size_t get_number_of_arguments() const override { return 1; }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7CosNameEXadL_Z3cosEEEEE23get_number_of_argumentsEv
Line
Count
Source
43
97
    size_t get_number_of_arguments() const override { return 1; }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8CoshNameEXadL_Z4coshEEEEE23get_number_of_argumentsEv
Line
Count
Source
43
2
    size_t get_number_of_arguments() const override { return 1; }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7SinNameEXadL_Z3sinEEEEE23get_number_of_argumentsEv
Line
Count
Source
43
3
    size_t get_number_of_arguments() const override { return 1; }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8SinhNameEXadL_Z4sinhEEEEE23get_number_of_argumentsEv
Line
Count
Source
43
6
    size_t get_number_of_arguments() const override { return 1; }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8CbrtNameEXadL_Z4cbrtEEEEE23get_number_of_argumentsEv
Line
Count
Source
43
3
    size_t get_number_of_arguments() const override { return 1; }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7TanNameEXadL_Z3tanEEEEE23get_number_of_argumentsEv
Line
Count
Source
43
3
    size_t get_number_of_arguments() const override { return 1; }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8TanhNameEXadL_Z4tanhEEEEE23get_number_of_argumentsEv
Line
Count
Source
43
4
    size_t get_number_of_arguments() const override { return 1; }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7CotNameEXadL_ZNS_3cotEdEEEEE23get_number_of_argumentsEv
Line
Count
Source
43
2
    size_t get_number_of_arguments() const override { return 1; }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7SecNameEXadL_ZNS_3secEdEEEEE23get_number_of_argumentsEv
Line
Count
Source
43
2
    size_t get_number_of_arguments() const override { return 1; }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7CscNameEXadL_ZNS_3cscEdEEEEE23get_number_of_argumentsEv
Line
Count
Source
43
2
    size_t get_number_of_arguments() const override { return 1; }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7ExpNameEXadL_Z3expEEEEE23get_number_of_argumentsEv
Line
Count
Source
43
7
    size_t get_number_of_arguments() const override { return 1; }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8NameEvenEXadL_ZNS_8EvenImplEdEEEEE23get_number_of_argumentsEv
Line
Count
Source
43
3
    size_t get_number_of_arguments() const override { return 1; }
44
45
140
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
46
140
        return std::make_shared<typename Impl::Type>();
47
140
    }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_9AsinhNameEXadL_Z5asinhEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
45
6
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
46
6
        return std::make_shared<typename Impl::Type>();
47
6
    }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7CosNameEXadL_Z3cosEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
45
97
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
46
97
        return std::make_shared<typename Impl::Type>();
47
97
    }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8CoshNameEXadL_Z4coshEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
45
2
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
46
2
        return std::make_shared<typename Impl::Type>();
47
2
    }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7SinNameEXadL_Z3sinEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
45
3
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
46
3
        return std::make_shared<typename Impl::Type>();
47
3
    }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8SinhNameEXadL_Z4sinhEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
45
6
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
46
6
        return std::make_shared<typename Impl::Type>();
47
6
    }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8CbrtNameEXadL_Z4cbrtEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
45
3
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
46
3
        return std::make_shared<typename Impl::Type>();
47
3
    }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7TanNameEXadL_Z3tanEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
45
3
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
46
3
        return std::make_shared<typename Impl::Type>();
47
3
    }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8TanhNameEXadL_Z4tanhEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
45
4
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
46
4
        return std::make_shared<typename Impl::Type>();
47
4
    }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7CotNameEXadL_ZNS_3cotEdEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
45
2
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
46
2
        return std::make_shared<typename Impl::Type>();
47
2
    }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7SecNameEXadL_ZNS_3secEdEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
45
2
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
46
2
        return std::make_shared<typename Impl::Type>();
47
2
    }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7CscNameEXadL_ZNS_3cscEdEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
45
2
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
46
2
        return std::make_shared<typename Impl::Type>();
47
2
    }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7ExpNameEXadL_Z3expEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
45
7
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
46
7
        return std::make_shared<typename Impl::Type>();
47
7
    }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8NameEvenEXadL_ZNS_8EvenImplEdEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
45
3
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
46
3
        return std::make_shared<typename Impl::Type>();
47
3
    }
48
49
195
    static void execute_in_iterations(const double* src_data, double* dst_data, size_t size) {
50
639
        for (size_t i = 0; i < size; i++) {
51
444
            Impl::execute(&src_data[i], &dst_data[i]);
52
444
        }
53
195
    }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_9AsinhNameEXadL_Z5asinhEEEEE21execute_in_iterationsEPKdPdm
Line
Count
Source
49
6
    static void execute_in_iterations(const double* src_data, double* dst_data, size_t size) {
50
16
        for (size_t i = 0; i < size; i++) {
51
10
            Impl::execute(&src_data[i], &dst_data[i]);
52
10
        }
53
6
    }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7CosNameEXadL_Z3cosEEEEE21execute_in_iterationsEPKdPdm
Line
Count
Source
49
102
    static void execute_in_iterations(const double* src_data, double* dst_data, size_t size) {
50
225
        for (size_t i = 0; i < size; i++) {
51
123
            Impl::execute(&src_data[i], &dst_data[i]);
52
123
        }
53
102
    }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8CoshNameEXadL_Z4coshEEEEE21execute_in_iterationsEPKdPdm
Line
Count
Source
49
8
    static void execute_in_iterations(const double* src_data, double* dst_data, size_t size) {
50
33
        for (size_t i = 0; i < size; i++) {
51
25
            Impl::execute(&src_data[i], &dst_data[i]);
52
25
        }
53
8
    }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7SinNameEXadL_Z3sinEEEEE21execute_in_iterationsEPKdPdm
Line
Count
Source
49
9
    static void execute_in_iterations(const double* src_data, double* dst_data, size_t size) {
50
39
        for (size_t i = 0; i < size; i++) {
51
30
            Impl::execute(&src_data[i], &dst_data[i]);
52
30
        }
53
9
    }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8SinhNameEXadL_Z4sinhEEEEE21execute_in_iterationsEPKdPdm
Line
Count
Source
49
6
    static void execute_in_iterations(const double* src_data, double* dst_data, size_t size) {
50
16
        for (size_t i = 0; i < size; i++) {
51
10
            Impl::execute(&src_data[i], &dst_data[i]);
52
10
        }
53
6
    }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8CbrtNameEXadL_Z4cbrtEEEEE21execute_in_iterationsEPKdPdm
Line
Count
Source
49
9
    static void execute_in_iterations(const double* src_data, double* dst_data, size_t size) {
50
38
        for (size_t i = 0; i < size; i++) {
51
29
            Impl::execute(&src_data[i], &dst_data[i]);
52
29
        }
53
9
    }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7TanNameEXadL_Z3tanEEEEE21execute_in_iterationsEPKdPdm
Line
Count
Source
49
9
    static void execute_in_iterations(const double* src_data, double* dst_data, size_t size) {
50
38
        for (size_t i = 0; i < size; i++) {
51
29
            Impl::execute(&src_data[i], &dst_data[i]);
52
29
        }
53
9
    }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8TanhNameEXadL_Z4tanhEEEEE21execute_in_iterationsEPKdPdm
Line
Count
Source
49
8
    static void execute_in_iterations(const double* src_data, double* dst_data, size_t size) {
50
33
        for (size_t i = 0; i < size; i++) {
51
25
            Impl::execute(&src_data[i], &dst_data[i]);
52
25
        }
53
8
    }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7CotNameEXadL_ZNS_3cotEdEEEEE21execute_in_iterationsEPKdPdm
Line
Count
Source
49
2
    static void execute_in_iterations(const double* src_data, double* dst_data, size_t size) {
50
21
        for (size_t i = 0; i < size; i++) {
51
19
            Impl::execute(&src_data[i], &dst_data[i]);
52
19
        }
53
2
    }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7SecNameEXadL_ZNS_3secEdEEEEE21execute_in_iterationsEPKdPdm
Line
Count
Source
49
2
    static void execute_in_iterations(const double* src_data, double* dst_data, size_t size) {
50
21
        for (size_t i = 0; i < size; i++) {
51
19
            Impl::execute(&src_data[i], &dst_data[i]);
52
19
        }
53
2
    }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7CscNameEXadL_ZNS_3cscEdEEEEE21execute_in_iterationsEPKdPdm
Line
Count
Source
49
2
    static void execute_in_iterations(const double* src_data, double* dst_data, size_t size) {
50
22
        for (size_t i = 0; i < size; i++) {
51
20
            Impl::execute(&src_data[i], &dst_data[i]);
52
20
        }
53
2
    }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7ExpNameEXadL_Z3expEEEEE21execute_in_iterationsEPKdPdm
Line
Count
Source
49
23
    static void execute_in_iterations(const double* src_data, double* dst_data, size_t size) {
50
94
        for (size_t i = 0; i < size; i++) {
51
71
            Impl::execute(&src_data[i], &dst_data[i]);
52
71
        }
53
23
    }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8NameEvenEXadL_ZNS_8EvenImplEdEEEEE21execute_in_iterationsEPKdPdm
Line
Count
Source
49
9
    static void execute_in_iterations(const double* src_data, double* dst_data, size_t size) {
50
43
        for (size_t i = 0; i < size; i++) {
51
34
            Impl::execute(&src_data[i], &dst_data[i]);
52
34
        }
53
9
    }
54
55
    Status execute_impl(FunctionContext* context, Block& block, const ColumnNumbers& arguments,
56
195
                        uint32_t result, size_t input_rows_count) const override {
57
195
        const auto* col =
58
195
                assert_cast<const ColumnFloat64*>(block.get_by_position(arguments[0]).column.get());
59
60
195
        const auto& src_data = col->get_data();
61
195
        const size_t size = src_data.size();
62
63
195
        auto dst = ColumnFloat64::create();
64
195
        auto& dst_data = dst->get_data();
65
195
        dst_data.resize(size);
66
67
195
        execute_in_iterations(col->get_data().data(), dst_data.data(), size);
68
69
195
        block.replace_by_position(result, std::move(dst));
70
195
        return Status::OK();
71
195
    }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_9AsinhNameEXadL_Z5asinhEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
56
6
                        uint32_t result, size_t input_rows_count) const override {
57
6
        const auto* col =
58
6
                assert_cast<const ColumnFloat64*>(block.get_by_position(arguments[0]).column.get());
59
60
6
        const auto& src_data = col->get_data();
61
6
        const size_t size = src_data.size();
62
63
6
        auto dst = ColumnFloat64::create();
64
6
        auto& dst_data = dst->get_data();
65
6
        dst_data.resize(size);
66
67
6
        execute_in_iterations(col->get_data().data(), dst_data.data(), size);
68
69
6
        block.replace_by_position(result, std::move(dst));
70
6
        return Status::OK();
71
6
    }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7CosNameEXadL_Z3cosEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
56
102
                        uint32_t result, size_t input_rows_count) const override {
57
102
        const auto* col =
58
102
                assert_cast<const ColumnFloat64*>(block.get_by_position(arguments[0]).column.get());
59
60
102
        const auto& src_data = col->get_data();
61
102
        const size_t size = src_data.size();
62
63
102
        auto dst = ColumnFloat64::create();
64
102
        auto& dst_data = dst->get_data();
65
102
        dst_data.resize(size);
66
67
102
        execute_in_iterations(col->get_data().data(), dst_data.data(), size);
68
69
102
        block.replace_by_position(result, std::move(dst));
70
102
        return Status::OK();
71
102
    }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8CoshNameEXadL_Z4coshEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
56
8
                        uint32_t result, size_t input_rows_count) const override {
57
8
        const auto* col =
58
8
                assert_cast<const ColumnFloat64*>(block.get_by_position(arguments[0]).column.get());
59
60
8
        const auto& src_data = col->get_data();
61
8
        const size_t size = src_data.size();
62
63
8
        auto dst = ColumnFloat64::create();
64
8
        auto& dst_data = dst->get_data();
65
8
        dst_data.resize(size);
66
67
8
        execute_in_iterations(col->get_data().data(), dst_data.data(), size);
68
69
8
        block.replace_by_position(result, std::move(dst));
70
8
        return Status::OK();
71
8
    }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7SinNameEXadL_Z3sinEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
56
9
                        uint32_t result, size_t input_rows_count) const override {
57
9
        const auto* col =
58
9
                assert_cast<const ColumnFloat64*>(block.get_by_position(arguments[0]).column.get());
59
60
9
        const auto& src_data = col->get_data();
61
9
        const size_t size = src_data.size();
62
63
9
        auto dst = ColumnFloat64::create();
64
9
        auto& dst_data = dst->get_data();
65
9
        dst_data.resize(size);
66
67
9
        execute_in_iterations(col->get_data().data(), dst_data.data(), size);
68
69
9
        block.replace_by_position(result, std::move(dst));
70
9
        return Status::OK();
71
9
    }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8SinhNameEXadL_Z4sinhEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
56
6
                        uint32_t result, size_t input_rows_count) const override {
57
6
        const auto* col =
58
6
                assert_cast<const ColumnFloat64*>(block.get_by_position(arguments[0]).column.get());
59
60
6
        const auto& src_data = col->get_data();
61
6
        const size_t size = src_data.size();
62
63
6
        auto dst = ColumnFloat64::create();
64
6
        auto& dst_data = dst->get_data();
65
6
        dst_data.resize(size);
66
67
6
        execute_in_iterations(col->get_data().data(), dst_data.data(), size);
68
69
6
        block.replace_by_position(result, std::move(dst));
70
6
        return Status::OK();
71
6
    }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8CbrtNameEXadL_Z4cbrtEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
56
9
                        uint32_t result, size_t input_rows_count) const override {
57
9
        const auto* col =
58
9
                assert_cast<const ColumnFloat64*>(block.get_by_position(arguments[0]).column.get());
59
60
9
        const auto& src_data = col->get_data();
61
9
        const size_t size = src_data.size();
62
63
9
        auto dst = ColumnFloat64::create();
64
9
        auto& dst_data = dst->get_data();
65
9
        dst_data.resize(size);
66
67
9
        execute_in_iterations(col->get_data().data(), dst_data.data(), size);
68
69
9
        block.replace_by_position(result, std::move(dst));
70
9
        return Status::OK();
71
9
    }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7TanNameEXadL_Z3tanEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
56
9
                        uint32_t result, size_t input_rows_count) const override {
57
9
        const auto* col =
58
9
                assert_cast<const ColumnFloat64*>(block.get_by_position(arguments[0]).column.get());
59
60
9
        const auto& src_data = col->get_data();
61
9
        const size_t size = src_data.size();
62
63
9
        auto dst = ColumnFloat64::create();
64
9
        auto& dst_data = dst->get_data();
65
9
        dst_data.resize(size);
66
67
9
        execute_in_iterations(col->get_data().data(), dst_data.data(), size);
68
69
9
        block.replace_by_position(result, std::move(dst));
70
9
        return Status::OK();
71
9
    }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8TanhNameEXadL_Z4tanhEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
56
8
                        uint32_t result, size_t input_rows_count) const override {
57
8
        const auto* col =
58
8
                assert_cast<const ColumnFloat64*>(block.get_by_position(arguments[0]).column.get());
59
60
8
        const auto& src_data = col->get_data();
61
8
        const size_t size = src_data.size();
62
63
8
        auto dst = ColumnFloat64::create();
64
8
        auto& dst_data = dst->get_data();
65
8
        dst_data.resize(size);
66
67
8
        execute_in_iterations(col->get_data().data(), dst_data.data(), size);
68
69
8
        block.replace_by_position(result, std::move(dst));
70
8
        return Status::OK();
71
8
    }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7CotNameEXadL_ZNS_3cotEdEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
56
2
                        uint32_t result, size_t input_rows_count) const override {
57
2
        const auto* col =
58
2
                assert_cast<const ColumnFloat64*>(block.get_by_position(arguments[0]).column.get());
59
60
2
        const auto& src_data = col->get_data();
61
2
        const size_t size = src_data.size();
62
63
2
        auto dst = ColumnFloat64::create();
64
2
        auto& dst_data = dst->get_data();
65
2
        dst_data.resize(size);
66
67
2
        execute_in_iterations(col->get_data().data(), dst_data.data(), size);
68
69
2
        block.replace_by_position(result, std::move(dst));
70
2
        return Status::OK();
71
2
    }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7SecNameEXadL_ZNS_3secEdEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
56
2
                        uint32_t result, size_t input_rows_count) const override {
57
2
        const auto* col =
58
2
                assert_cast<const ColumnFloat64*>(block.get_by_position(arguments[0]).column.get());
59
60
2
        const auto& src_data = col->get_data();
61
2
        const size_t size = src_data.size();
62
63
2
        auto dst = ColumnFloat64::create();
64
2
        auto& dst_data = dst->get_data();
65
2
        dst_data.resize(size);
66
67
2
        execute_in_iterations(col->get_data().data(), dst_data.data(), size);
68
69
2
        block.replace_by_position(result, std::move(dst));
70
2
        return Status::OK();
71
2
    }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7CscNameEXadL_ZNS_3cscEdEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
56
2
                        uint32_t result, size_t input_rows_count) const override {
57
2
        const auto* col =
58
2
                assert_cast<const ColumnFloat64*>(block.get_by_position(arguments[0]).column.get());
59
60
2
        const auto& src_data = col->get_data();
61
2
        const size_t size = src_data.size();
62
63
2
        auto dst = ColumnFloat64::create();
64
2
        auto& dst_data = dst->get_data();
65
2
        dst_data.resize(size);
66
67
2
        execute_in_iterations(col->get_data().data(), dst_data.data(), size);
68
69
2
        block.replace_by_position(result, std::move(dst));
70
2
        return Status::OK();
71
2
    }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7ExpNameEXadL_Z3expEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
56
23
                        uint32_t result, size_t input_rows_count) const override {
57
23
        const auto* col =
58
23
                assert_cast<const ColumnFloat64*>(block.get_by_position(arguments[0]).column.get());
59
60
23
        const auto& src_data = col->get_data();
61
23
        const size_t size = src_data.size();
62
63
23
        auto dst = ColumnFloat64::create();
64
23
        auto& dst_data = dst->get_data();
65
23
        dst_data.resize(size);
66
67
23
        execute_in_iterations(col->get_data().data(), dst_data.data(), size);
68
69
23
        block.replace_by_position(result, std::move(dst));
70
23
        return Status::OK();
71
23
    }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8NameEvenEXadL_ZNS_8EvenImplEdEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
56
9
                        uint32_t result, size_t input_rows_count) const override {
57
9
        const auto* col =
58
9
                assert_cast<const ColumnFloat64*>(block.get_by_position(arguments[0]).column.get());
59
60
9
        const auto& src_data = col->get_data();
61
9
        const size_t size = src_data.size();
62
63
9
        auto dst = ColumnFloat64::create();
64
9
        auto& dst_data = dst->get_data();
65
9
        dst_data.resize(size);
66
67
9
        execute_in_iterations(col->get_data().data(), dst_data.data(), size);
68
69
9
        block.replace_by_position(result, std::move(dst));
70
9
        return Status::OK();
71
9
    }
72
};
73
74
template <typename Name, Float64(Function)(Float64)>
75
struct UnaryFunctionPlain {
76
    using Type = DataTypeFloat64;
77
    static constexpr auto name = Name::name;
78
79
    template <typename T, typename U>
80
444
    static void execute(const T* src, U* dst) {
81
444
        *dst = static_cast<Float64>(Function(*src));
82
444
    }
_ZN5doris18UnaryFunctionPlainINS_9AsinhNameEXadL_Z5asinhEEE7executeIddEEvPKT_PT0_
Line
Count
Source
80
10
    static void execute(const T* src, U* dst) {
81
10
        *dst = static_cast<Float64>(Function(*src));
82
10
    }
_ZN5doris18UnaryFunctionPlainINS_7CosNameEXadL_Z3cosEEE7executeIddEEvPKT_PT0_
Line
Count
Source
80
123
    static void execute(const T* src, U* dst) {
81
123
        *dst = static_cast<Float64>(Function(*src));
82
123
    }
_ZN5doris18UnaryFunctionPlainINS_8CoshNameEXadL_Z4coshEEE7executeIddEEvPKT_PT0_
Line
Count
Source
80
25
    static void execute(const T* src, U* dst) {
81
25
        *dst = static_cast<Float64>(Function(*src));
82
25
    }
_ZN5doris18UnaryFunctionPlainINS_7SinNameEXadL_Z3sinEEE7executeIddEEvPKT_PT0_
Line
Count
Source
80
30
    static void execute(const T* src, U* dst) {
81
30
        *dst = static_cast<Float64>(Function(*src));
82
30
    }
_ZN5doris18UnaryFunctionPlainINS_8SinhNameEXadL_Z4sinhEEE7executeIddEEvPKT_PT0_
Line
Count
Source
80
10
    static void execute(const T* src, U* dst) {
81
10
        *dst = static_cast<Float64>(Function(*src));
82
10
    }
_ZN5doris18UnaryFunctionPlainINS_8CbrtNameEXadL_Z4cbrtEEE7executeIddEEvPKT_PT0_
Line
Count
Source
80
29
    static void execute(const T* src, U* dst) {
81
29
        *dst = static_cast<Float64>(Function(*src));
82
29
    }
_ZN5doris18UnaryFunctionPlainINS_7TanNameEXadL_Z3tanEEE7executeIddEEvPKT_PT0_
Line
Count
Source
80
29
    static void execute(const T* src, U* dst) {
81
29
        *dst = static_cast<Float64>(Function(*src));
82
29
    }
_ZN5doris18UnaryFunctionPlainINS_8TanhNameEXadL_Z4tanhEEE7executeIddEEvPKT_PT0_
Line
Count
Source
80
25
    static void execute(const T* src, U* dst) {
81
25
        *dst = static_cast<Float64>(Function(*src));
82
25
    }
_ZN5doris18UnaryFunctionPlainINS_7CotNameEXadL_ZNS_3cotEdEEE7executeIddEEvPKT_PT0_
Line
Count
Source
80
19
    static void execute(const T* src, U* dst) {
81
19
        *dst = static_cast<Float64>(Function(*src));
82
19
    }
_ZN5doris18UnaryFunctionPlainINS_7SecNameEXadL_ZNS_3secEdEEE7executeIddEEvPKT_PT0_
Line
Count
Source
80
19
    static void execute(const T* src, U* dst) {
81
19
        *dst = static_cast<Float64>(Function(*src));
82
19
    }
_ZN5doris18UnaryFunctionPlainINS_7CscNameEXadL_ZNS_3cscEdEEE7executeIddEEvPKT_PT0_
Line
Count
Source
80
20
    static void execute(const T* src, U* dst) {
81
20
        *dst = static_cast<Float64>(Function(*src));
82
20
    }
_ZN5doris18UnaryFunctionPlainINS_7ExpNameEXadL_Z3expEEE7executeIddEEvPKT_PT0_
Line
Count
Source
80
71
    static void execute(const T* src, U* dst) {
81
71
        *dst = static_cast<Float64>(Function(*src));
82
71
    }
_ZN5doris18UnaryFunctionPlainINS_8NameEvenEXadL_ZNS_8EvenImplEdEEE7executeIddEEvPKT_PT0_
Line
Count
Source
80
34
    static void execute(const T* src, U* dst) {
81
34
        *dst = static_cast<Float64>(Function(*src));
82
34
    }
83
};
84
85
} // namespace doris