Coverage Report

Created: 2026-03-16 23:17

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
47
    static FunctionPtr create() { return std::make_shared<FunctionMathUnary>(); }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_9AsinhNameEXadL_Z5asinhEEEEE6createEv
Line
Count
Source
39
8
    static FunctionPtr create() { return std::make_shared<FunctionMathUnary>(); }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7CosNameEXadL_Z3cosEEEEE6createEv
Line
Count
Source
39
3
    static FunctionPtr create() { return std::make_shared<FunctionMathUnary>(); }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8CoshNameEXadL_Z4coshEEEEE6createEv
Line
Count
Source
39
2
    static FunctionPtr create() { return std::make_shared<FunctionMathUnary>(); }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7SinNameEXadL_Z3sinEEEEE6createEv
Line
Count
Source
39
3
    static FunctionPtr create() { return std::make_shared<FunctionMathUnary>(); }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8SinhNameEXadL_Z4sinhEEEEE6createEv
Line
Count
Source
39
8
    static FunctionPtr create() { return std::make_shared<FunctionMathUnary>(); }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8CbrtNameEXadL_Z4cbrtEEEEE6createEv
Line
Count
Source
39
3
    static FunctionPtr create() { return std::make_shared<FunctionMathUnary>(); }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7TanNameEXadL_Z3tanEEEEE6createEv
Line
Count
Source
39
3
    static FunctionPtr create() { return std::make_shared<FunctionMathUnary>(); }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8TanhNameEXadL_Z4tanhEEEEE6createEv
Line
Count
Source
39
2
    static FunctionPtr create() { return std::make_shared<FunctionMathUnary>(); }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7CotNameEXadL_ZNS_3cotEdEEEEE6createEv
Line
Count
Source
39
3
    static FunctionPtr create() { return std::make_shared<FunctionMathUnary>(); }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7SecNameEXadL_ZNS_3secEdEEEEE6createEv
Line
Count
Source
39
3
    static FunctionPtr create() { return std::make_shared<FunctionMathUnary>(); }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7CscNameEXadL_ZNS_3cscEdEEEEE6createEv
Line
Count
Source
39
3
    static FunctionPtr create() { return std::make_shared<FunctionMathUnary>(); }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7ExpNameEXadL_Z3expEEEEE6createEv
Line
Count
Source
39
3
    static FunctionPtr create() { return std::make_shared<FunctionMathUnary>(); }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8NameEvenEXadL_ZNS_8EvenImplEdEEEEE6createEv
Line
Count
Source
39
3
    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
21
    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
1
    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
1
    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
1
    size_t get_number_of_arguments() const override { return 1; }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7TanNameEXadL_Z3tanEEEEE23get_number_of_argumentsEv
Line
Count
Source
43
1
    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
1
    size_t get_number_of_arguments() const override { return 1; }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7SecNameEXadL_ZNS_3secEdEEEEE23get_number_of_argumentsEv
Line
Count
Source
43
1
    size_t get_number_of_arguments() const override { return 1; }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7CscNameEXadL_ZNS_3cscEdEEEEE23get_number_of_argumentsEv
Line
Count
Source
43
1
    size_t get_number_of_arguments() const override { return 1; }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7ExpNameEXadL_Z3expEEEEE23get_number_of_argumentsEv
Line
Count
Source
43
1
    size_t get_number_of_arguments() const override { return 1; }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8NameEvenEXadL_ZNS_8EvenImplEdEEEEE23get_number_of_argumentsEv
Line
Count
Source
43
1
    size_t get_number_of_arguments() const override { return 1; }
44
45
21
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
46
21
        return std::make_shared<typename Impl::Type>();
47
21
    }
_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
1
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
46
1
        return std::make_shared<typename Impl::Type>();
47
1
    }
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
1
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
46
1
        return std::make_shared<typename Impl::Type>();
47
1
    }
_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
1
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
46
1
        return std::make_shared<typename Impl::Type>();
47
1
    }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7TanNameEXadL_Z3tanEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
45
1
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
46
1
        return std::make_shared<typename Impl::Type>();
47
1
    }
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
1
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
46
1
        return std::make_shared<typename Impl::Type>();
47
1
    }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7SecNameEXadL_ZNS_3secEdEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
45
1
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
46
1
        return std::make_shared<typename Impl::Type>();
47
1
    }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7CscNameEXadL_ZNS_3cscEdEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
45
1
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
46
1
        return std::make_shared<typename Impl::Type>();
47
1
    }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7ExpNameEXadL_Z3expEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
45
1
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
46
1
        return std::make_shared<typename Impl::Type>();
