summaryrefslogtreecommitdiff
path: root/libs/ARMComputeEx/arm_compute/core/CL/kernels/CLPixelWiseDivisionKernel.h
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ARMComputeEx/arm_compute/core/CL/kernels/CLPixelWiseDivisionKernel.h')
-rw-r--r--libs/ARMComputeEx/arm_compute/core/CL/kernels/CLPixelWiseDivisionKernel.h78
1 files changed, 58 insertions, 20 deletions
diff --git a/libs/ARMComputeEx/arm_compute/core/CL/kernels/CLPixelWiseDivisionKernel.h b/libs/ARMComputeEx/arm_compute/core/CL/kernels/CLPixelWiseDivisionKernel.h
index cd2b255bc..d579f5d8f 100644
--- a/libs/ARMComputeEx/arm_compute/core/CL/kernels/CLPixelWiseDivisionKernel.h
+++ b/libs/ARMComputeEx/arm_compute/core/CL/kernels/CLPixelWiseDivisionKernel.h
@@ -14,68 +14,106 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
+/**
+ * @file CLPixelWiseDivisionKernel.h
+ * @ingroup COM_AI_RUNTIME
+ * @brief This file defines CLPixelWiseDivisionKernel class
+ */
+
#ifndef __ARM_COMPUTE_CLPIXELWISEDIVISIONKERNEL_H__
#define __ARM_COMPUTE_CLPIXELWISEDIVISIONKERNEL_H__
#include "arm_compute/core/CL/ICLKernel.h"
-#include "arm_compute/core/Types.h"
namespace arm_compute
{
class ICLTensor;
-/** Interface for the pixelwise division kernel.
- *
+/**
+ * @brief Interface for the pixelwise division kernel.
*/
class CLPixelWiseDivisionKernel : public ICLKernel
{
public:
- /** Default constructor.*/
+ /**
+ * @brief Construct a CLPixelWiseDivisionKernel object
+ */
CLPixelWiseDivisionKernel();
- /** Prevent instances of this class from being copied (As this class contains pointers). */
+
+ /**
+ * @brief Prevent instances of this class from being copied (As this class contains pointers).
+ */
CLPixelWiseDivisionKernel(const CLPixelWiseDivisionKernel &) = delete;
- /** Prevent instances of this class from being copied (As this class contains pointers). */
+
+ /**
+ * @brief Prevent instances of this class from being copied (As this class contains pointers).
+ */
CLPixelWiseDivisionKernel &operator=(const CLPixelWiseDivisionKernel &) = delete;
- /** Allow instances of this class to be moved */
+
+ /**
+ * @brief Construct a CLPixelWiseDivisionKernel object by using move constructor
+ * @param[in] CLPixelWiseDivisionKernel object to move
+ */
CLPixelWiseDivisionKernel(CLPixelWiseDivisionKernel &&) = default;
- /** Allow instances of this class to be moved */
+
+ /**
+ * @brief Allow instances of this class to be moved
+ * @param[in] CLPixelWiseDivisionKernel object to move
+ */
CLPixelWiseDivisionKernel &operator=(CLPixelWiseDivisionKernel &&) = default;
- /** Initialise the kernel's input, output and border mode.
- *
- * @param[in] input1 An input tensor. Data types supported: U8/QS8/QS16/S16/F16/F32.
+
+ /**
+ * @brief Initialise the kernel's input, output and border mode.
+ * @param[in] input1 An input tensor. Data types supported: U8/S16/F16/F32.
* @param[in] input2 An input tensor. Data types supported: same as @p input1.
* @param[out] output The output tensor, Data types supported: same as @p input1. Note:
- * U8 (QS8, QS16) requires both inputs to be U8 (QS8, QS16).
+ * U8 requires both inputs to be U8.
* @param[in] scale Scale to apply after division.
* Scale must be positive and its value must be either 1/255 or 1/2^n
- * where n is between 0 and 15. For QS8 and QS16 scale must be 1.
+ * where n is between 0 and 15.
* @param[in] overflow_policy Overflow policy. Supported overflow policies: Wrap, Saturate
* @param[in] rounding_policy Rounding policy. Supported rounding modes: to zero, to nearest
* even.
+ * @return N/A
*/
void configure(const ICLTensor *input1, const ICLTensor *input2, ICLTensor *output, float scale,
ConvertPolicy overflow_policy, RoundingPolicy rounding_policy);
- /** Static function to check if given info will lead to a valid configuration of @ref
+
+ /**
+ * @brief Static function to check if given info will lead to a valid configuration of @ref
* CLPixelWiseDivisionKernel
- *
- * @param[in] input1 An input tensor info. Data types supported: U8/QS8/QS16/S16/F16/F32.
+ * @param[in] input1 An input tensor info. Data types supported: U8/S16/F16/F32.
* @param[in] input2 An input tensor info. Data types supported: same as @p input1.
* @param[in] output The output tensor info, Data types supported: same as @p input1.
- * Note: U8 (QS8, QS16) requires both inputs to be U8 (QS8, QS16).
+ * Note: U8 requires both inputs to be U8.
* @param[in] scale Scale to apply after division.
* Scale must be positive and its value must be either 1/255 or 1/2^n
- * where n is between 0 and 15. For QS8 and QS16 scale must be 1.
+ * where n is between 0 and 15.
* @param[in] overflow_policy Overflow policy. Supported overflow policies: Wrap, Saturate
* @param[in] rounding_policy Rounding policy. Supported rounding modes: to zero, to nearest even.
- *
* @return a status
*/
static Status validate(const ITensorInfo *input1, const ITensorInfo *input2,
const ITensorInfo *output, float scale, ConvertPolicy overflow_policy,
RoundingPolicy rounding_policy);
- // Inherited methods overridden:
+ /**
+ * @brief Enqueue the OpenCL kernel to process the given window on the passed OpenCL command
+ * queue.
+ * @note The queue is *not* flushed by this method, and therefore the kernel will not have
+ * been executed by the time this method returns.
+ * @param[in] window Region on which to execute the kernel. (Must be a valid region of
+ * the window returned by window()).
+ * @param[in,out] queue Command queue on which to enqueue the kernel.@return N/A
+ * @return N/A
+ */
void run(const Window &window, cl::CommandQueue &queue) override;
+
+ /**
+ * @brief The size of the border for that kernel
+ * @return The width in number of elements of the border.
+ */
BorderSize border_size() const override;
private: