Coverage Report

Created: 2026-03-19 18:23

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
94
    static FunctionPtr create() { return std::make_shared<FunctionMathUnary>(); }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_9AsinhNameEXadL_Z5asinhEEEEE6createEv
Line
Count
Source
39
16
    static FunctionPtr create() { return std::make_shared<FunctionMathUnary>(); }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7CosNameEXadL_Z3cosEEEEE6createEv
Line
Count
Source
39
6
    static FunctionPtr create() { return std::make_shared<FunctionMathUnary>(); }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8CoshNameEXadL_Z4coshEEEEE6createEv
Line
Count
Source
39
4
    static FunctionPtr create() { return std::make_shared<FunctionMathUnary>(); }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7SinNameEXadL_Z3sinEEEEE6createEv
Line
Count
Source
39
6
    static FunctionPtr create() { return std::make_shared<FunctionMathUnary>(); }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8SinhNameEXadL_Z4sinhEEEEE6createEv
Line
Count
Source
39
16
    static FunctionPtr create() { return std::make_shared<FunctionMathUnary>(); }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8CbrtNameEXadL_Z4cbrtEEEEE6createEv
Line
Count
Source
39
6
    static FunctionPtr create() { return std::make_shared<FunctionMathUnary>(); }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7TanNameEXadL_Z3tanEEEEE6createEv
Line
Count
Source
39
6
    static FunctionPtr create() { return std::make_shared<FunctionMathUnary>(); }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8TanhNameEXadL_Z4tanhEEEEE6createEv
Line
Count
Source
39
4
    static FunctionPtr create() { return std::make_shared<FunctionMathUnary>(); }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7CotNameEXadL_ZNS_3cotEdEEEEE6createEv
Line
Count
Source
39
6
    static FunctionPtr create() { return std::make_shared<FunctionMathUnary>(); }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7SecNameEXadL_ZNS_3secEdEEEEE6createEv
Line
Count
Source
39
6
    static FunctionPtr create() { return std::make_shared<FunctionMathUnary>(); }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7CscNameEXadL_ZNS_3cscEdEEEEE6createEv
Line
Count
Source
39
6
    static FunctionPtr create() { return std::make_shared<FunctionMathUnary>(); }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7ExpNameEXadL_Z3expEEEEE6createEv
Line
Count
Source
39
6
    static FunctionPtr create() { return std::make_shared<FunctionMathUnary>(); }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8NameEvenEXadL_ZNS_8EvenImplEdEEEEE6createEv
Line
Count
Source
39
6
    static FunctionPtr create() { return std::make_shared<FunctionMathUnary>(); }
40
41
private:
42
26
    String get_name() const override { return name; }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_9AsinhNameEXadL_Z5asinhEEEEE8get_nameB5cxx11Ev
Line
Count
Source
42
2
    String get_name() const override { return name; }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7CosNameEXadL_Z3cosEEEEE8get_nameB5cxx11Ev
Line
Count
Source
42
2
    String get_name() const override { return name; }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8CoshNameEXadL_Z4coshEEEEE8get_nameB5cxx11Ev
Line
Count
Source
42
2
    String get_name() const override { return name; }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7SinNameEXadL_Z3sinEEEEE8get_nameB5cxx11Ev
Line
Count
Source
42
2
    String get_name() const override { return name; }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8SinhNameEXadL_Z4sinhEEEEE8get_nameB5cxx11Ev
Line
Count
Source
42
2
    String get_name() const override { return name; }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8CbrtNameEXadL_Z4cbrtEEEEE8get_nameB5cxx11Ev
Line
Count
Source
42
2
    String get_name() const override { return name; }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7TanNameEXadL_Z3tanEEEEE8get_nameB5cxx11Ev
Line
Count
Source
42
2
    String get_name() const override { return name; }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8TanhNameEXadL_Z4tanhEEEEE8get_nameB5cxx11Ev
Line
Count
Source
42
2
    String get_name() const override { return name; }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7CotNameEXadL_ZNS_3cotEdEEEEE8get_nameB5cxx11Ev
Line
Count
Source
42
2
    String get_name() const override { return name; }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7SecNameEXadL_ZNS_3secEdEEEEE8get_nameB5cxx11Ev
Line
Count
Source
42
2
    String get_name() const override { return name; }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7CscNameEXadL_ZNS_3cscEdEEEEE8get_nameB5cxx11Ev
