summaryrefslogtreecommitdiffstats
path: root/eval/src/vespa/eval/tensor/dense/dense_fast_rename_function.h
blob: e7de8e95ff01f8f4064c1658310c48eced4e3411 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.

#pragma once

#include <vespa/eval/eval/tensor_function.h>

namespace vespalib::tensor {

/**
 * Tensor function for efficient non-transposing rename of a dense
 * tensor.
 **/
class DenseFastRenameFunction : public eval::tensor_function::Op1
{
public:
    DenseFastRenameFunction(const eval::ValueType &result_type,
                            const eval::TensorFunction &child);
    ~DenseFastRenameFunction();
    eval::InterpretedFunction::Instruction compile_self(Stash &stash) const override;
    static const eval::TensorFunction &optimize(const eval::TensorFunction &expr, Stash &stash);
};

} // namespace vespalib::tensor