Halide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
BoundaryConditions.h File Reference

Support for imposing boundary conditions on Halide::Funcs. More...

#include <utility>
#include <vector>
#include "Func.h"
#include "IR.h"
#include "Util.h"

Go to the source code of this file.

Namespaces

 Halide
 Defines methods for manipulating and analyzing boolean expressions.
 
 Halide::BoundaryConditions
 namespace to hold functions for imposing boundary conditions on Halide Funcs.
 
 Halide::BoundaryConditions::Internal
 

Functions

const Func & Halide::BoundaryConditions::Internal::func_like_to_func (const Func &func)
 
template<typename T >
NO_INLINE Func Halide::BoundaryConditions::Internal::func_like_to_func (const T &func_like)
 
EXPORT Func Halide::BoundaryConditions::constant_exterior (const Func &source, Tuple value, const std::vector< std::pair< Expr, Expr >> &bounds)
 Impose a boundary condition such that a given expression is returned everywhere outside the boundary. More...
 
EXPORT Func Halide::BoundaryConditions::constant_exterior (const Func &source, Expr value, const std::vector< std::pair< Expr, Expr >> &bounds)
 Impose a boundary condition such that a given expression is returned everywhere outside the boundary. More...
 
template<typename T >
NO_INLINE Func Halide::BoundaryConditions::constant_exterior (const T &func_like, Tuple value)
 Impose a boundary condition such that a given expression is returned everywhere outside the boundary. More...
 
template<typename T >
NO_INLINE Func Halide::BoundaryConditions::constant_exterior (const T &func_like, Expr value)
 Impose a boundary condition such that a given expression is returned everywhere outside the boundary. More...
 
template<typename T , typename... Bounds, typename std::enable_if< Halide::Internal::all_are_convertible< Expr, Bounds...>::value >::type * = nullptr>
NO_INLINE Func Halide::BoundaryConditions::constant_exterior (const T &func_like, Tuple value, Bounds &&...bounds)
 Impose a boundary condition such that a given expression is returned everywhere outside the boundary. More...
 
template<typename T , typename... Bounds, typename std::enable_if< Halide::Internal::all_are_convertible< Expr, Bounds...>::value >::type * = nullptr>
NO_INLINE Func Halide::BoundaryConditions::constant_exterior (const T &func_like, Expr value, Bounds &&...bounds)
 Impose a boundary condition such that a given expression is returned everywhere outside the boundary. More...
 
EXPORT Func Halide::BoundaryConditions::repeat_edge (const Func &source, const std::vector< std::pair< Expr, Expr >> &bounds)
 Impose a boundary condition such that the nearest edge sample is returned everywhere outside the given region. More...
 
template<typename T >
NO_INLINE Func Halide::BoundaryConditions::repeat_edge (const T &func_like)
 Impose a boundary condition such that the nearest edge sample is returned everywhere outside the given region. More...
 
template<typename T , typename... Bounds, typename std::enable_if< Halide::Internal::all_are_convertible< Expr, Bounds...>::value >::type * = nullptr>
NO_INLINE Func Halide::BoundaryConditions::repeat_edge (const T &func_like, Bounds &&...bounds)
 Impose a boundary condition such that the nearest edge sample is returned everywhere outside the given region. More...
 
EXPORT Func Halide::BoundaryConditions::repeat_image (const Func &source, const std::vector< std::pair< Expr, Expr >> &bounds)
 Impose a boundary condition such that the entire coordinate space is tiled with copies of the image abutted against each other. More...
 
template<typename T >
NO_INLINE Func Halide::BoundaryConditions::repeat_image (const T &func_like)
 Impose a boundary condition such that the entire coordinate space is tiled with copies of the image abutted against each other. More...
 
template<typename T , typename... Bounds, typename std::enable_if< Halide::Internal::all_are_convertible< Expr, Bounds...>::value >::type * = nullptr>
NO_INLINE Func Halide::BoundaryConditions::repeat_image (const T &func_like, Bounds &&...bounds)
 Impose a boundary condition such that the entire coordinate space is tiled with copies of the image abutted against each other. More...
 
EXPORT Func Halide::BoundaryConditions::mirror_image (const Func &source, const std::vector< std::pair< Expr, Expr >> &bounds)
 Impose a boundary condition such that the entire coordinate space is tiled with copies of the image abutted against each other, but mirror them such that adjacent edges are the same. More...
 
template<typename T >
NO_INLINE Func Halide::BoundaryConditions::mirror_image (const T &func_like)
 Impose a boundary condition such that the entire coordinate space is tiled with copies of the image abutted against each other. More...
 
template<typename T , typename... Bounds, typename std::enable_if< Halide::Internal::all_are_convertible< Expr, Bounds...>::value >::type * = nullptr>
NO_INLINE Func Halide::BoundaryConditions::mirror_image (const T &func_like, Bounds &&...bounds)
 Impose a boundary condition such that the entire coordinate space is tiled with copies of the image abutted against each other. More...
 
EXPORT Func Halide::BoundaryConditions::mirror_interior (const Func &source, const std::vector< std::pair< Expr, Expr >> &bounds)
 Impose a boundary condition such that the entire coordinate space is tiled with copies of the image abutted against each other, but mirror them such that adjacent edges are the same and then overlap the edges. More...
 
template<typename T >
NO_INLINE Func Halide::BoundaryConditions::mirror_interior (const T &func_like)
 Impose a boundary condition such that the entire coordinate space is tiled with copies of the image abutted against each other, but mirror them such that adjacent edges are the same and then overlap the edges. More...
 
template<typename T , typename... Bounds, typename std::enable_if< Halide::Internal::all_are_convertible< Expr, Bounds...>::value >::type * = nullptr>
NO_INLINE Func Halide::BoundaryConditions::mirror_interior (const T &func_like, Bounds &&...bounds)
 Impose a boundary condition such that the entire coordinate space is tiled with copies of the image abutted against each other, but mirror them such that adjacent edges are the same and then overlap the edges. More...
 

Detailed Description

Support for imposing boundary conditions on Halide::Funcs.

Definition in file BoundaryConditions.h.