47
1
    }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8NameEvenEXadL_ZNS_8EvenImplEdEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
45
1
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
46
1
        return std::make_shared<typename Impl::Type>();
47
1
    }
48
49
21
    static void execute_in_iterations(const double* src_data, double* dst_data, size_t size) {
50
80
        for (size_t i = 0; i < size; i++) {
51
59
            Impl::execute(&src_data[i], &dst_data[i]);
52
59
        }
53
21
    }
_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
1
    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
5
            Impl::execute(&src_data[i], &dst_data[i]);
52
5
        }
53
1
    }
Unexecuted instantiation: _ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8CoshNameEXadL_Z4coshEEEEE21execute_in_iterationsEPKdPdm
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7SinNameEXadL_Z3sinEEEEE21execute_in_iterationsEPKdPdm
Line
Count
Source
49
1
    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
5
            Impl::execute(&src_data[i], &dst_data[i]);
52
5
        }
53
1
    }
_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
1
    static void execute_in_iterations(const double* src_data, double* dst_data, size_t size) {
50
5
        for (size_t i = 0; i < size; i++) {
51
4
            Impl::execute(&src_data[i], &dst_data[i]);
52
4
        }
53
1
    }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7TanNameEXadL_Z3tanEEEEE21execute_in_iterationsEPKdPdm
Line
Count
Source
49
1
    static void execute_in_iterations(const double* src_data, double* dst_data, size_t size) {
50
5
        for (size_t i = 0; i < size; i++) {
51
4
            Impl::execute(&src_data[i], &dst_data[i]);
52
4
        }
53
1
    }
Unexecuted instantiation: _ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8TanhNameEXadL_Z4tanhEEEEE21execute_in_iterationsEPKdPdm
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7CotNameEXadL_ZNS_3cotEdEEEEE21execute_in_iterationsEPKdPdm
Line
Count
Source
49
1
    static void execute_in_iterations(const double* src_data, double* dst_data, size_t size) {
50
3
        for (size_t i = 0; i < size; i++) {
51
2
            Impl::execute(&src_data[i], &dst_data[i]);
52
2
        }
53
1
    }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7SecNameEXadL_ZNS_3secEdEEEEE21execute_in_iterationsEPKdPdm
Line
Count
Source
49
1
    static void execute_in_iterations(const double* src_data, double* dst_data, size_t size) {
50
3
        for (size_t i = 0; i < size; i++) {
51
2
            Impl::execute(&src_data[i], &dst_data[i]);
52
2
        }
53
1
    }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7CscNameEXadL_ZNS_3cscEdEEEEE21execute_in_iterationsEPKdPdm
Line
Count
Source
49
1
    static void execute_in_iterations(const double* src_data, double* dst_data, size_t size) {
50
4
        for (size_t i = 0; i < size; i++) {
51
3
            Impl::execute(&src_data[i], &dst_data[i]);
52
3
        }
53
1
    }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7ExpNameEXadL_Z3expEEEEE21execute_in_iterationsEPKdPdm
Line
Count
Source
49
1
    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
5
            Impl::execute(&src_data[i], &dst_data[i]);
52
5
        }
53
1
    }
_ZN5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8NameEvenEXadL_ZNS_8EvenImplEdEEEEE21execute_in_iterationsEPKdPdm
Line
Count
Source
49
1
    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
9
            Impl::execute(&src_data[i], &dst_data[i]);
52
9
        }
53
1
    }
54
55
    Status execute_impl(FunctionContext* context, Block& block, const ColumnNumbers& arguments,
56
21
                        uint32_t result, size_t input_rows_count) const override {
57
21
        const auto* col =
58
21
                assert_cast<const ColumnFloat64*>(block.get_by_position(arguments[0]).column.get());
59
60
21
        const auto& src_data = col->get_data();
61
21
        const size_t size = src_data.size();
62
63
21
        auto dst = ColumnFloat64::create();
64
21
        auto& dst_data = dst->get_data();
65
21
        dst_data.resize(size);
66
67
21
        execute_in_iterations(col->get_data().data(), dst_data.data(), size);
68
69
21
        block.replace_by_position(result, std::move(dst));
70
21
        return Status::OK();
71
21
    }
_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
1
                        uint32_t result, size_t input_rows_count) const override {
57
1
        const auto* col =
58
1
                assert_cast<const ColumnFloat64*>(block.get_by_position(arguments[0]).column.get());
59
60
1
        const auto& src_data = col->get_data();
61
1
        const size_t size = src_data.size();
62
63
1
        auto dst = ColumnFloat64::create();
64
1
        auto& dst_data = dst->get_data();
65
1
        dst_data.resize(size);
66
67
1
        execute_in_iterations(col->get_data().data(), dst_data.data(), size);
68
69
1
        block.replace_by_position(result, std::move(dst));
70
1
        return Status::OK();
71
1
    }