Line
Count
Source
42
2
    String get_name() const override { return name; }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7ExpNameEXadL_Z3expEEEEE8get_nameB5cxx11Ev
Line
Count
Source
42
2
    String get_name() const override { return name; }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8NameEvenEXadL_ZNS_8EvenImplEdEEEEE8get_nameB5cxx11Ev
Line
Count
Source
42
2
    String get_name() const override { return name; }
43
42
    size_t get_number_of_arguments() const override { return 1; }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_9AsinhNameEXadL_Z5asinhEEEEE23get_number_of_argumentsEv
Line
Count
Source
43
12
    size_t get_number_of_arguments() const override { return 1; }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7CosNameEXadL_Z3cosEEEEE23get_number_of_argumentsEv
Line
Count
Source
43
2
    size_t get_number_of_arguments() const override { return 1; }
Unexecuted instantiation: _ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8CoshNameEXadL_Z4coshEEEEE23get_number_of_argumentsEv
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7SinNameEXadL_Z3sinEEEEE23get_number_of_argumentsEv
Line
Count
Source
43
2
    size_t get_number_of_arguments() const override { return 1; }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8SinhNameEXadL_Z4sinhEEEEE23get_number_of_argumentsEv
Line
Count
Source
43
12
    size_t get_number_of_arguments() const override { return 1; }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8CbrtNameEXadL_Z4cbrtEEEEE23get_number_of_argumentsEv
Line
Count
Source
43
2
    size_t get_number_of_arguments() const override { return 1; }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7TanNameEXadL_Z3tanEEEEE23get_number_of_argumentsEv
Line
Count
Source
43
2
    size_t get_number_of_arguments() const override { return 1; }
Unexecuted instantiation: _ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8TanhNameEXadL_Z4tanhEEEEE23get_number_of_argumentsEv
_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
2
    size_t get_number_of_arguments() const override { return 1; }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8NameEvenEXadL_ZNS_8EvenImplEdEEEEE23get_number_of_argumentsEv
Line
Count
Source
43
2
    size_t get_number_of_arguments() const override { return 1; }
44
45
42
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
46
42
        return std::make_shared<typename Impl::Type>();
47
42
    }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_9AsinhNameEXadL_Z5asinhEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
45
12
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
46
12
        return std::make_shared<typename Impl::Type>();
47
12
    }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7CosNameEXadL_Z3cosEEEEE20get_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
    }
Unexecuted instantiation: _ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8CoshNameEXadL_Z4coshEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7SinNameEXadL_Z3sinEEEEE20get_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_8SinhNameEXadL_Z4sinhEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
45
12
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
46
12
        return std::make_shared<typename Impl::Type>();
47
12
    }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8CbrtNameEXadL_Z4cbrtEEEEE20get_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_7TanNameEXadL_Z3tanEEEEE20get_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
    }
Unexecuted instantiation: _ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8TanhNameEXadL_Z4tanhEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
_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
2
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
46
2
        return std::make_shared<typename Impl::Type>();
47
2
    }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8NameEvenEXadL_ZNS_8EvenImplEdEEEEE20get_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
    }
48
49
42
    static void execute_in_iterations(const double* src_data, double* dst_data, size_t size) {
50
160
        for (size_t i = 0; i < size; i++) {
51
118
            Impl::execute(&src_data[i], &dst_data[i]);
52
118
        }
53
42
    }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_9AsinhNameEXadL_Z5asinhEEEEE21execute_in_iterationsEPKdPdm
Line
Count
Source
49
12
    static void execute_in_iterations(const double* src_data, double* dst_data, size_t size) {
50
32
        for (size_t i = 0; i < size; i++) {
51
20
            Impl::execute(&src_data[i], &dst_data[i]);
52
20
        }
53
12
    }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7CosNameEXadL_Z3cosEEEEE21execute_in_iterationsEPKdPdm
Line
Count
Source
49
2
    static void execute_in_iterations(const double* src_data, double* dst_data, size_t size) {
50
12
        for (size_t i = 0; i < size; i++) {
51
10
            Impl::execute(&src_data[i], &dst_data[i]);
52
10
        }
53
2
    }
