Compute Library
 21.02
PadStrideInfo Class Reference

Padding and stride information class. More...

#include <Types.h>

Public Member Functions

 PadStrideInfo (unsigned int stride_x=1, unsigned int stride_y=1, unsigned int pad_x=0, unsigned int pad_y=0, DimensionRoundingType round=DimensionRoundingType::FLOOR)
 Constructor. More...
 
 PadStrideInfo (unsigned int stride_x, unsigned int stride_y, unsigned int pad_left, unsigned int pad_right, unsigned int pad_top, unsigned int pad_bottom, DimensionRoundingType round)
 Constructor. More...
 
std::pair< unsigned int, unsigned int > stride () const
 Get the stride. More...
 
bool padding_is_symmetric () const
 Check whether the padding is symmetric. More...
 
std::pair< unsigned int, unsigned int > pad () const
 Get the padding. More...
 
unsigned int pad_left () const
 Get the left padding. More...
 
unsigned int pad_right () const
 Get the right padding. More...
 
unsigned int pad_top () const
 Get the top padding. More...
 
unsigned int pad_bottom () const
 Get the bottom padding. More...
 
DimensionRoundingType round () const
 Get the rounding type. More...
 
bool has_padding () const
 Check whether this has any padding. More...
 

Detailed Description

Padding and stride information class.

Definition at line 722 of file Types.h.

Constructor & Destructor Documentation

◆ PadStrideInfo() [1/2]

PadStrideInfo ( unsigned int  stride_x = 1,
unsigned int  stride_y = 1,
unsigned int  pad_x = 0,
unsigned int  pad_y = 0,
DimensionRoundingType  round = DimensionRoundingType::FLOOR 
)
inline

Constructor.

Parameters
[in]stride_x(Optional) Stride, in elements, across x. Defaults to 1.
[in]stride_y(Optional) Stride, in elements, across y. Defaults to 1.
[in]pad_x(Optional) Padding, in elements, across x. Defaults to 0.
[in]pad_y(Optional) Padding, in elements, across y. Defaults to 0.
[in]round(Optional) Dimensions rounding. Defaults to FLOOR.

Definition at line 733 of file Types.h.

736  : _stride(std::make_pair(stride_x, stride_y)),
737  _pad_left(pad_x),
738  _pad_top(pad_y),
739  _pad_right(pad_x),
740  _pad_bottom(pad_y),
741  _round_type(round)
742  {
743  }
DimensionRoundingType round() const
Get the rounding type.
Definition: Types.h:817

◆ PadStrideInfo() [2/2]

PadStrideInfo ( unsigned int  stride_x,
unsigned int  stride_y,
unsigned int  pad_left,
unsigned int  pad_right,
unsigned int  pad_top,
unsigned int  pad_bottom,
DimensionRoundingType  round 
)
inline

Constructor.

Parameters
[in]stride_xStride, in elements, across x.
[in]stride_yStride, in elements, across y.
[in]pad_leftPadding across x on the left, in elements.
[in]pad_topPadding across y on the top, in elements.
[in]pad_rightPadding across x on the right, in elements.
[in]pad_bottomPadding across y on the bottom, in elements.
[in]roundDimensions rounding.

Definition at line 754 of file Types.h.

758  : _stride(std::make_pair(stride_x, stride_y)),
759  _pad_left(pad_left),
760  _pad_top(pad_top),
761  _pad_right(pad_right),
762  _pad_bottom(pad_bottom),
763  _round_type(round)
764  {
765  }
DimensionRoundingType round() const
Get the rounding type.
Definition: Types.h:817
unsigned int pad_top() const
Get the top padding.
Definition: Types.h:806
unsigned int pad_right() const
Get the right padding.
Definition: Types.h:801
unsigned int pad_bottom() const
Get the bottom padding.
Definition: Types.h:811
unsigned int pad_left() const
Get the left padding.
Definition: Types.h:796

Member Function Documentation

◆ has_padding()

bool has_padding ( ) const
inline

Check whether this has any padding.

Definition at line 823 of file Types.h.

Referenced by GCIm2ColKernel::configure(), and CpuPoolingAssemblyWrapperKernel::validate().

824  {
825  return (_pad_left != 0 || _pad_top != 0 || _pad_right != 0 || _pad_bottom != 0);
826  }