Unexecuted instantiation: _ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8CoshNameEXadL_Z4coshEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7SinNameEXadL_Z3sinEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
56
1
                        uint32_t result, size_t input_rows_count) const override {
57
1
        const auto* col =
58
1
                assert_cast<const ColumnFloat64*>(block.get_by_position(arguments[0]).column.get());
59
60
1
        const auto& src_data = col->get_data();
61
1
        const size_t size = src_data.size();
62
63
1
        auto dst = ColumnFloat64::create();
64
1
        auto& dst_data = dst->get_data();
65
1
        dst_data.resize(size);
66
67
1
        execute_in_iterations(col->get_data().data(), dst_data.data(), size);
68
69
1
        block.replace_by_position(result, std::move(dst));
70
1
        return Status::OK();
71
1
    }
_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
1
                        uint32_t result, size_t input_rows_count) const override {
57
1
        const auto* col =
58
1
                assert_cast<const ColumnFloat64*>(block.get_by_position(arguments[0]).column.get());
59
60
1
        const auto& src_data = col->get_data();
61
1
        const size_t size = src_data.size();
62
63
1
        auto dst = ColumnFloat64::create();
64
1
        auto& dst_data = dst->get_data();
65
1
        dst_data.resize(size);
66
67
1
        execute_in_iterations(col->get_data().data(), dst_data.data(), size);
68
69
1
        block.replace_by_position(result, std::move(dst));
70
1
        return Status::OK();
71
1
    }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7TanNameEXadL_Z3tanEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
56
1
                        uint32_t result, size_t input_rows_count) const override {
57
1
        const auto* col =
58
1
                assert_cast<const ColumnFloat64*>(block.get_by_position(arguments[0]).column.get());
59
60
1
        const auto& src_data = col->get_data();
61
1
        const size_t size = src_data.size();
62
63
1
        auto dst = ColumnFloat64::create();
64
1
        auto& dst_data = dst->get_data();
65
1
        dst_data.resize(size);
66
67
1
        execute_in_iterations(col->get_data().data(), dst_data.data(), size);
68
69
1
        block.replace_by_position(result, std::move(dst));
70
1
        return Status::OK();
71
1
    }
Unexecuted instantiation: _ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8TanhNameEXadL_Z4tanhEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7CotNameEXadL_ZNS_3cotEdEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
56
1
                        uint32_t result, size_t input_rows_count) const override {
57
1
        const auto* col =
58
1
                assert_cast<const ColumnFloat64*>(block.get_by_position(arguments[0]).column.get());
59
60
1
        const auto& src_data = col->get_data();
61
1
        const size_t size = src_data.size();
62
63
1
        auto dst = ColumnFloat64::create();
64
1
        auto& dst_data = dst->get_data();
65
1
        dst_data.resize(size);
66
67
1
        execute_in_iterations(col->get_data().data(), dst_data.data(), size);
68
69
1
        block.replace_by_position(result, std::move(dst));
70
1
        return Status::OK();
71
1
    }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7SecNameEXadL_ZNS_3secEdEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
56
1
                        uint32_t result, size_t input_rows_count) const override {
57
1
        const auto* col =
58
1
                assert_cast<const ColumnFloat64*>(block.get_by_position(arguments[0]).column.get());
59
60
1
        const auto& src_data = col->get_data();
61
1
        const size_t size = src_data.size();
62
63
1
        auto dst = ColumnFloat64::create();
64
1
        auto& dst_data = dst->get_data();
65
1
        dst_data.resize(size);
66
67
1
        execute_in_iterations(col->get_data().data(), dst_data.data(), size);
68
69
1
        block.replace_by_position(result, std::move(dst));
70
1
        return Status::OK();
71
1
    }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7CscNameEXadL_ZNS_3cscEdEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
56
1
                        uint32_t result, size_t input_rows_count) const override {
57
1
        const auto* col =
58
1
                assert_cast<const ColumnFloat64*>(block.get_by_position(arguments[0]).column.get());
59
60
1
        const auto& src_data = col->get_data();
61
1
        const size_t size = src_data.size();
62
63
1
        auto dst = ColumnFloat64::create();
64
1
        auto& dst_data = dst->get_data();
65
1
        dst_data.resize(size);
66
67
1
        execute_in_iterations(col->get_data().data(), dst_data.data(), size);
68
69
1
        block.replace_by_position(result, std::move(dst));
70
1
        return Status::OK();
71
1
    }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_7ExpNameEXadL_Z3expEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
