Loading...
Searching...
No Matches
Halide::Internal::GeneratorOutput_Buffer< T > Class Template Reference

`#include <Generator.h>`

Inheritance diagram for Halide::Internal::GeneratorOutput_Buffer< T >:

## Public Member Functions

template<typename T2, int D2>
HALIDE_NO_USER_CODE_INLINE GeneratorOutput_Buffer< T > & | operator= (Buffer< T2, D2 > &buffer)
template<typename T2>
GeneratorOutput_Buffer< T > & | operator= (const StubOutputBuffer< T2 > &stub_output_buffer)
GeneratorOutput_Buffer< T > & | operator= (const Func &f)
| operator OutputImageParam () const
GeneratorOutput_Buffer< T > & | set_estimates (const Region &estimates)
template<typename T2 = T, typename std::enable_if< std::is_array< T2 >::value >::type * = nullptr>
const Func & | operator[] (size_t i) const
template<typename T2 = T, typename std::enable_if< std::is_array< T2 >::value >::type * = nullptr>
Func | operator[] (size_t i)
Public Member Functions inherited from Halide::Internal::GeneratorOutputImpl< T >
template<typename... Args, typename T2 = T, typename std::enable_if<!std::is_array< T2 >::value >::type * = nullptr>
FuncRef | operator() (Args &&...args) const
template<typename ExprOrVar, typename T2 = T, typename std::enable_if<!std::is_array< T2 >::value >::type * = nullptr>
FuncRef | operator() (std::vector< ExprOrVar > args) const
template<typename T2 = T, typename std::enable_if<!std::is_array< T2 >::value >::type * = nullptr>
| operator Func () const
template<typename T2 = T, typename std::enable_if<!std::is_array< T2 >::value >::type * = nullptr>
| operator Stage () const
template<typename T2 = T, typename std::enable_if< std::is_array< T2 >::value >::type * = nullptr>
size_t | size () const
template<typename T2 = T, typename std::enable_if< std::is_array< T2 >::value >::type * = nullptr>
const ValueType & | operator[] (size_t i) const
template<typename T2 = T, typename std::enable_if< std::is_array< T2 >::value >::type * = nullptr>
const ValueType & | at (size_t i) const
template<typename T2 = T, typename std::enable_if< std::is_array< T2 >::value >::type * = nullptr>
std::vector< ValueType >::const_iterator | begin () const
template<typename T2 = T, typename std::enable_if< std::is_array< T2 >::value >::type * = nullptr>
std::vector< ValueType >::const_iterator | end () const
template<typename T2 = T, typename std::enable_if< std::is_array< T2 >::value &&std::rank< T2 >::value==1 &&std::extent< T2, 0 >::value==0 >::type * = nullptr>
void | resize (size_t size)
Public Member Functions inherited from Halide::Internal::GeneratorOutputBase
void | set_type (const std::vector< Type > &types)
| Set types dynamically for tuple outputs.
| ~GeneratorOutputBase () override
void | set_type (const Type &type)
| Forward schedule-related methods to the underlying Func.
Public Member Functions inherited from Halide::Internal::GIOBase
virtual | ~GIOBase ()=default
void | set_type (const Type &type)
void | set_dimensions (int dims)
void | set_array_size (int size)
| GIOBase (const GIOBase &)=delete
GIOBase & | operator= (const GIOBase &)=delete
| GIOBase (GIOBase &&)=delete
GIOBase & | operator= (GIOBase &&)=delete

## Protected Types

using | TBase = typename Super::TBase
Protected Types inherited from Halide::Internal::GeneratorOutputImpl< T >
using | TBase = typename std::remove_all_extents<T>::type
using | ValueType = Func

## Protected Member Functions

| GeneratorOutput_Buffer (const std::string &name)
| GeneratorOutput_Buffer (const std::string &name, const std::vector< Type > &t, int d)
| GeneratorOutput_Buffer (const std::string &name, const std::vector< Type > &t)
| GeneratorOutput_Buffer (const std::string &name, int d)
| GeneratorOutput_Buffer (size_t array_size, const std::string &name)
| GeneratorOutput_Buffer (size_t array_size, const std::string &name, const std::vector< Type > &t, int d)
| GeneratorOutput_Buffer (size_t array_size, const std::string &name, const std::vector< Type > &t)
| GeneratorOutput_Buffer (size_t array_size, const std::string &name, int d)
HALIDE_NO_USER_CODE_INLINE std::string | get_c_type () const override
template<typename T2, typename std::enable_if<!std::is_same< T2, Func >::value >::type * = nullptr>
HALIDE_NO_USER_CODE_INLINE T2 | as () const
Protected Member Functions inherited from Halide::Internal::GeneratorOutputImpl< T >
bool | is_array () const override
template<typename T2 = T, typename std::enable_if< !std::is_array< T2 >::value >::type * = nullptr>
| GeneratorOutputImpl (const std::string &name, ArgInfoKind kind, const std::vector< Type > &t, int d)
template<typename T2 = T, typename std::enable_if< std::is_array< T2 >::value &&std::rank< T2 >::value==1 &&(std::extent< T2, 0 >::value > 0)>::type * = nullptr>
| GeneratorOutputImpl (const std::string &name, ArgInfoKind kind, const std::vector< Type > &t, int d)
template<typename T2 = T, typename std::enable_if< std::is_array< T2 >::value &&std::rank< T2 >::value==1 &&std::extent< T2, 0 >::value==0 >::type * = nullptr>
| GeneratorOutputImpl (const std::string &name, ArgInfoKind kind, const std::vector< Type > &t, int d)
Protected Member Functions inherited from Halide::Internal::GeneratorOutputBase
template<typename T2, typename std::enable_if< std::is_same< T2, Func >::value >::type * = nullptr>
HALIDE_NO_USER_CODE_INLINE T2 | as () const
| GeneratorOutputBase (size_t array_size, const std::string &name, ArgInfoKind kind, const std::vector< Type > &t, int d)
| GeneratorOutputBase (const std::string &name, ArgInfoKind kind, const std::vector< Type > &t, int d)
void | init_internals ()
void | resize (size_t size)
void | check_value_writable () const override
const char * | input_or_output () const override
Protected Member Functions inherited from Halide::Internal::GIOBase
bool | array_size_defined () const
size_t | array_size () const
const std::string & | name () const
ArgInfoKind | kind () const
bool | gio_types_defined () const
const std::vector< Type > & | gio_types () const
Type | gio_type () const
bool | dims_defined () const
int | dims () const
const std::vector< Func > & | funcs () const
const std::vector< Expr > & | exprs () const
| GIOBase (size_t array_size, const std::string &name, ArgInfoKind kind, const std::vector< Type > &types, int dims)
std::string | array_name (size_t i) const
virtual void | verify_internals ()
void | check_matching_array_size (size_t size) const
void | check_matching_types (const std::vector< Type > &t) const
void | check_matching_dims (int d) const
template<typename ElemType>
const std::vector< ElemType > & | get_values () const
void | check_gio_access () const
template<>
const std::vector< Expr > & | get_values () const
template<>
const std::vector< Func > & | get_values () const

## Additional Inherited Members

Protected Attributes inherited from Halide::Internal::GIOBase
int | array_size_
const std::string | name_
const ArgInfoKind | kind_
std::vector< Type > | types_
int | dims_
std::vector< Func > | funcs_
std::vector< Expr > | exprs_
GeneratorBase * | generator {nullptr}

## Detailed Description

template<typename T>
class Halide::Internal::GeneratorOutput_Buffer< T >

Definition at line 2477 of file Generator.h.

## Member Typedef Documentation

## TBase

template<typename T>

using Halide::Internal::GeneratorOutput_Buffer< T >::TBase = typename Super::TBase

protected

Definition at line 2522 of file Generator.h.

## Constructor & Destructor Documentation

## GeneratorOutput_Buffer() [1/8]

template<typename T>

Halide::Internal::GeneratorOutput_Buffer< T >::GeneratorOutput_Buffer | ( | const std::string & | name | ) |

inline explicit protected

Definition at line 2524 of file Generator.h.

References Halide::Internal::GIOBase::name().

Referenced by operator=(), operator=(), operator=(), and set_estimates().

## GeneratorOutput_Buffer() [2/8]

template<typename T>

Halide::Internal::GeneratorOutput_Buffer< T >::GeneratorOutput_Buffer | ( | const std::string & | name,
|  | const std::vector< Type > & | t,
|  | int | d )

inline protected

Definition at line 2530 of file Generator.h.

References internal_assert, and Halide::Internal::GIOBase::name().

## GeneratorOutput_Buffer() [3/8]

template<typename T>

Halide::Internal::GeneratorOutput_Buffer< T >::GeneratorOutput_Buffer | ( | const std::string & | name,
|  | const std::vector< Type > & | t )

inline protected

Definition at line 2538 of file Generator.h.

References internal_assert, and Halide::Internal::GIOBase::name().

## GeneratorOutput_Buffer() [4/8]

template<typename T>

Halide::Internal::GeneratorOutput_Buffer< T >::GeneratorOutput_Buffer | ( | const std::string & | name,
|  | int | d )

inline protected

Definition at line 2544 of file Generator.h.

References Halide::Internal::GIOBase::name().

## GeneratorOutput_Buffer() [5/8]

template<typename T>

Halide::Internal::GeneratorOutput_Buffer< T >::GeneratorOutput_Buffer | ( | size_t | array_size,
|  | const std::string & | name )

inline protected

Definition at line 2552 of file Generator.h.

References Halide::Internal::GIOBase::array_size(), and Halide::Internal::GIOBase::name().

## GeneratorOutput_Buffer() [6/8]

template<typename T>

Halide::Internal::GeneratorOutput_Buffer< T >::GeneratorOutput_Buffer | ( | size_t | array_size,
|  | const std::string & | name,
|  | const std::vector< Type > & | t,
|  | int | d )

inline protected

Definition at line 2558 of file Generator.h.

References Halide::Internal::GIOBase::array_size(), internal_assert, and Halide::Internal::GIOBase::name().

## GeneratorOutput_Buffer() [7/8]

template<typename T>

Halide::Internal::GeneratorOutput_Buffer< T >::GeneratorOutput_Buffer | ( | size_t | array_size,
|  | const std::string & | name,
|  | const std::vector< Type > & | t )

inline protected

Definition at line 2566 of file Generator.h.

References Halide::Internal::GIOBase::array_size(), internal_assert, and Halide::Internal::GIOBase::name().

## GeneratorOutput_Buffer() [8/8]

template<typename T>

Halide::Internal::GeneratorOutput_Buffer< T >::GeneratorOutput_Buffer | ( | size_t | array_size,
|  | const std::string & | name,
|  | int | d )

inline protected

Definition at line 2572 of file Generator.h.

References Halide::Internal::GIOBase::array_size(), and Halide::Internal::GIOBase::name().

## Member Function Documentation

## get_c_type()

template<typename T>

HALIDE_NO_USER_CODE_INLINE std::string Halide::Internal::GeneratorOutput_Buffer< T >::get_c_type | ( |  | ) | const

inline override protected virtual

Reimplemented from Halide::Internal::GeneratorOutputBase.

Definition at line 2580 of file Generator.h.

References HALIDE_NO_USER_CODE_INLINE, and Halide::Internal::halide_type_to_c_type().

## as()

template<typename T>
template<typename T2, typename std::enable_if<!std::is_same< T2, Func >::value >::type * = nullptr>

HALIDE_NO_USER_CODE_INLINE T2 Halide::Internal::GeneratorOutput_Buffer< T >::as | ( |  | ) | const

