Halide
Buffer.h File Reference
#include "DeviceInterface.h"
#include "Expr.h"
#include "IntrusivePtr.h"
#include "runtime/HalideBuffer.h"

Go to the source code of this file.

Classes

class  Halide::Buffer< T >
 A Halide::Buffer is a named shared reference to a Halide::Runtime::Buffer. More...
 
struct  Halide::Internal::BufferContents
 
struct  Halide::Internal::all_ints_and_optional_name< Args >
 
struct  Halide::Internal::all_ints_and_optional_name< First, Rest... >
 
struct  Halide::Internal::all_ints_and_optional_name< T >
 
struct  Halide::Internal::all_ints_and_optional_name<>
 
class  Halide::Buffer< T >
 A Halide::Buffer is a named shared reference to a Halide::Runtime::Buffer. More...
 

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::Internal
 

Macros

#define HALIDE_BUFFER_FORWARD_CONST(method)
 
#define HALIDE_BUFFER_FORWARD(method)
 
#define HALIDE_BUFFER_FORWARD_INITIALIZER_LIST(method, ...)
 

Typedefs

template<typename T , typename T2 >
using Halide::Internal::add_const_if_T_is_const = typename std::conditional< std::is_const< T >::value, const T2, T2 >::type
 

Functions

Expr Halide::Internal::buffer_accessor (const Buffer<> &buf, const std::vector< Expr > &args)
 
template<typename T , typename = typename std::enable_if<!std::is_convertible<T, std::string>::value>::type>
std::string Halide::Internal::get_name_from_end_of_parameter_pack (T &&)
 
std::string Halide::Internal::get_name_from_end_of_parameter_pack (const std::string &n)
 
std::string Halide::Internal::get_name_from_end_of_parameter_pack ()
 
template<typename First , typename Second , typename... Args>
std::string Halide::Internal::get_name_from_end_of_parameter_pack (First first, Second second, Args &&... rest)
 
void Halide::Internal::get_shape_from_start_of_parameter_pack_helper (std::vector< int > &, const std::string &)
 
void Halide::Internal::get_shape_from_start_of_parameter_pack_helper (std::vector< int > &)
 
template<typename... Args>
void Halide::Internal::get_shape_from_start_of_parameter_pack_helper (std::vector< int > &result, int x, Args &&... rest)
 
template<typename... Args>
std::vector< int > Halide::Internal::get_shape_from_start_of_parameter_pack (Args &&... args)
 
template<typename T >
void Halide::Internal::buffer_type_name_non_const (std::ostream &s)
 
template<>
void Halide::Internal::buffer_type_name_non_const< void > (std::ostream &s)
 
template<typename T >
std::string Halide::Internal::buffer_type_name ()
 

Macro Definition Documentation

◆ HALIDE_BUFFER_FORWARD_CONST

#define HALIDE_BUFFER_FORWARD_CONST (   method)
Value:
template<typename... Args> \
auto method(Args &&... args) const->decltype(std::declval<const Runtime::Buffer<T>>().method(std::forward<Args>(args)...)) { \
user_assert(defined()) << "Undefined buffer calling const method " #method "\n"; \
return get()->method(std::forward<Args>(args)...); \
}

Definition at line 391 of file Buffer.h.

◆ HALIDE_BUFFER_FORWARD

#define HALIDE_BUFFER_FORWARD (   method)
Value:
template<typename... Args> \
auto method(Args &&... args)->decltype(std::declval<Runtime::Buffer<T>>().method(std::forward<Args>(args)...)) { \
user_assert(defined()) << "Undefined buffer calling method " #method "\n"; \
return get()->method(std::forward<Args>(args)...); \
}

Definition at line 398 of file Buffer.h.

◆ HALIDE_BUFFER_FORWARD_INITIALIZER_LIST

#define HALIDE_BUFFER_FORWARD_INITIALIZER_LIST (   method,
  ... 
)
Value:
inline auto method(const __VA_ARGS__ &a)->decltype(std::declval<Runtime::Buffer<T>>().method(a)) { \
user_assert(defined()) << "Undefined buffer calling method " #method "\n"; \
return get()->method(a); \
}

Definition at line 415 of file Buffer.h.