Internal::Dimension#

class Dimension#

Public Functions

Expr min() const#

Get an expression representing the minimum coordinates of this image parameter in the given dimension.

Expr extent() const#

Get an expression representing the extent of this image parameter in the given dimension.

Expr max() const#

Get an expression representing the maximum coordinates of this image parameter in the given dimension.

Expr stride() const#

Get an expression representing the stride of this image in the given dimension.

Dimension set_min(const Expr &min)#

Set the min in a given dimension to equal the given expression.

Setting the mins to zero may simplify some addressing math.

Dimension set_extent(const Expr &extent)#

Set the extent in a given dimension to equal the given expression.

Images passed in that fail this check will generate a runtime error. Returns a reference to the ImageParam so that these calls may be chained.

This may help the compiler generate better code. E.g:

im.dim(0).set_extent(100);
tells the compiler that dimension zero must be of extent 100, which may result in simplification of boundary checks. The value can be an arbitrary expression:
im.dim(0).set_extent(im.dim(1).extent());
declares that im is a square image (of unknown size), whereas:
im.dim(0).set_extent((im.dim(0).extent()/32)*32);
tells the compiler that the extent is a multiple of 32.

Dimension set_stride(const Expr &stride)#

Set the stride in a given dimension to equal the given value.

This is particularly helpful to set when vectorizing. Known strides for the vectorized dimension generate better code.

Dimension set_bounds(const Expr &min, const Expr &extent)#

Set the min and extent in one call.

Dimension set_estimate(const Expr &min, const Expr &extent)#

Set the min and extent estimates in one call.

These values are only used by the auto-scheduler and/or the RunGen tool/

Dimension dim(int i) const#

Get a different dimension of the same buffer.