inline protected

Definition at line 2591 of file Generator.h.

References HALIDE_NO_USER_CODE_INLINE.

## operator=() [1/3]

template<typename T>
template<typename T2, int D2>

HALIDE_NO_USER_CODE_INLINE GeneratorOutput_Buffer< T > & Halide::Internal::GeneratorOutput_Buffer< T >::operator= | ( | Buffer< T2, D2 > & | buffer | ) |

inline

Definition at line 2603 of file Generator.h.

References Halide::Internal::GIOBase::check_gio_access(), Halide::Internal::GeneratorOutputBase::check_value_writable(), Halide::Internal::GIOBase::dims(), Halide::Internal::GIOBase::dims_defined(), Halide::Internal::GIOBase::exprs_, Halide::Internal::GIOBase::funcs_, GeneratorOutput_Buffer(), Halide::Internal::GIOBase::gio_type(), Halide::Internal::GIOBase::gio_types_defined(), HALIDE_NO_USER_CODE_INLINE, internal_assert, Halide::Internal::GIOBase::name(), Halide::Internal::Type, Halide::Buffer< T, Dims >::type(), and user_assert.

## operator=() [2/3]

template<typename T>
template<typename T2>

GeneratorOutput_Buffer< T > & Halide::Internal::GeneratorOutput_Buffer< T >::operator= | ( | const StubOutputBuffer< T2 > & | stub_output_buffer | ) |

inline

Definition at line 2631 of file Generator.h.

References Halide::Internal::GIOBase::check_gio_access(), Halide::Internal::StubOutputBufferBase::f, and GeneratorOutput_Buffer().

## operator=() [3/3]

template<typename T>

GeneratorOutput_Buffer< T > & Halide::Internal::GeneratorOutput_Buffer< T >::operator= | ( | const Func & | f | ) |

inline

Definition at line 2640 of file Generator.h.

References Halide::Internal::GIOBase::check_gio_access(), and GeneratorOutput_Buffer().

## operator OutputImageParam()

template<typename T>

Halide::Internal::GeneratorOutput_Buffer< T >::operator OutputImageParam | ( |  | ) | const

inline

Definition at line 2646 of file Generator.h.

References Halide::Internal::GIOBase::check_gio_access(), Halide::Internal::GIOBase::exprs_, Halide::Internal::GIOBase::funcs_, internal_assert, Halide::Internal::GeneratorOutputImpl< T >::is_array(), Halide::Internal::GIOBase::name(), and user_assert.

## set_estimates()

template<typename T>

GeneratorOutput_Buffer< T > & Halide::Internal::GeneratorOutput_Buffer< T >::set_estimates | ( | const Region & | estimates | ) |

inline

Definition at line 2655 of file Generator.h.

References Halide::Internal::GIOBase::exprs_, Halide::Internal::GIOBase::funcs_, GeneratorOutput_Buffer(), internal_assert, Halide::Internal::GeneratorOutputImpl< T >::is_array(), Halide::Internal::GIOBase::name(), and user_assert.

## operator[]() [1/2]

template<typename T>
template<typename T2 = T, typename std::enable_if< std::is_array< T2 >::value >::type * = nullptr>

const Func & Halide::Internal::GeneratorOutput_Buffer< T >::operator[] | ( | size_t | i | ) | const

inline

Definition at line 2663 of file Generator.h.

References Halide::Internal::GIOBase::check_gio_access(), and Halide::Internal::GIOBase::get_values().

## operator[]() [2/2]

template<typename T>
template<typename T2 = T, typename std::enable_if< std::is_array< T2 >::value >::type * = nullptr>

Func Halide::Internal::GeneratorOutput_Buffer< T >::operator[] | ( | size_t | i | ) |

inline

Definition at line 2670 of file Generator.h.

References Halide::Internal::GIOBase::check_gio_access(), and Halide::Internal::GIOBase::get_values().

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

- src/Generator.h