MNN/source/backend/cpu/CPUBinary.hpp

42 lines
1.2 KiB
C++
Raw Normal View History

2019-04-17 10:49:11 +08:00
//
// CPUBinary.hpp
// MNN
//
// Created by MNN on 2018/08/02.
// Copyright © 2018, Alibaba Group Holding Limited
//
#ifndef CPUBinary_hpp
#define CPUBinary_hpp
2019-12-27 22:16:57 +08:00
#include "core/Execution.hpp"
2019-04-17 10:49:11 +08:00
namespace MNN {
2020-02-26 09:57:17 +08:00
class CPUBinaryFloat : public Execution {
2019-04-17 10:49:11 +08:00
public:
2020-02-26 09:57:17 +08:00
CPUBinaryFloat(Backend *b, int32_t type);
virtual ~CPUBinaryFloat() = default;
2019-04-17 10:49:11 +08:00
virtual ErrorCode onResize(const std::vector<Tensor *> &inputs, const std::vector<Tensor *> &outputs) override;
virtual ErrorCode onExecute(const std::vector<Tensor *> &inputs, const std::vector<Tensor *> &outputs) override;
protected:
int32_t mType;
void (*mElementProc)(float* C, const float* A, const float* B, size_t width, size_t cStride, size_t aStride, size_t bStride, size_t height) = nullptr;
bool mSupportScale = false;
2020-02-26 09:57:17 +08:00
int mOutside = 1;
int mInside = 1;
int mAxis = 1;
};
class CPUBinaryInt : public Execution {
public:
CPUBinaryInt(Backend *b, int32_t type);
virtual ~CPUBinaryInt() = default;
virtual ErrorCode onExecute(const std::vector<Tensor *> &inputs, const std::vector<Tensor *> &outputs) override;
protected:
int32_t mType;
2019-04-17 10:49:11 +08:00
};
} // namespace MNN
#endif /* CPUBinary_hpp */