24 #ifndef ARM_COMPUTE_EXPERIMENTAL_IPOSTOP 25 #define ARM_COMPUTE_EXPERIMENTAL_IPOSTOP 33 namespace experimental
88 template <
typename TensorRelatedT>
97 return arguments().size();
100 virtual int prev_dst_pos()
const = 0;
106 virtual std::vector<TensorRelatedT *> arguments() = 0;
107 virtual std::vector<const TensorRelatedT *> arguments()
const = 0;
111 virtual std::unique_ptr<IPostOp<TensorRelatedT>> clone()
const = 0;
118 template <
typename TensorRelatedT>
128 for(
const auto &op : other._post_ops)
130 this->_post_ops.push_back(op->clone());
143 template <
typename OpT,
typename... Args>
146 _post_ops.push_back(std::make_unique<OpT>(std::forward<Args>(
args)...));
152 return _post_ops.size();
158 return std::accumulate(_post_ops.begin(), _post_ops.end(), 0, [](
size_t op1_arity,
const auto & op2)
160 return op1_arity + op2->arity();
165 std::vector<std::unique_ptr<IPostOp<TensorRelatedT>>> &
get_list()
169 const std::vector<std::unique_ptr<IPostOp<TensorRelatedT>>> &
get_list()
const 175 std::vector<std::unique_ptr<IPostOp<TensorRelatedT>>> _post_ops{};
180 #endif //ARM_COMPUTE_EXPERIMENTAL_IPOSTOP std::vector< std::unique_ptr< IPostOp< TensorRelatedT > > > & get_list()
Get the underlying post op list.
PostOpList(const PostOpList &other)
PostOpType
Type of Post Op.
An elementwise n-ary operation that can be appended to and fused with (at kernel-level) other operato...
std::vector< PostOpType > PostOpTypeSequence
An ordered sequence of type of Post Ops.
decltype(strategy::transforms) typedef type
SimpleTensor< T2 > accumulate(const SimpleTensor< T1 > &src, DataType output_data_type)
Copyright (c) 2017-2022 Arm Limited.
void push_back_op(Args &&... args)
Add a new post op at the end of the list.
size_t arity() const
Get the arity of the post op.
size_t total_num_arguments() const
Total number of post ops.
const std::vector< std::unique_ptr< IPostOp< TensorRelatedT > > > & get_list() const
size_t size() const
Number of post ops.
void swap(Window &lhs, Window &rhs)
A sequence of PostOps that can be appended to the end of other operators.
PostOpList & operator=(const PostOpList &other)