56
1
                        uint32_t result, size_t input_rows_count) const override {
57
1
        const auto* col =
58
1
                assert_cast<const ColumnFloat64*>(block.get_by_position(arguments[0]).column.get());
59
60
1
        const auto& src_data = col->get_data();
61
1
        const size_t size = src_data.size();
62
63
1
        auto dst = ColumnFloat64::create();
64
1
        auto& dst_data = dst->get_data();
65
1
        dst_data.resize(size);
66
67
1
        execute_in_iterations(col->get_data().data(), dst_data.data(), size);
68
69
1
        block.replace_by_position(result, std::move(dst));
70
1
        return Status::OK();
71
1
    }
_ZNK5doris17FunctionMathUnaryINS_18UnaryFunctionPlainINS_8NameEvenEXadL_ZNS_8EvenImplEdEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
56
1
                        uint32_t result, size_t input_rows_count) const override {
57
1
        const auto* col =
58
1
                assert_cast<const ColumnFloat64*>(block.get_by_position(arguments[0]).column.get());
59
60
1
        const auto& src_data = col->get_data();
61
1
        const size_t size = src_data.size();
62
63
1
        auto dst = ColumnFloat64::create();
64
1
        auto& dst_data = dst->get_data();
65
1
        dst_data.resize(size);
66
67
1
        execute_in_iterations(col->get_data().data(), dst_data.data(), size);
68
69
1
        block.replace_by_position(result, std::move(dst));
70
1
        return Status::OK();
71
1
    }
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
59
    static void execute(const T* src, U* dst) {
81
59
        *dst = static_cast<Float64>(Function(*src));
82
59
    }
_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
5
    static void execute(const T* src, U* dst) {
81
5
        *dst = static_cast<Float64>(Function(*src));
82
5
    }
Unexecuted instantiation: _ZN5doris18UnaryFunctionPlainINS_8CoshNameEXadL_Z4coshEEE7executeIddEEvPKT_PT0_
_ZN5doris18UnaryFunctionPlainINS_7SinNameEXadL_Z3sinEEE7executeIddEEvPKT_PT0_
Line
Count
Source
80
5
    static void execute(const T* src, U* dst) {
81
5
        *dst = static_cast<Float64>(Function(*src));
82
5
    }
_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
4
    static void execute(const T* src, U* dst) {
81
4
        *dst = static_cast<Float64>(Function(*src));
82
4
    }
_ZN5doris18UnaryFunctionPlainINS_7TanNameEXadL_Z3tanEEE7executeIddEEvPKT_PT0_
Line
Count
Source
80
4
    static void execute(const T* src, U* dst) {
81
4
        *dst = static_cast<Float64>(Function(*src));
82
4
    }
Unexecuted instantiation: _ZN5doris18UnaryFunctionPlainINS_8TanhNameEXadL_Z4tanhEEE7executeIddEEvPKT_PT0_
_ZN5doris18UnaryFunctionPlainINS_7CotNameEXadL_ZNS_3cotEdEEE7executeIddEEvPKT_PT0_
Line
Count
Source
80
2
    static void execute(const T* src, U* dst) {
81
2
        *dst = static_cast<Float64>(Function(*src));
82
2
    }
_ZN5doris18UnaryFunctionPlainINS_7SecNameEXadL_ZNS_3secEdEEE7executeIddEEvPKT_PT0_
Line
Count
Source
80
2
    static void execute(const T* src, U* dst) {
81
2
        *dst = static_cast<Float64>(Function(*src));
82
2
    }
_ZN5doris18UnaryFunctionPlainINS_7CscNameEXadL_ZNS_3cscEdEEE7executeIddEEvPKT_PT0_
Line
Count
Source
80
3
    static void execute(const T* src, U* dst) {
81
3
        *dst = static_cast<Float64>(Function(*src));
82
3
    }
_ZN5doris18UnaryFunctionPlainINS_7ExpNameEXadL_Z3expEEE7executeIddEEvPKT_PT0_
Line
Count
Source
80
5
    static void execute(const T* src, U* dst) {
81
5
        *dst = static_cast<Float64>(Function(*src));
82
5
    }
_ZN5doris18UnaryFunctionPlainINS_8NameEvenEXadL_ZNS_8EvenImplEdEEE7executeIddEEvPKT_PT0_
Line
Count
Source
80
9
    static void execute(const T* src, U* dst) {
81
9
        *dst = static_cast<Float64>(Function(*src));
82
9
    }
83
};
84
85
} // namespace doris