Unexecuted instantiation: _ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8CoshNameEXadL_Z4coshEEEEE21execute_in_iterationsEPKdPdm
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7SinNameEXadL_Z3sinEEEEE21execute_in_iterationsEPKdPdm
Line
Count
Source
49
2
    static void execute_in_iterations(const double* src_data, double* dst_data, size_t size) {
50
12
        for (size_t i = 0; i < size; i++) {
51
10
            Impl::execute(&src_data[i], &dst_data[i]);
52
10
        }
53
2
    }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8SinhNameEXadL_Z4sinhEEEEE21execute_in_iterationsEPKdPdm
Line
Count
Source
49
12
    static void execute_in_iterations(const double* src_data, double* dst_data, size_t size) {
50
32
        for (size_t i = 0; i < size; i++) {
51
20
            Impl::execute(&src_data[i], &dst_data[i]);
52
20
        }
53
12
    }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8CbrtNameEXadL_Z4cbrtEEEEE21execute_in_iterationsEPKdPdm
Line
Count
Source
49
2
    static void execute_in_iterations(const double* src_data, double* dst_data, size_t size) {
50
10
        for (size_t i = 0; i < size; i++) {
51
8
            Impl::execute(&src_data[i], &dst_data[i]);
52
8
        }
53
2
    }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7TanNameEXadL_Z3tanEEEEE21execute_in_iterationsEPKdPdm
Line
Count
Source
49
2
    static void execute_in_iterations(const double* src_data, double* dst_data, size_t size) {
50
10
        for (size_t i = 0; i < size; i++) {
51
8
            Impl::execute(&src_data[i], &dst_data[i]);
52
8
        }
53
2
    }
Unexecuted instantiation: _ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8TanhNameEXadL_Z4tanhEEEEE21execute_in_iterationsEPKdPdm
_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
6
        for (size_t i = 0; i < size; i++) {
51
4
            Impl::execute(&src_data[i], &dst_data[i]);
52
4
        }
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
6
        for (size_t i = 0; i < size; i++) {
51
4
            Impl::execute(&src_data[i], &dst_data[i]);
52
4
        }
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
8
        for (size_t i = 0; i < size; i++) {
51
6
            Impl::execute(&src_data[i], &dst_data[i]);
52
6
        }
53
2
    }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7ExpNameEXadL_Z3expEEEEE21execute_in_iterationsEPKdPdm
Line
Count
Source
49
2
    static void execute_in_iterations(const double* src_data, double* dst_data, size_t size) {
50
12
        for (size_t i = 0; i < size; i++) {
51
10
            Impl::execute(&src_data[i], &dst_data[i]);
52
10
        }
53
2
    }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8NameEvenEXadL_ZNS_8EvenImplEdEEEEE21execute_in_iterationsEPKdPdm
Line
Count
Source
49
2
    static void execute_in_iterations(const double* src_data, double* dst_data, size_t size) {
50
20
        for (size_t i = 0; i < size; i++) {
51
18
            Impl::execute(&src_data[i], &dst_data[i]);
52
18
        }
53
2
    }
54
55
    Status execute_impl(FunctionContext* context, Block& block, const ColumnNumbers& arguments,
56
42
                        uint32_t result, size_t input_rows_count) const override {
57
42
        const auto* col =
58
42
                assert_cast<const ColumnFloat64*>(block.get_by_position(arguments[0]).column.get());
59
60
42
        const auto& src_data = col->get_data();
61
42
        const size_t size = src_data.size();
62
63
42
        auto dst = ColumnFloat64::create();
64
42
        auto& dst_data = dst->get_data();
65
42
        dst_data.resize(size);
66
67
42
        execute_in_iterations(col->get_data().data(), dst_data.data(), size);
68
69
42
        block.replace_by_position(result, std::move(dst));
70
42
        return Status::OK();
71
42
    }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_9AsinhNameEXadL_Z5asinhEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
56
12
                        uint32_t result, size_t input_rows_count) const override {
57
12
        const auto* col =
58
12
                assert_cast<const ColumnFloat64*>(block.get_by_position(arguments[0]).column.get());
59
60
12
        const auto& src_data = col->get_data();
61
12
        const size_t size = src_data.size();
62
63
12
        auto dst = ColumnFloat64::create();
64
12
        auto& dst_data = dst->get_data();
65
12
        dst_data.resize(size);
66
67
12
        execute_in_iterations(col->get_data().data(), dst_data.data(), size);
68
69
12
        block.replace_by_position(result, std::move(dst));
70
12
        return Status::OK();
71
12
    }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7CosNameEXadL_Z3cosEEEEE12execute_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
    }
