///
/// 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 S5_1 NEON functions

- @ref IFunction
    - @ref INESimpleFunction
        - @ref NEAbsoluteDifference
        - @ref NEArithmeticAddition
        - @ref NEArithmeticSubtraction
        - @ref NEBox3x3
        - @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 NEMedian3x3
        - @ref NENonLinearFilter
        - @ref NENonMaximaSuppression3x3
        - @ref NEPixelWiseMultiplication
        - @ref NERemap
        - @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 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 NEGEMMLowpQuantizeDownInt32ToUint8Scale
        - @ref NEGEMMLowpQuantizeDownInt32ToUint8ScaleByFixedPoint
        - @ref NEGEMMTranspose1xW
        - @ref NEHOGDetector
        - @ref NEMagnitude
        - @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 NEConcatenateLayer
    - @ref NEConvertFullyConnectedWeights
    - @ref NEConvolutionLayer
    - @ref NEConvolutionLayerReshapeWeights
    - @ref NEConvolutionSquare &lt;matrix_size&gt;
    - @ref NEDeconvolutionLayer
    - @ref NEDepthConcatenateLayer
    - @ref NEDepthwiseConvolutionLayer
    - @ref NEDepthwiseConvolutionLayer3x3
    - @ref NEDepthwiseSeparableConvolutionLayer
    - @ref NEDequantizationLayer
    - @ref NEDerivative
    - @ref NEDirectConvolutionLayer
    - @ref NEEqualizeHistogram
    - @ref NEFastCorners
    - @ref NEFillBorder
    - @ref NEFullyConnectedLayer
    - @ref NEFuseBatchNormalization
    - @ref NEGaussian5x5
    - @ref NEGaussianPyramid
        - @ref NEGaussianPyramidHalf
        - @ref NEGaussianPyramidOrb
    - @ref NEGEMM
    - @ref NEGEMMAssemblyDispatch
    - @ref NEGEMMConvolutionLayer
    - @ref NEGEMMInterleavedWrapper
    - @ref NEGEMMLowpAssemblyMatrixMultiplyCore
    - @ref NEGEMMLowpMatrixMultiplyCore
    - @ref NEHarrisCorners
    - @ref NEHistogram
    - @ref NEHOGDescriptor
    - @ref NEHOGGradient
    - @ref NEHOGMultiDetection
    - @ref NEIm2Col
    - @ref NEL2NormalizeLayer
    - @ref NELaplacianPyramid
    - @ref NELaplacianReconstruct
    - @ref NELocallyConnectedLayer
    - @ref NELSTMLayer
    - @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 NESimpleAssemblyFunction
    - @ref NESobel5x5
    - @ref NESobel7x7
    - @ref NESoftmaxLayer
    - @ref NESplit
    - @ref NEStackLayer
    - @ref NEUnstack
    - @ref NEUpsampleLayer
    - @ref NEWidthConcatenateLayer
    - @ref NEWinogradConvolutionLayer

@section S5_2 OpenCL functions

- @ref IFunction
    - @ref CLBatchNormalizationLayer
    - @ref CLBatchToSpaceLayer
    - @ref CLCannyEdge
    - @ref CLConcatenateLayer
    - @ref CLConvolutionLayer
    - @ref CLConvolutionLayerReshapeWeights
    - @ref CLConvolutionSquare &lt;matrix_size&gt;
    - @ref CLDeconvolutionLayer
    - @ref CLDeconvolutionLayerUpsample
    - @ref CLDepthConcatenateLayer
    - @ref CLDepthwiseConvolutionLayer
    - @ref CLDepthwiseConvolutionLayer3x3
    - @ref CLDepthwiseSeparableConvolutionLayer
    - @ref CLDequantizationLayer
    - @ref CLDirectConvolutionLayer
    - @ref CLEqualizeHistogram
    - @ref CLFastCorners
    - @ref CLFullyConnectedLayer
    - @ref CLFuseBatchNormalization
    - @ref CLGaussian5x5
    - @ref CLGaussianPyramid
        - @ref CLGaussianPyramidHalf
        - @ref CLGaussianPyramidOrb
    - @ref CLGEMM
    - @ref CLGEMMConvolutionLayer
    - @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 CLLSTMLayer
    - @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 CLSoftmaxLayer
    - @ref CLSpaceToBatchLayer
    - @ref CLSplit
    - @ref CLStackLayer
    - @ref CLUnstack
    - @ref CLUpsampleLayer
    - @ref CLWidthConcatenateLayer
    - @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 CLFillBorder
        - @ref CLFlattenLayer
        - @ref CLFloor
        - @ref CLFullyConnectedLayerReshapeWeights
        - @ref CLGather
        - @ref CLGaussian3x3
        - @ref CLGEMMInterleave4x4
        - @ref CLGEMMLowpQuantizeDownInt32ToUint8Scale
        - @ref CLGEMMLowpQuantizeDownInt32ToUint8ScaleByFixedPoint
        - @ref CLGEMMLowpQuantizeDownInt32ToUint8ScaleByFloat
        - @ref CLGEMMTranspose1xW
        - @ref CLMagnitude
        - @ref CLMedian3x3
        - @ref CLNonLinearFilter
        - @ref CLNonMaximaSuppression3x3
        - @ref CLPermute
        - @ref CLPhase
        - @ref CLPixelWiseMultiplication
        - @ref CLPoolingLayer
        - @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 S5_3 GLES Compute functions

- @ref IFunction
    - @ref GCBatchNormalizationLayer
    - @ref GCConvolutionLayer
    - @ref GCConvolutionLayerReshapeWeights
    - @ref GCDepthConcatenateLayer
    - @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 S5_4 CPP functions

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

*/
} // namespace
