summaryrefslogtreecommitdiff
path: root/libs/ARMComputeEx/arm_compute/core/TypesEx.h
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ARMComputeEx/arm_compute/core/TypesEx.h')
-rw-r--r--libs/ARMComputeEx/arm_compute/core/TypesEx.h100
1 files changed, 100 insertions, 0 deletions
diff --git a/libs/ARMComputeEx/arm_compute/core/TypesEx.h b/libs/ARMComputeEx/arm_compute/core/TypesEx.h
new file mode 100644
index 000000000..8381f1cc6
--- /dev/null
+++ b/libs/ARMComputeEx/arm_compute/core/TypesEx.h
@@ -0,0 +1,100 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ * Copyright (c) 2016-2018 ARM Limited.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef __ARM_COMPUTE_TYPESEX_H__
+#define __ARM_COMPUTE_TYPESEX_H__
+
+#include <cmath>
+#include <cstddef>
+#include <cstdint>
+#include <string>
+#include <utility>
+
+namespace arm_compute
+{
+
+/** Available ArgIndex operations **/
+enum class ArgOperation
+{
+ MAX,
+ MIN,
+};
+
+/** Available reduce operations */
+enum class ReduceOperation
+{
+ MAX, /**< Max */
+ MEAN, /**< Mean */
+ SUM, /**< Sum */
+ MIN, /**< Min */
+};
+
+/** Available binary logical operations */
+enum class BinaryLogicalOperation
+{
+ AND, /**< AND */
+ OR, /**< OR */
+};
+
+enum class ComparisonOperation
+{
+ EQUAL, /**< EQUAL */
+ NOT_EQUAL, /**< NOT_EQUAL */
+};
+
+/** Activation Layer Information class */
+class ActivationLayerInfoEx
+{
+public:
+ /** Available activation functions */
+ enum class ActivationFunction
+ {
+ RSQRT /**< Inverse Square root ( \f$ f(x) = \rsqrt{x} \f$ )*/
+ };
+
+ ActivationLayerInfoEx() = default;
+ /** Default Constructor
+ *
+ * @param[in] f The activation function to use.
+ * @param[in] a (Optional) The alpha parameter used by some activation functions
+ * (@ref ActivationFunction::BOUNDED_RELU, @ref ActivationFunction::LU_BOUNDED_RELU,
+ * @ref ActivationFunction::LINEAR, @ref ActivationFunction::TANH).
+ * @param[in] b (Optional) The beta parameter used by some activation functions (@ref
+ * ActivationFunction::LINEAR, @ref ActivationFunction::LU_BOUNDED_RELU, @ref
+ * ActivationFunction::TANH).
+ */
+ ActivationLayerInfoEx(ActivationFunction f, float a = 0.0f, float b = 0.0f)
+ : _act(f), _a(a), _b(b), _enabled(true)
+ {
+ }
+ /** Get the type of activation function */
+ ActivationFunction activation() const { return _act; }
+ /** Get the alpha value */
+ float a() const { return _a; }
+ /** Get the beta value */
+ float b() const { return _b; }
+ /** Check if initialised */
+ bool enabled() const { return _enabled; }
+
+private:
+ ActivationFunction _act = {ActivationLayerInfoEx::ActivationFunction::RSQRT};
+ float _a = {};
+ float _b = {};
+ bool _enabled = {false};
+};
+
+} // namespace arm_compute
+#endif /* __ARM_COMPUTE_TYPESEX_H__ */