◆ pad()

std::pair<unsigned int, unsigned int> pad ( ) const
inline

Get the padding.

Note
This should only be used when the padding is symmetric.
Returns
a pair: padding left/right, padding top/bottom

Definition at line 788 of file Types.h.

References ARM_COMPUTE_ERROR_ON.

Referenced by GCPoolingLayerKernel::configure(), GCDirectConvolutionLayerKernel< kernel_size >::configure(), arm_compute::test::validation::reference::im2col_nchw(), arm_compute::test::validation::reference::im2col_nhwc(), and GCPoolingLayerKernel::run().

789  {
790  //this accessor should be used only when padding is symmetric
792  return std::make_pair(_pad_left, _pad_top);
793  }
#define ARM_COMPUTE_ERROR_ON(cond)
If the condition is true then an error message is printed and an exception thrown.
Definition: Error.h:466
bool padding_is_symmetric() const
Check whether the padding is symmetric.
Definition: Types.h:778

◆ pad_bottom()

◆ pad_left()

unsigned int pad_left ( ) const
inline

Get the left padding.

Definition at line 796 of file Types.h.

Referenced by arm_compute::misc::shape_calculator::compute_unpool_shape(), arm_compute::compute_winograd_convolution_tiles(), ClPoolingKernel::configure(), GCDepthwiseConvolutionLayer3x3Kernel::configure(), NEDirectConvolutionLayerKernel::configure(), CLDepthwiseConvolutionLayer3x3NCHWKernel::configure(), CLDepthwiseConvolutionLayer3x3NHWCKernel::configure(), GCIm2ColKernel::configure(), NEWinogradConvolutionLayer::configure(), NEFFTConvolutionLayer::configure(), CLDirectConvolutionLayerKernel::configure(), CLFFTConvolutionLayer::configure(), CLDirectDeconvolutionLayer::configure(), CLGEMMDeconvolutionLayer::configure(), arm_compute::test::validation::reference::conv2d_dft(), arm_compute::test::validation::reference::convolution_layer_nchw(), arm_compute::test::validation::reference::deconvolution_layer(), arm_compute::deconvolution_output_dimensions(), NEConvolutionLayer::get_convolution_method(), CLConvolutionLayer::get_convolution_method(), CpuPoolingAssemblyWrapperKernel::is_configured(), NEDepthwiseConvolutionAssemblyDispatch::is_optimized_supported(), arm_compute::operator<<(), arm_compute::test::validation::reference::pooling_layer_internal(), arm_compute::cpu::poolingMxN_fp32_neon_nhwc(), arm_compute::cpu::poolingMxN_q8_neon_nhwc(), CPPUpsampleKernel::run(), CLDeconvolutionLayerUpsampleKernel::run(), CLDirectConvolutionLayerKernel::run(), ClPoolingKernel::run_op(), arm_compute::scaled_dimensions(), NEWinogradConvolutionLayer::validate(), NEFFTConvolutionLayer::validate(), CLWinogradConvolutionLayer::validate(), CLGEMMDeconvolutionLayer::validate(), and CLFFTConvolutionLayer::validate().

797  {
798  return _pad_left;
799  }

◆ pad_right()

◆ pad_top()

unsigned int pad_top ( ) const
inline

Get the top padding.

Definition at line 806 of file Types.h.

