diff options
Diffstat (limited to 'libs/ARMComputeEx/arm_compute/core/TypesEx.h')
-rw-r--r-- | libs/ARMComputeEx/arm_compute/core/TypesEx.h | 100 |
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__ */ |