Mark copy constructor and copy assignment operator as deleted to avoid unintentional copying.
Signed-off-by: Sergei Barannikov <s.barannikov@samsung.com>
public:
Operation(OperandConstraint input_constr, const OperandIndexSequence &inputs,
const OperandIndexSequence &outputs);
- Operation(OperandConstraint input_constr);
+ explicit Operation(OperandConstraint input_constr);
+
+ Operation(const Operation &) = delete;
+ Operation(Operation &&) = default;
+ Operation &operator=(const Operation &) = delete;
+ Operation &operator=(Operation &&) = default;
+
virtual ~Operation();
public:
void prepareAdd(ExecEnv *env, const model::Operation &node)
{
- auto add_node = reinterpret_cast<const model::operation::AddNode &>(node);
+ const auto &add_node = dynamic_cast<const model::operation::AddNode &>(node);
const auto lhs_index = node.getInputs().at(add_node.LHS);
const auto rhs_index = node.getInputs().at(add_node.RHS);
void invokeAdd(const ExecEnv *env, const model::Operation &node)
{
- auto add_node = reinterpret_cast<const model::operation::AddNode &>(node);
+ const auto &add_node = dynamic_cast<const model::operation::AddNode &>(node);
const auto lhs_index = node.getInputs().at(add_node.LHS);
const auto rhs_index = node.getInputs().at(add_node.RHS);
void prepareAvgPool2D(ExecEnv *env, const model::Operation &node)
{
- auto maxpool_node = reinterpret_cast<const model::operation::AvgPool2DNode &>(node);
-
const auto in_index = node.getInputs().at(0);
const auto out_index = node.getOutputs().at(0);
void invokeAvgPool2D(const ExecEnv *env, const model::Operation &node)
{
- auto maxpool_node = reinterpret_cast<const model::operation::AvgPool2DNode &>(node);
+ const auto &avgpool_node = dynamic_cast<const model::operation::AvgPool2DNode &>(node);
const auto in_index = node.getInputs().at(0);
const auto out_index = node.getOutputs().at(0);
const auto data_type = in_tensor->data_type();
if (data_type == model::DataType::FLOAT32)
{
- invoke(in_tensor, out_tensor, maxpool_node.param());
+ invoke(in_tensor, out_tensor, avgpool_node.param());
}
else
{
throw std::runtime_error{"NYI: Support float only"};
}
}
-} // namespace maxpool2d
+} // namespace avgpool2d
OpKernel *getAvgPool2DNode()
{
void prepareConcat(ExecEnv *env, const model::Operation &node)
{
- auto concat_node = reinterpret_cast<const model::operation::ConcatNode &>(node);
+ const auto &concat_node = dynamic_cast<const model::operation::ConcatNode &>(node);
const auto first_index = node.getInputs().at(0);
const auto out_index = node.getOutputs().at(0);
void invokeConcat(const ExecEnv *env, const model::Operation &node)
{
- auto concat_node = reinterpret_cast<const model::operation::ConcatNode &>(node);
+ const auto &concat_node = dynamic_cast<const model::operation::ConcatNode &>(node);
const auto axis_index{concat_node.param().axis_index};
const int32_t axis_raw = env->model().operands.at(axis_index).asScalar<int32_t>();
void prepareConv2D(ExecEnv *env, const model::Operation &node)
{
- auto maxpool_node = reinterpret_cast<const model::operation::Conv2DNode &>(node);
-
const auto in_index = node.getInputs().at(model::operation::Conv2DNode::INPUT);
const auto kernel_index = node.getInputs().at(model::operation::Conv2DNode::KERNEL);
const auto bias_index = node.getInputs().at(model::operation::Conv2DNode::BIAS);
void invokeConv2D(const ExecEnv *env, const model::Operation &node)
{
- auto conv_node = reinterpret_cast<const model::operation::Conv2DNode &>(node);
+ const auto &conv_node = dynamic_cast<const model::operation::Conv2DNode &>(node);
const auto ifm_index = node.getInputs().at(model::operation::Conv2DNode::INPUT);
const auto ker_index = node.getInputs().at(model::operation::Conv2DNode::KERNEL);
void prepareFC(ExecEnv *env, const model::Operation &node)
{
- auto maxpool_node = reinterpret_cast<const model::operation::FullyConnectedNode &>(node);
-
const auto in_index = node.getInputs().at(model::operation::FullyConnectedNode::INPUT);
const auto kernel_index = node.getInputs().at(model::operation::FullyConnectedNode::WEIGHT);
const auto bias_index = node.getInputs().at(model::operation::FullyConnectedNode::BIAS);
void invokeFC(const ExecEnv *env, const model::Operation &node)
{
- auto conv_node = reinterpret_cast<const model::operation::FullyConnectedNode &>(node);
+ const auto &conv_node = dynamic_cast<const model::operation::FullyConnectedNode &>(node);
const auto ifm_index = node.getInputs().at(model::operation::FullyConnectedNode::INPUT);
const auto ker_index = node.getInputs().at(model::operation::FullyConnectedNode::WEIGHT);