Referenced by arm_compute::misc::shape_calculator::compute_unpool_shape(), arm_compute::compute_winograd_convolution_tiles(), ClPoolingKernel::configure(), GCDepthwiseConvolutionLayer3x3Kernel::configure(), NEDirectConvolutionLayerKernel::configure(), CLDepthwiseConvolutionLayer3x3NCHWKernel::configure(), CLDepthwiseConvolutionLayer3x3NHWCKernel::configure(), GCIm2ColKernel::configure(), NEWinogradConvolutionLayer::configure(), NEFFTConvolutionLayer::configure(), CLDirectConvolutionLayerKernel::configure(), CLFFTConvolutionLayer::configure(), CLDirectDeconvolutionLayer::configure(), CLGEMMDeconvolutionLayer::configure(), arm_compute::test::validation::reference::conv2d_dft(), arm_compute::test::validation::reference::convolution_layer_nchw(), arm_compute::test::validation::reference::deconvolution_layer(), arm_compute::deconvolution_output_dimensions(), NEConvolutionLayer::get_convolution_method(), CLConvolutionLayer::get_convolution_method(), CpuPoolingAssemblyWrapperKernel::is_configured(), NEDepthwiseConvolutionAssemblyDispatch::is_optimized_supported(), arm_compute::operator<<(), arm_compute::test::validation::reference::pooling_layer_internal(), arm_compute::cpu::poolingMxN_fp32_neon_nhwc(), arm_compute::cpu::poolingMxN_q8_neon_nhwc(), CPPUpsampleKernel::run(), CLDeconvolutionLayerUpsampleKernel::run(), CLDirectConvolutionLayerKernel::run(), ClPoolingKernel::run_op(), arm_compute::scaled_dimensions(), NEWinogradConvolutionLayer::validate(), NEFFTConvolutionLayer::validate(), CLWinogradConvolutionLayer::validate(), CLGEMMDeconvolutionLayer::validate(), and CLFFTConvolutionLayer::validate().

807  {
808  return _pad_top;
809  }

◆ padding_is_symmetric()

bool padding_is_symmetric ( ) const
inline

Check whether the padding is symmetric.

Returns
True if the padding is symmetric.

Definition at line 778 of file Types.h.

Referenced by GCDirectConvolutionLayerKernel< kernel_size >::configure().

779  {
780  return (_pad_left == _pad_right) && (_pad_top == _pad_bottom);
781  }

◆ round()

DimensionRoundingType round ( ) const
inline

Get the rounding type.

Definition at line 817 of file Types.h.

Referenced by arm_compute::scaled_dimensions().

818  {
819  return _round_type;
820  }

◆ stride()

std::pair<unsigned int, unsigned int> stride ( ) const
inline

Get the stride.

Returns
a pair: stride x, stride y.

Definition at line 770 of file Types.h.

Referenced by arm_compute::calculate_same_pad(), arm_compute::misc::shape_calculator::compute_unpool_shape(), CpuPoolingKernel::configure(), ClPoolingKernel::configure(), GCDepthwiseConvolutionLayer3x3Kernel::configure(), GCPoolingLayerKernel::configure(), GCDirectConvolutionLayerKernel< kernel_size >::configure(), CLDepthwiseConvolutionLayer3x3NCHWKernel::configure(), CLDepthwiseConvolutionLayer3x3NHWCKernel::configure(), GCIm2ColKernel::configure(), CLDirectConvolutionLayerKernel::configure(), NEDeconvolutionLayer::configure(), GCConvolutionLayer::configure(), CLDirectDeconvolutionLayer::configure(), NEGEMMConvolutionLayer::configure(), CLGEMMConvolutionLayer::configure(), arm_compute::test::validation::reference::convolution_layer_nchw(), arm_compute::test::validation::reference::deconvolution_layer(), arm_compute::deconvolution_output_dimensions(), NEConvolutionLayer::get_convolution_method(), CLConvolutionLayer::get_convolution_method(), CLDeconvolutionLayer::get_deconvolution_method(), arm_compute::test::validation::reference::im2col_nchw(), arm_compute::test::validation::reference::im2col_nhwc(), CpuPoolingAssemblyWrapperKernel::is_configured(), NEDepthwiseConvolutionAssemblyDispatch::is_optimized_supported(), arm_compute::operator<<(), arm_compute::test::validation::reference::pooling_layer_internal(), arm_compute::cpu::poolingMxN_fp32_neon_nhwc(), arm_compute::cpu::poolingMxN_q8_neon_nhwc(), CPPUpsampleKernel::run(), GCPoolingLayerKernel::run(), CLDeconvolutionLayerUpsampleKernel::run(), ClPoolingKernel::run_op(), arm_compute::scaled_dimensions(), NEFFTConvolutionLayer::validate(), NEDeconvolutionLayer::validate(), CLGEMMDeconvolutionLayer::validate(), CLFFTConvolutionLayer::validate(), CLDirectDeconvolutionLayer::validate(), NEGEMMConvolutionLayer::validate(), and CLGEMMConvolutionLayer::validate().

771  {
772  return _stride;
773  }

The documentation for this class was generated from the following file: