Halide
BoundaryConditions.h File Reference
#include <vector>
#include "Expr.h"
#include "Func.h"
#include "Lambda.h"

Go to the source code of this file.

Namespaces

 Halide
 This file defines the class FunctionDAG, which is our representation of a Halide pipeline, and contains methods to using Halide's bounds tools to query properties of it.
 
 Halide::BoundaryConditions
 namespace to hold functions for imposing boundary conditions on Halide Funcs.
 
 Halide::BoundaryConditions::Internal
 

Functions

HALIDE_NO_USER_CODE_INLINE void Halide::BoundaryConditions::Internal::collect_region (Region &collected_args, const Expr &a1, const Expr &a2)
 
template<typename... Args>
HALIDE_NO_USER_CODE_INLINE void Halide::BoundaryConditions::Internal::collect_region (Region &collected_args, const Expr &a1, const Expr &a2, Args &&... args)
 
const Func & Halide::BoundaryConditions::Internal::func_like_to_func (const Func &func)
 
template<typename T >
HALIDE_NO_USER_CODE_INLINE Func Halide::BoundaryConditions::Internal::func_like_to_func (const T &func_like)
 
Func Halide::BoundaryConditions::constant_exterior (const Func &source, const Tuple &value, const Region &bounds)
 Impose a boundary condition such that a given expression is returned everywhere outside the boundary. More...
 
Func Halide::BoundaryConditions::constant_exterior (const Func &source, const Expr &value, const Region &bounds)
 
template<typename T >
HALIDE_NO_USER_CODE_INLINE Func Halide::BoundaryConditions::constant_exterior (const T &func_like, const Tuple &value, const Region &bounds)
 
template<typename T >
HALIDE_NO_USER_CODE_INLINE Func Halide::BoundaryConditions::constant_exterior (const T &func_like, const Expr &value, const Region &bounds)
 
template<typename T >
HALIDE_NO_USER_CODE_INLINE Func Halide::BoundaryConditions::constant_exterior (const T &func_like, const Tuple &value)
 
template<typename T >
HALIDE_NO_USER_CODE_INLINE Func Halide::BoundaryConditions::constant_exterior (const T &func_like, const Expr &value)
 
template<typename T , typename... Bounds, typename std::enable_if< Halide::Internal::all_are_convertible< Expr, Bounds... >::value >::type * = nullptr>
HALIDE_NO_USER_CODE_INLINE Func Halide::BoundaryConditions::constant_exterior (const T &func_like, const Tuple &value, Bounds &&... bounds)
 
template<typename T , typename... Bounds, typename std::enable_if< Halide::Internal::all_are_convertible< Expr, Bounds... >::value >::type * = nullptr>
HALIDE_NO_USER_CODE_INLINE Func Halide::BoundaryConditions::constant_exterior (const T &func_like, const Expr &value, Bounds &&... bounds)
 
Func Halide::BoundaryConditions::repeat_edge (const Func &source, const Region &bounds)
 Impose a boundary condition such that the nearest edge sample is returned everywhere outside the given region. More...
 
template<typename T >
HALIDE_NO_USER_CODE_INLINE Func Halide::BoundaryConditions::repeat_edge (const T &func_like, const Region &bounds)
 
template<typename T >
HALIDE_NO_USER_CODE_INLINE Func Halide::BoundaryConditions::repeat_edge (const T &func_like)
 
template<typename T , typename... Bounds, typename std::enable_if< Halide::Internal::all_are_convertible< Expr, Bounds... >::value >::type * = nullptr>
HALIDE_NO_USER_CODE_INLINE Func Halide::BoundaryConditions::repeat_edge (const T &func_like, Bounds &&... bounds)
 
Func Halide::BoundaryConditions::repeat_image (const Func &source, const Region &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 >
HALIDE_NO_USER_CODE_INLINE Func Halide::BoundaryConditions::repeat_image (const T &func_like, const Region &bounds)
 
template<typename T >
HALIDE_NO_USER_CODE_INLINE Func Halide::BoundaryConditions::repeat_image (const T &func_like)
 
template<typename T , typename... Bounds, typename std::enable_if< Halide::Internal::all_are_convertible< Expr, Bounds... >::value >::type * = nullptr>
HALIDE_NO_USER_CODE_INLINE Func Halide::BoundaryConditions::repeat_image (const T &func_like, Bounds &&... bounds)
 
Func Halide::BoundaryConditions::mirror_image (const Func &source, const Region &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 >
HALIDE_NO_USER_CODE_INLINE Func Halide::BoundaryConditions::mirror_image (const T &func_like, const Region &bounds)
 
template<typename T >
HALIDE_NO_USER_CODE_INLINE Func Halide::BoundaryConditions::mirror_image (const T &func_like)
 
template<typename T , typename... Bounds, typename std::enable_if< Halide::Internal::all_are_convertible< Expr, Bounds... >::value >::type * = nullptr>
HALIDE_NO_USER_CODE_INLINE Func Halide::BoundaryConditions::mirror_image (const T &func_like, Bounds &&... bounds)
 
Func Halide::BoundaryConditions::mirror_interior (const Func &source, const Region &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 >
HALIDE_NO_USER_CODE_INLINE Func Halide::BoundaryConditions::mirror_interior (const T &func_like, const Region &bounds)
 
template<typename T >
HALIDE_NO_USER_CODE_INLINE Func Halide::BoundaryConditions::mirror_interior (const T &func_like)
 
template<typename T , typename... Bounds, typename std::enable_if< Halide::Internal::all_are_convertible< Expr, Bounds... >::value >::type * = nullptr>
HALIDE_NO_USER_CODE_INLINE Func Halide::BoundaryConditions::mirror_interior (const T &func_like, Bounds &&... bounds)
 

Detailed Description

Support for imposing boundary conditions on Halide::Funcs.

Definition in file BoundaryConditions.h.