diff options
Diffstat (limited to 'arm_compute/runtime/NEON/functions/NESlice.h')
-rw-r--r-- | arm_compute/runtime/NEON/functions/NESlice.h | 70 |
1 files changed, 39 insertions, 31 deletions
diff --git a/arm_compute/runtime/NEON/functions/NESlice.h b/arm_compute/runtime/NEON/functions/NESlice.h index 214ffa512c..550bfd2188 100644 --- a/arm_compute/runtime/NEON/functions/NESlice.h +++ b/arm_compute/runtime/NEON/functions/NESlice.h @@ -32,25 +32,44 @@ namespace arm_compute // Forward Declarations class ITensor; -namespace experimental -{ /** Basic function to perform tensor slicing */ -class NESlice : public INEOperator +class NESlice : public IFunction { public: + /** Default Constructor */ + NESlice(); + /** Default Destructor */ + ~NESlice(); + /** Prevent instances of this class from being copied (As this class contains pointers) */ + NESlice(const NESlice &) = delete; + /** Default move constructor */ + NESlice(NESlice &&); + /** Prevent instances of this class from being copied (As this class contains pointers) */ + NESlice &operator=(const NESlice &) = delete; + /** Default move assignment operator */ + NESlice &operator=(NESlice &&); + /** Configure kernel * + * Valid data layouts: + * - All + * + * Valid data type configurations: + * |src |dst | + * |:------|:------| + * |All |All | + * * @note Supported tensor rank: up to 4 * @note Start indices must be non-negative. 0 <= starts[i] * @note End coordinates can be negative, which represents the number of elements before the end of that dimension. * @note End indices are not inclusive unless negative. * - * @param[in] input Source tensor info. Data type supported: All - * @param[out] output Destination tensor info. Data type supported: Same as @p input + * @param[in] input Source tensor. Data type supported: All + * @param[out] output Destination tensor. Data type supported: Same as @p input * @param[in] starts The starts of the dimensions of the input tensor to be sliced. The length must be of rank(input). * @param[in] ends The ends of the dimensions of the input tensor to be sliced. The length must be of rank(input). */ - void configure(const ITensorInfo *input, ITensorInfo *output, const Coordinates &starts, const Coordinates &ends); + void configure(const ITensor *input, ITensor *output, const Coordinates &starts, const Coordinates &ends); /** Static function to check if given info will lead to a valid configuration of @ref NESlice * @@ -67,26 +86,21 @@ public: * @return A status */ static Status validate(const ITensorInfo *input, const ITensorInfo *output, const Coordinates &starts, const Coordinates &ends); + + // Inherited methods overridden: + void run() override; + +private: + struct Impl; + std::unique_ptr<Impl> _impl; }; -} // namespace experimental +namespace experimental +{ /** Basic function to perform tensor slicing */ -class NESlice : public IFunction +class NESlice : public INEOperator { public: - /** Default Constructor */ - NESlice(); - /** Default Destructor */ - ~NESlice(); - /** Prevent instances of this class from being copied (As this class contains pointers) */ - NESlice(const NESlice &) = delete; - /** Default move constructor */ - NESlice(NESlice &&); - /** Prevent instances of this class from being copied (As this class contains pointers) */ - NESlice &operator=(const NESlice &) = delete; - /** Default move assignment operator */ - NESlice &operator=(NESlice &&); - /** Configure kernel * * Valid data layouts: @@ -102,12 +116,12 @@ public: * @note End coordinates can be negative, which represents the number of elements before the end of that dimension. * @note End indices are not inclusive unless negative. * - * @param[in] input Source tensor. Data type supported: All - * @param[out] output Destination tensor. Data type supported: Same as @p input + * @param[in] input Source tensor info. Data type supported: All + * @param[out] output Destination tensor info. Data type supported: Same as @p input * @param[in] starts The starts of the dimensions of the input tensor to be sliced. The length must be of rank(input). * @param[in] ends The ends of the dimensions of the input tensor to be sliced. The length must be of rank(input). */ - void configure(const ITensor *input, ITensor *output, const Coordinates &starts, const Coordinates &ends); + void configure(const ITensorInfo *input, ITensorInfo *output, const Coordinates &starts, const Coordinates &ends); /** Static function to check if given info will lead to a valid configuration of @ref NESlice * @@ -124,13 +138,7 @@ public: * @return A status */ static Status validate(const ITensorInfo *input, const ITensorInfo *output, const Coordinates &starts, const Coordinates &ends); - - // Inherited methods overridden: - void run() override; - -private: - struct Impl; - std::unique_ptr<Impl> _impl; }; +} // namespace experimental } // namespace arm_compute #endif /* ARM_COMPUTE_NE_SLICE_H */ |