Unexecuted instantiation: _ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8CoshNameEXadL_Z4coshEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7SinNameEXadL_Z3sinEEEEE12execute_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_8SinhNameEXadL_Z4sinhEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
56
12
                        uint32_t result, size_t input_rows_count) const override {
57
12
        const auto* col =
58
12
                assert_cast<const ColumnFloat64*>(block.get_by_position(arguments[0]).column.get());
59
60
12
        const auto& src_data = col->get_data();
61
12
        const size_t size = src_data.size();
62
63
12
        auto dst = ColumnFloat64::create();
64
12
        auto& dst_data = dst->get_data();
65
12
        dst_data.resize(size);
66
67
12
        execute_in_iterations(col->get_data().data(), dst_data.data(), size);
68
69
12
        block.replace_by_position(result, std::move(dst));
70
12
        return Status::OK();
71
12
    }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8CbrtNameEXadL_Z4cbrtEEEEE12execute_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_7TanNameEXadL_Z3tanEEEEE12execute_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
    }
Unexecuted instantiation: _ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8TanhNameEXadL_Z4tanhEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
_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
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_8NameEvenEXadL_ZNS_8EvenImplEdEEEEE12execute_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
    }
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
118
    static void execute(const T* src, U* dst) {
81
118
        *dst = static_cast<Float64>(Function(*src));
82
118
    }
_ZN5doris18UnaryFunctionPlainINS_9AsinhNameEXadL_Z5asinhEEE7executeIddEEvPKT_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_7CosNameEXadL_Z3cosEEE7executeIddEEvPKT_PT0_
Line
Count
Source
80
10
    static void execute(const T* src, U* dst) {
81
10
        *dst = static_cast<Float64>(Function(*src));
82
10
    }
Unexecuted instantiation: _ZN5doris18UnaryFunctionPlainINS_8CoshNameEXadL_Z4coshEEE7executeIddEEvPKT_PT0_
_ZN5doris18UnaryFunctionPlainINS_7SinNameEXadL_Z3sinEEE7executeIddEEvPKT_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_8SinhNameEXadL_Z4sinhEEE7executeIddEEvPKT_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_8CbrtNameEXadL_Z4cbrtEEE7executeIddEEvPKT_PT0_
Line
Count
Source
80
8
    static void execute(const T* src, U* dst) {
81
8
        *dst = static_cast<Float64>(Function(*src));
82
8
    }
_ZN5doris18UnaryFunctionPlainINS_7TanNameEXadL_Z3tanEEE7executeIddEEvPKT_PT0_
Line
Count
Source
80
8
    static void execute(const T* src, U* dst) {
81
8
        *dst = static_cast<Float64>(Function(*src));
82
8
    }
Unexecuted instantiation: _ZN5doris18UnaryFunctionPlainINS_8TanhNameEXadL_Z4tanhEEE7executeIddEEvPKT_PT0_
_ZN5doris18UnaryFunctionPlainINS_7CotNameEXadL_ZNS_3cotEdEEE7executeIddEEvPKT_PT0_
Line
Count
Source
80
4
    static void execute(const T* src, U* dst) {
81
4
        *dst = static_cast<Float64>(Function(*src));
82
4
    }
_ZN5doris18UnaryFunctionPlainINS_7SecNameEXadL_ZNS_3secEdEEE7executeIddEEvPKT_PT0_
Line
Count
Source
80
4
    static void execute(const T* src, U* dst) {
81
4
        *dst = static_cast<Float64>(Function(*src));
82
4
    }
_ZN5doris18UnaryFunctionPlainINS_7CscNameEXadL_ZNS_3cscEdEEE7executeIddEEvPKT_PT0_
Line
Count
Source
80
6
    static void execute(const T* src, U* dst) {
81
6
        *dst = static_cast<Float64>(Function(*src));
82
6
    }
_ZN5doris18UnaryFunctionPlainINS_7ExpNameEXadL_Z3expEEE7executeIddEEvPKT_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_8NameEvenEXadL_ZNS_8EvenImplEdEEE7executeIddEEvPKT_PT0_
Line
Count
Source
80
18
    static void execute(const T* src, U* dst) {
81
18
        *dst = static_cast<Float64>(Function(*src));
82
18
    }
83
};
84
85
} // namespace doris