///
/// 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 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 NEGEMMLowpQuantizeDownInt32ToUint8Scale
        - @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 NEGEMMConvolutionLayer
    - @ref NEGEMMLowpAssemblyMatrixMultiplyCore
    - @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 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 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 CLLSTMLayer
    - @ref CLLSTMLayerQuantized
    - @ref CLQLSTMLayer
    - @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 CLGEMMLowpQuantizeDownInt32ToUint8Scale
        - @ref CLGEMMLowpQuantizeDownInt32ToUint8ScaleByFixedPoint
        - @ref CLGEMMLowpQuantizeDownInt32ToInt8ScaleByFixedPoint
        - @ref CLGEMMLowpQuantizeDownInt32ToUint8ScaleByFloat
        - @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
