/** * Copyright 2020 Huawei Technologies Co., Ltd * * 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 MINDSPORE_LITE_NNACL_FP16_ARITHMETIC_FP16_H_ #define MINDSPORE_LITE_NNACL_FP16_ARITHMETIC_FP16_H_ #ifdef ENABLE_NEON #include #endif #include "nnacl/op_base.h" #include "nnacl/arithmetic_common.h" #include "nnacl/errorcode.h" #ifdef __cplusplus extern "C" { #endif int ElementOptMulFp16(float16_t *input0, float16_t *input1, float16_t *output, int element_size, ArithmeticParameter *param); int ElementOptMulReluFp16(float16_t *input0, float16_t *input1, float16_t *output, int element_size, ArithmeticParameter *param); int ElementOptMulRelu6Fp16(float16_t *input0, float16_t *input1, float16_t *output, int element_size, ArithmeticParameter *param); int ElementOptAddFp16(float16_t *input0, float16_t *input1, float16_t *output, int element_size, ArithmeticParameter *param); int ElementOptAddReluFp16(float16_t *input0, float16_t *input1, float16_t *output, int element_size, ArithmeticParameter *param); int ElementOptAddRelu6Fp16(float16_t *input0, float16_t *input1, float16_t *output, int element_size, ArithmeticParameter *param); int ElementOptSubFp16(float16_t *input0, float16_t *input1, float16_t *output, int element_size, ArithmeticParameter *param); int ElementOptSubReluFp16(float16_t *input0, float16_t *input1, float16_t *output, int element_size, ArithmeticParameter *param); int ElementOptSubRelu6Fp16(float16_t *input0, float16_t *input1, float16_t *output, int element_size, ArithmeticParameter *param); int ElementOptDivFp16(float16_t *input0, float16_t *input1, float16_t *output, int element_size, ArithmeticParameter *param); int ElementOptDivReluFp16(float16_t *input0, float16_t *input1, float16_t *output, int element_size, ArithmeticParameter *param); int ElementOptDivRelu6Fp16(float16_t *input0, float16_t *input1, float16_t *output, int element_size, ArithmeticParameter *param); int ElementOptFloorModFp16(float16_t *input0, float16_t *input1, float16_t *output, int element_size, ArithmeticParameter *param); int ElementOptFloorDivFp16(float16_t *input0, float16_t *input1, float16_t *output, int element_size, ArithmeticParameter *param); int ElementOptLogicalAndFp16(float16_t *input0, float16_t *input1, float16_t *output, int element_size, ArithmeticParameter *param); int ElementOptLogicalOrFp16(float16_t *input0, float16_t *input1, float16_t *output, int element_size, ArithmeticParameter *param); int ElementOptSquaredDifferenceFp16(float16_t *input0, float16_t *input1, float16_t *output, int element_size, ArithmeticParameter *param); int ElementOptMaximumFp16(float16_t *input0, float16_t *input1, float16_t *output, int element_size, ArithmeticParameter *param); int ElementOptMinimumFp16(float16_t *input0, float16_t *input1, float16_t *output, int element_size, ArithmeticParameter *param); int ElementOptNotEqualFp16(float16_t *input0, float16_t *input1, float16_t *output, int element_size, ArithmeticParameter *param); int ElementOptEqualFp16(float16_t *input0, float16_t *input1, float16_t *output, int element_size, ArithmeticParameter *param); int ElementOptLessFp16(float16_t *input0, float16_t *input1, float16_t *output, int element_size, ArithmeticParameter *param); int ElementOptLessEqualFp16(float16_t *input0, float16_t *input1, float16_t *output, int element_size, ArithmeticParameter *param); int ElementOptGreaterFp16(float16_t *input0, float16_t *input1, float16_t *output, int element_size, ArithmeticParameter *param); int ElementOptGreaterEqualFp16(float16_t *input0, float16_t *input1, float16_t *output, int element_size, ArithmeticParameter *param); int ElementMulFp16(float16_t *input0, float16_t *input1, float16_t *output, int element_size); int ElementMulReluFp16(float16_t *input0, float16_t *input1, float16_t *output, int element_size); int ElementMulRelu6Fp16(float16_t *input0, float16_t *input1, float16_t *output, int element_size); int ElementAddFp16(float16_t *input0, float16_t *input1, float16_t *output, int element_size); int ElementAddReluFp16(float16_t *input0, float16_t *input1, float16_t *output, int element_size); int ElementAddRelu6Fp16(float16_t *input0, float16_t *input1, float16_t *output, int element_size); int ElementSubFp16(float16_t *input0, float16_t *input1, float16_t *output, int element_size); int ElementSubReluFp16(float16_t *input0, float16_t *input1, float16_t *output, int element_size); int ElementSubRelu6Fp16(float16_t *input0, float16_t *input1, float16_t *output, int element_size); int ElementDivFp16(float16_t *input0, float16_t *input1, float16_t *output, int element_size); int ElementDivReluFp16(float16_t *input0, float16_t *input1, float16_t *output, int element_size); int ElementDivRelu6Fp16(float16_t *input0, float16_t *input1, float16_t *output, int element_size); int ElementFloorModFp16(float16_t *input0, float16_t *input1, float16_t *output, int element_size); int ElementFloorDivFp16(float16_t *input0, float16_t *input1, float16_t *output, int element_size); int ElementLogicalAndFp16(float16_t *input0, float16_t *input1, float16_t *output, int element_size); int ElementLogicalOrFp16(float16_t *input0, float16_t *input1, float16_t *output, int element_size); int ElementSquaredDifferenceFp16(float16_t *input0, float16_t *input1, float16_t *output, int element_size); int ElementMaximumFp16(float16_t *input0, float16_t *input1, float16_t *output, int element_size); int ElementMinimumFp16(float16_t *input0, float16_t *input1, float16_t *output, int element_size); int ElementNotEqualFp16(float16_t *input0, float16_t *input1, float16_t *output, int element_size); int ElementEqualFp16(float16_t *input0, float16_t *input1, float16_t *output, int element_size); int ElementLessFp16(float16_t *input0, float16_t *input1, float16_t *output, int element_size); int ElementLessEqual(float16_t *input0, float16_t *input1, float16_t *output, int element_size); int ElementGreaterFp16(float16_t *input0, float16_t *input1, float16_t *output, int element_size); int ElementGreaterEqualFp16(float16_t *input0, float16_t *input1, float16_t *output, int element_size); void TileDimensionsFp16(float16_t *data0, float16_t *data1, float16_t *tile_data0, float16_t *tile_data1, ArithmeticParameter *param); #ifdef __cplusplus } #endif #endif // MINDSPORE_LITE_NNACL_FP16_ARITHMETIC_FP16_H_