///
/// Copyright (c) 2018-2019 Arm Limited.
///
/// SPDX-License-Identifier: MIT
///
/// Permission is hereby granted, free of charge, to any person obtaining a copy
/// of this software and associated documentation files (the "Software"), to
/// deal in the Software without restriction, including without limitation the
/// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
/// sell copies of the Software, and to permit persons to whom the Software is
/// furnished to do so, subject to the following conditions:
///
/// The above copyright notice and this permission notice shall be included in all
/// copies or substantial portions of the Software.
///
/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
/// SOFTWARE.
///
namespace arm_compute
{
/**

@page functions_list List of functions

@tableofcontents

@section S6_1 NEON functions

- @ref IFunction
    - @ref INESimpleFunction
        - @ref NEAbsoluteDifference
        - @ref NEArithmeticAddition
        - @ref NEArithmeticSubtraction
        - @ref NEBoundingBoxTransform
        - @ref NEBox3x3
        - @ref NECast
        - @ref NEComplexPixelWiseMultiplication
        - @ref NEComputeAllAnchors
        - @ref NEConvolution3x3
        - @ref NEConvolutionRectangle
        - @ref NEDilate
        - @ref NEElementwiseComparison
        - @ref NEElementwiseComparisonStatic
        - @ref NEElementwiseDivision
        - @ref NEElementwiseMax
        - @ref NEElementwiseMin
        - @ref NEElementwiseSquaredDiff
        - @ref NEErode
        - @ref NEExpLayer
        - @ref NEGaussian3x3
        - @ref NEIntegralImage
        - @ref NELogicalAnd
        - @ref NELogicalNot
        - @ref NELogicalOr
        - @ref NEMedian3x3
        - @ref NENonLinearFilter
        - @ref NENonMaximaSuppression3x3
        - @ref NEPixelWiseMultiplication
        - @ref NEPReluLayer
        - @ref NERemap
        - @ref NEROIAlignLayer
        - @ref NERoundLayer
        - @ref NERsqrtLayer
        - @ref NEScharr3x3
        - @ref NESelect
        - @ref NESobel3x3
        - @ref NEStridedSlice
        - @ref NEWarpAffine
        - @ref NEWarpPerspective
    - @ref INESimpleFunctionNoBorder
        - @ref NEAccumulate
        - @ref NEAccumulateSquared
        - @ref NEAccumulateWeighted
        - @ref NEActivationLayer
        - @ref NEBatchToSpaceLayer
        - @ref NEBitwiseAnd
        - @ref NEBitwiseNot
        - @ref NEBitwiseOr
        - @ref NEBitwiseXor
        - @ref NEChannelCombine
        - @ref NEChannelExtract
        - @ref NEChannelShuffleLayer
        - @ref NECol2Im
        - @ref NEColorConvert
        - @ref NECopy
        - @ref NEDepthConvertLayer
        - @ref NEFlattenLayer
        - @ref NEFloor
        - @ref NEFullyConnectedLayerReshapeWeights
        - @ref NEGather
        - @ref NEGEMMInterleave4x4
        - @ref NEGEMMLowpQuantizeDownInt32ToUint8ScaleByFixedPoint
        - @ref NEGEMMLowpQuantizeDownInt32ToUint8ScaleByFixedPoint
        - @ref NEGEMMTranspose1xW
        - @ref NEHOGDetector
        - @ref NEMagnitude
        - @ref NEMeanStdDevNormalizationLayer
        - @ref NEPermute
        - @ref NEPhase
        - @ref NEPriorBoxLayer
        - @ref NEReorgLayer
        - @ref NEReshapeLayer
        - @ref NEReverse
        - @ref NESlice
        - @ref NETableLookup
        - @ref NEThreshold
        - @ref NETile
        - @ref NETranspose
        - @ref NEYOLOLayer
    - @ref NEArgMinMaxLayer
    - @ref NEBatchNormalizationLayer
    - @ref NECannyEdge
    - @ref NEComplexPixelWiseMultiplication
    - @ref NEConcatenateLayer
    - @ref NEConvertFullyConnectedWeights
    - @ref NEConvolutionLayer
    - @ref NEConvolutionLayerReshapeWeights
    - @ref NEConvolutionSquare &lt;matrix_size&gt;
    - @ref NECropResize
    - @ref NEDeconvolutionLayer
    - @ref NEDepthwiseConvolutionAssemblyDispatch
    - @ref NEDepthwiseConvolutionLayer
    - @ref NEDequantizationLayer
    - @ref NEDerivative
    - @ref NEDetectionPostProcessLayer
    - @ref NEDirectConvolutionLayer
    - @ref NEEqualizeHistogram
    - @ref NEFastCorners
    - @ref NEFFT1D
    - @ref NEFFT2D
    - @ref NEFFTConvolutionLayer
    - @ref NEFill
    - @ref NEFillBorder
    - @ref NEFullyConnectedLayer
    - @ref NEFuseBatchNormalization
    - @ref NEGaussian5x5
    - @ref NEGaussianPyramid
        - @ref NEGaussianPyramidHalf
        - @ref NEGaussianPyramidOrb
    - @ref NEGEMM
    - @ref NEGEMMAssemblyDispatch
    - @ref NEGEMMConv2d
    - @ref NEGEMMConvolutionLayer
    - @ref NEGEMMLowpMatrixMultiplyCore
    - @ref NEGenerateProposalsLayer
    - @ref NEHarrisCorners
    - @ref NEHistogram
    - @ref NEHOGDescriptor
    - @ref NEHOGGradient
    - @ref NEHOGMultiDetection
    - @ref NEIm2Col
    - @ref NEInstanceNormalizationLayer
    - @ref NEL2NormalizeLayer
    - @ref NELaplacianPyramid
    - @ref NELaplacianReconstruct
    - @ref NELocallyConnectedLayer
    - @ref NELSTMLayer
    - @ref NELSTMLayerQuantized
    - @ref NEQLSTMLayer
    - @ref NEMaxUnpoolingLayer
    - @ref NEMeanStdDev
    - @ref NEMinMaxLocation
    - @ref NENormalizationLayer
    - @ref NEOpticalFlow
    - @ref NEPadLayer
    - @ref NEPoolingLayer
    - @ref NEQuantizationLayer
    - @ref NERange
    - @ref NEReduceMean
    - @ref NEReductionOperation
    - @ref NERNNLayer
    - @ref NEROIPoolingLayer
    - @ref NEScale
    - @ref NESobel5x5
    - @ref NESobel7x7
    - @ref NESoftmaxLayerGeneric &lt;IS_LOG&gt;
    - @ref NESpaceToBatchLayer
    - @ref NESpaceToDepthLayer
    - @ref NESplit
    - @ref NEStackLayer
    - @ref NEUnstack
    - @ref NEUpsampleLayer
    - @ref NEWinogradConvolutionLayer

@section S6_2 OpenCL functions

- @ref IFunction
    - @ref CLBatchNormalizationLayer
    - @ref CLBatchToSpaceLayer
    - @ref CLCannyEdge
    - @ref CLComplexPixelWiseMultiplication
    - @ref CLConcatenateLayer
    - @ref CLConvolutionLayer
    - @ref CLConvolutionLayerReshapeWeights
    - @ref CLConvolutionSquare &lt;matrix_size&gt;
    - @ref CLCropResize
    - @ref CLDeconvolutionLayer
    - @ref CLDeconvolutionLayerUpsample
    - @ref CLDepthToSpaceLayer
    - @ref CLDepthwiseConvolutionLayer
    - @ref CLDequantizationLayer
    - @ref CLDirectConvolutionLayer
    - @ref CLDirectDeconvolutionLayer
    - @ref CLEqualizeHistogram
    - @ref CLFastCorners
    - @ref CLFFT1D
    - @ref CLFFT2D
    - @ref CLFFTConvolutionLayer
    - @ref CLFullyConnectedLayer
    - @ref CLFuseBatchNormalization
    - @ref CLGaussian5x5
    - @ref CLGaussianPyramid
        - @ref CLGaussianPyramidHalf
        - @ref CLGaussianPyramidOrb
    - @ref CLGEMM
    - @ref CLGEMMConvolutionLayer
    - @ref CLGEMMDeconvolutionLayer
    - @ref CLGEMMLowpMatrixMultiplyCore
    - @ref CLGenerateProposalsLayer
    - @ref CLHarrisCorners
    - @ref CLHistogram
    - @ref CLHOGDescriptor
    - @ref CLHOGDetector
    - @ref CLHOGGradient
    - @ref CLHOGMultiDetection
    - @ref CLIntegralImage
    - @ref CLL2NormalizeLayer
    - @ref CLLaplacianPyramid
    - @ref CLLaplacianReconstruct
    - @ref CLLocallyConnectedLayer
    - @ref CLLogicalAnd
    - @ref CLLogicalNot
    - @ref CLLogicalOr
    - @ref CLLSTMLayer
    - @ref CLLSTMLayerQuantized
    - @ref CLQLSTMLayer
    - @ref CLMaxUnpoolingLayer
    - @ref CLMeanStdDev
    - @ref CLMinMaxLocation
    - @ref CLNormalizationLayer
    - @ref CLNormalizePlanarYUVLayer
    - @ref CLOpticalFlow
    - @ref CLPadLayer
    - @ref CLQuantizationLayer
    - @ref CLReduceMean
    - @ref CLReductionOperation
    - @ref CLRNNLayer
    - @ref CLSobel5x5
    - @ref CLSobel7x7
    - @ref CLSoftmaxLayerGeneric &lt;IS_LOG&gt;
    - @ref CLSpaceToBatchLayer
    - @ref CLSpaceToDepthLayer
    - @ref CLSplit
    - @ref CLStackLayer
    - @ref CLUnstack
    - @ref CLUpsampleLayer
    - @ref CLWinogradConvolutionLayer
    - @ref ICLSimpleFunction
        - @ref CLAbsoluteDifference
        - @ref CLAccumulate
        - @ref CLAccumulateSquared
        - @ref CLAccumulateWeighted
        - @ref CLActivationLayer
        - @ref CLArgMinMaxLayer
        - @ref CLArithmeticAddition
        - @ref CLArithmeticDivision
        - @ref CLArithmeticSubtraction
        - @ref CLBitwiseAnd
        - @ref CLBitwiseNot
        - @ref CLBitwiseOr
        - @ref CLBitwiseXor
        - @ref CLBoundingBoxTransform
        - @ref CLBox3x3
        - @ref CLCast
        - @ref CLChannelCombine
        - @ref CLChannelExtract
        - @ref CLChannelShuffleLayer
        - @ref CLColorConvert
        - @ref CLComparison
        - @ref CLComparisonStatic
        - @ref CLComputeAllAnchors
        - @ref CLConvertFullyConnectedWeights
        - @ref CLConvolution3x3
        - @ref CLConvolutionRectangle
        - @ref CLCopy
        - @ref CLDepthConvertLayer
        - @ref CLDerivative
        - @ref CLDilate
        - @ref CLElementwiseMax
        - @ref CLElementwiseMin
        - @ref CLElementwiseSquaredDiff
        - @ref CLErode
        - @ref CLExpLayer
        - @ref CLFill
        - @ref CLFillBorder
        - @ref CLFlattenLayer
        - @ref CLFloor
        - @ref CLFullyConnectedLayerReshapeWeights
        - @ref CLGather
        - @ref CLGaussian3x3
        - @ref CLGEMMLowpQuantizeDownInt32ToUint8ScaleByFixedPoint
        - @ref CLGEMMLowpQuantizeDownInt32ToInt8ScaleByFixedPoint
        - @ref CLGEMMLowpQuantizeDownInt32ScaleByFixedPointKernel
        - @ref CLMagnitude
        - @ref CLMeanStdDevNormalizationLayer
        - @ref CLMedian3x3
        - @ref CLNonLinearFilter
        - @ref CLNonMaximaSuppression3x3
        - @ref CLPermute
        - @ref CLPhase
        - @ref CLPixelWiseMultiplication
        - @ref CLPoolingLayer
        - @ref CLPReluLayer
        - @ref CLPriorBoxLayer
        - @ref CLRange
        - @ref CLRemap
        - @ref CLReorgLayer
        - @ref CLReshapeLayer
        - @ref CLReverse
        - @ref CLROIAlignLayer
        - @ref CLROIPoolingLayer
        - @ref CLRsqrtLayer
        - @ref CLScale
        - @ref CLScharr3x3
        - @ref CLSelect
        - @ref CLSlice
        - @ref CLSobel3x3
        - @ref CLStridedSlice
        - @ref CLTableLookup
        - @ref CLThreshold
        - @ref CLTile
        - @ref CLTranspose
        - @ref CLWarpAffine
        - @ref CLWarpPerspective
        - @ref CLWinogradInputTransform
        - @ref CLYOLOLayer

@section S6_3 GLES Compute functions

- @ref IFunction
    - @ref GCBatchNormalizationLayer
    - @ref GCConcatenateLayer
    - @ref GCConvolutionLayer
    - @ref GCConvolutionLayerReshapeWeights
    - @ref GCDepthwiseConvolutionLayer3x3
    - @ref GCDirectConvolutionLayer
    - @ref GCDropoutLayer
    - @ref GCFullyConnectedLayer
    - @ref GCGEMM
    - @ref GCNormalizationLayer
    - @ref GCNormalizePlanarYUVLayer
    - @ref GCPoolingLayer
    - @ref GCSoftmaxLayer
    - @ref IGCSimpleFunction
        - @ref GCAbsoluteDifference
        - @ref GCActivationLayer
        - @ref GCArithmeticAddition
        - @ref GCFillBorder
        - @ref GCFullyConnectedLayerReshapeWeights
        - @ref GCGEMMInterleave4x4
        - @ref GCGEMMTranspose1xW
        - @ref GCPixelWiseMultiplication
        - @ref GCScale
        - @ref GCTensorShift
        - @ref GCTranspose

@section S6_4 CPP functions

 - @ref IFunction
    - @ref CPPDetectionOutputLayer
    - @ref CPPDetectionPostProcessLayer
    - @ref ICPPSimpleFunction
        - @ref CPPBoxWithNonMaximaSuppressionLimit
        - @ref CPPPermute
        - @ref CPPTopKV
        - @ref CPPUpsample

*/
} // namespace
