| 
    Halide 21.0.0
    
   Halide compiler and libraries 
   | 
 
GIOBase is the base class for all GeneratorInput<> and GeneratorOutput<> instantiations; it is not part of the public API and should never be used directly by user code. More...
#include <Generator.h>
  
Public Member Functions | |
| 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 Member Functions | |
| bool | array_size_defined () const | 
| size_t | array_size () const | 
| virtual bool | is_array () 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 | 
| virtual void | check_value_writable () const =0 | 
| virtual const char * | input_or_output () const =0 | 
| template<> | |
| const std::vector< Expr > & | get_values () const | 
| template<> | |
| const std::vector< Func > & | get_values () const | 
Protected Attributes | |
| 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} | 
GIOBase is the base class for all GeneratorInput<> and GeneratorOutput<> instantiations; it is not part of the public API and should never be used directly by user code.
Every GIOBase instance can be either a single value or an array-of-values; each of these values can be an Expr or a Func. (Note that for an array-of-values, the types/dimensions of all values in the array must match.)
A GIOBase can have multiple Types, in which case it represents a Tuple. (Note that Tuples are currently only supported for GeneratorOutput, but it is likely that GeneratorInput will be extended to support Tuple as well.)
The array-size, type(s), and dimensions can all be left "unspecified" at creation time, in which case they may assume values provided by a Stub. (It is important to note that attempting to use a GIOBase with unspecified values will assert-fail; you must ensure that all unspecified values are filled in prior to use.)
Definition at line 1443 of file Generator.h.
      
  | 
  virtualdefault | 
      
  | 
  protected | 
References array_size(), dims(), kind(), and name().
Referenced by GIOBase(), GIOBase(), operator=(), and operator=().
| void Halide::Internal::GIOBase::set_type | ( | const Type & | type | ) | 
References Halide::Internal::Type.
| void Halide::Internal::GIOBase::set_dimensions | ( | int | dims | ) | 
References dims().
| void Halide::Internal::GIOBase::set_array_size | ( | int | size | ) | 
      
  | 
  protected | 
      
  | 
  protected | 
Referenced by Halide::Internal::GeneratorInput_Arithmetic< T >::GeneratorInput_Arithmetic(), Halide::Internal::GeneratorInput_Arithmetic< T >::GeneratorInput_Arithmetic(), Halide::Internal::GeneratorInput_Arithmetic< T >::GeneratorInput_Arithmetic(), Halide::Internal::GeneratorInput_Func< T >::GeneratorInput_Func(), Halide::Internal::GeneratorInput_Func< T >::GeneratorInput_Func(), Halide::Internal::GeneratorInput_Func< T >::GeneratorInput_Func(), Halide::Internal::GeneratorInput_Func< T >::GeneratorInput_Func(), Halide::Internal::GeneratorInput_Scalar< T >::GeneratorInput_Scalar(), Halide::Internal::GeneratorInput_Scalar< T >::GeneratorInput_Scalar(), Halide::Internal::GeneratorInputBase::GeneratorInputBase(), Halide::Internal::GeneratorOutput_Arithmetic< T >::GeneratorOutput_Arithmetic(), Halide::Internal::GeneratorOutput_Buffer< T >::GeneratorOutput_Buffer(), Halide::Internal::GeneratorOutput_Buffer< T >::GeneratorOutput_Buffer(), Halide::Internal::GeneratorOutput_Buffer< T >::GeneratorOutput_Buffer(), Halide::Internal::GeneratorOutput_Buffer< T >::GeneratorOutput_Buffer(), Halide::Internal::GeneratorOutput_Func< T >::GeneratorOutput_Func(), Halide::Internal::GeneratorOutputBase::GeneratorOutputBase(), and GIOBase().
      
  | 
  protectedvirtual | 
      
  | 
  protected | 
Referenced by Halide::Internal::GeneratorInput_Arithmetic< T >::GeneratorInput_Arithmetic(), Halide::Internal::GeneratorInput_Arithmetic< T >::GeneratorInput_Arithmetic(), Halide::Internal::GeneratorInput_Arithmetic< T >::GeneratorInput_Arithmetic(), Halide::Internal::GeneratorInput_Arithmetic< T >::GeneratorInput_Arithmetic(), Halide::Internal::GeneratorInput_Arithmetic< T >::GeneratorInput_Arithmetic(), Halide::Internal::GeneratorInput_Arithmetic< T >::GeneratorInput_Arithmetic(), Halide::Internal::GeneratorInput_Buffer< T >::GeneratorInput_Buffer(), Halide::Internal::GeneratorInput_Buffer< T >::GeneratorInput_Buffer(), Halide::Internal::GeneratorInput_Buffer< T >::GeneratorInput_Buffer(), Halide::Internal::GeneratorInput_Buffer< T >::GeneratorInput_Buffer(), Halide::Internal::GeneratorInput_DynamicScalar< T >::GeneratorInput_DynamicScalar(), Halide::Internal::GeneratorInput_Func< T >::GeneratorInput_Func(), Halide::Internal::GeneratorInput_Func< T >::GeneratorInput_Func(), Halide::Internal::GeneratorInput_Func< T >::GeneratorInput_Func(), Halide::Internal::GeneratorInput_Func< T >::GeneratorInput_Func(), Halide::Internal::GeneratorInput_Func< T >::GeneratorInput_Func(), Halide::Internal::GeneratorInput_Func< T >::GeneratorInput_Func(), Halide::Internal::GeneratorInput_Func< T >::GeneratorInput_Func(), Halide::Internal::GeneratorInput_Func< T >::GeneratorInput_Func(), Halide::Internal::GeneratorInput_Scalar< T >::GeneratorInput_Scalar(), Halide::Internal::GeneratorInput_Scalar< T >::GeneratorInput_Scalar(), Halide::Internal::GeneratorInput_Scalar< T >::GeneratorInput_Scalar(), Halide::Internal::GeneratorInput_Scalar< T >::GeneratorInput_Scalar(), Halide::Internal::GeneratorInputBase::GeneratorInputBase(), Halide::Internal::GeneratorInputBase::GeneratorInputBase(), Halide::Internal::GeneratorInputImpl< T, Func >::GeneratorInputImpl(), Halide::Internal::GeneratorOutput_Arithmetic< T >::GeneratorOutput_Arithmetic(), Halide::Internal::GeneratorOutput_Arithmetic< T >::GeneratorOutput_Arithmetic(), Halide::Internal::GeneratorOutput_Buffer< T >::GeneratorOutput_Buffer(), Halide::Internal::GeneratorOutput_Buffer< T >::GeneratorOutput_Buffer(), Halide::Internal::GeneratorOutput_Buffer< T >::GeneratorOutput_Buffer(), Halide::Internal::GeneratorOutput_Buffer< T >::GeneratorOutput_Buffer(), Halide::Internal::GeneratorOutput_Buffer< T >::GeneratorOutput_Buffer(), Halide::Internal::GeneratorOutput_Buffer< T >::GeneratorOutput_Buffer(), Halide::Internal::GeneratorOutput_Buffer< T >::GeneratorOutput_Buffer(), Halide::Internal::GeneratorOutput_Buffer< T >::GeneratorOutput_Buffer(), Halide::Internal::GeneratorOutput_Func< T >::GeneratorOutput_Func(), Halide::Internal::GeneratorOutput_Func< T >::GeneratorOutput_Func(), Halide::Internal::GeneratorOutput_Func< T >::GeneratorOutput_Func(), Halide::Internal::GeneratorOutput_Func< T >::GeneratorOutput_Func(), Halide::Internal::GeneratorOutput_Func< T >::GeneratorOutput_Func(), Halide::Internal::GeneratorOutputBase::GeneratorOutputBase(), Halide::Internal::GeneratorOutputBase::GeneratorOutputBase(), Halide::Internal::GeneratorOutputImpl< T >::GeneratorOutputImpl(), GIOBase(), Halide::Internal::GeneratorInput_Buffer< T >::operator ImageParam(), Halide::Internal::GeneratorOutput_Buffer< T >::operator OutputImageParam(), Halide::Internal::GeneratorInput_Buffer< T >::operator StubInputBuffer< T2 >(), Halide::Internal::GeneratorOutput_Buffer< T >::operator=(), and Halide::Internal::GeneratorOutput_Buffer< T >::set_estimates().
      
  | 
  protected | 
Referenced by Halide::Internal::GeneratorOutputBase::as(), Halide::Internal::GeneratorInputBase::GeneratorInputBase(), Halide::Internal::GeneratorInputBase::GeneratorInputBase(), Halide::Internal::GeneratorInputImpl< T, Func >::GeneratorInputImpl(), Halide::Internal::GeneratorOutputBase::GeneratorOutputBase(), Halide::Internal::GeneratorOutputBase::GeneratorOutputBase(), Halide::Internal::GeneratorOutputImpl< T >::GeneratorOutputImpl(), and GIOBase().
      
  | 
  protected | 
Referenced by Halide::Internal::GeneratorOutput_Buffer< T >::operator=().
      
  | 
  protected | 
      
  | 
  protected | 
References Halide::Internal::Type.
Referenced by Halide::Internal::GeneratorOutput_Buffer< T >::operator=().
      
  | 
  protected | 
Referenced by Halide::Internal::GeneratorOutput_Buffer< T >::operator=().
      
  | 
  protected | 
Referenced by GIOBase(), Halide::Internal::GeneratorOutput_Buffer< T >::operator=(), and set_dimensions().
      
  | 
  protected | 
      
  | 
  protected | 
Referenced by get_values(), Halide::Internal::GeneratorInput_DynamicScalar< T >::operator Expr(), Halide::Internal::GeneratorInput_Scalar< T >::operator Expr(), Halide::Internal::GeneratorInput_DynamicScalar< T >::operator ExternFuncArgument(), and Halide::Internal::GeneratorInput_Scalar< T >::operator ExternFuncArgument().
      
  | 
  protected | 
      
  | 
  protectedvirtual | 
Reimplemented in Halide::Internal::GeneratorInputBase.
      
  | 
  protected | 
      
  | 
  protected | 
      
  | 
  protected | 
      
  | 
  protected | 
Referenced by Halide::Internal::GeneratorInputImpl< T, Func >::at(), Halide::Internal::GeneratorOutputImpl< T >::at(), Halide::Internal::GeneratorInputImpl< T, Func >::begin(), Halide::Internal::GeneratorOutputImpl< T >::begin(), Halide::Internal::GeneratorInputImpl< T, Func >::end(), Halide::Internal::GeneratorOutputImpl< T >::end(), Halide::Internal::GeneratorOutputImpl< T >::operator Func(), Halide::Internal::GeneratorOutputImpl< T >::operator Stage(), Halide::Internal::GeneratorOutputImpl< T >::operator()(), Halide::Internal::GeneratorOutputImpl< T >::operator()(), Halide::Internal::GeneratorInputImpl< T, Func >::operator[](), Halide::Internal::GeneratorOutput_Buffer< T >::operator[](), Halide::Internal::GeneratorOutput_Buffer< T >::operator[](), Halide::Internal::GeneratorOutputImpl< T >::operator[](), Halide::Internal::GeneratorInputImpl< T, Func >::size(), and Halide::Internal::GeneratorOutputImpl< T >::size().
      
  | 
  protected | 
Referenced by Halide::Internal::GeneratorInput_Buffer< T >::at(), Halide::Internal::GeneratorInputImpl< T, Func >::at(), Halide::Internal::GeneratorOutputImpl< T >::at(), Halide::Internal::GeneratorInputImpl< T, Func >::begin(), Halide::Internal::GeneratorOutputImpl< T >::begin(), Halide::Internal::GeneratorInputImpl< T, Func >::end(), Halide::Internal::GeneratorOutputImpl< T >::end(), Halide::Internal::GeneratorInput_Buffer< T >::in(), Halide::Internal::GeneratorInput_Buffer< T >::in(), Halide::Internal::GeneratorInput_Buffer< T >::in(), Halide::Internal::GeneratorInput_Func< T >::in(), Halide::Internal::GeneratorInput_Func< T >::in(), Halide::Internal::GeneratorInput_Func< T >::in(), Halide::Internal::GeneratorInput_DynamicScalar< T >::operator Expr(), Halide::Internal::GeneratorInput_Scalar< T >::operator Expr(), Halide::Internal::GeneratorInput_Buffer< T >::operator ExternFuncArgument(), Halide::Internal::GeneratorInput_DynamicScalar< T >::operator ExternFuncArgument(), Halide::Internal::GeneratorInput_Func< T >::operator ExternFuncArgument(), Halide::Internal::GeneratorInput_Scalar< T >::operator ExternFuncArgument(), Halide::Internal::GeneratorInput_Buffer< T >::operator Func(), Halide::Internal::GeneratorInput_Func< T >::operator Func(), Halide::Internal::GeneratorOutputImpl< T >::operator Func(), Halide::Internal::GeneratorInput_Buffer< T >::operator ImageParam(), Halide::Internal::GeneratorOutput_Buffer< T >::operator OutputImageParam(), Halide::Internal::GeneratorOutputImpl< T >::operator Stage(), Halide::Internal::GeneratorInput_Buffer< T >::operator()(), Halide::Internal::GeneratorInput_Buffer< T >::operator()(), Halide::Internal::GeneratorInput_Func< T >::operator()(), Halide::Internal::GeneratorInput_Func< T >::operator()(), Halide::Internal::GeneratorOutputImpl< T >::operator()(), Halide::Internal::GeneratorOutputImpl< T >::operator()(), Halide::Internal::GeneratorOutput_Buffer< T >::operator=(), Halide::Internal::GeneratorOutput_Buffer< T >::operator=(), Halide::Internal::GeneratorOutput_Buffer< T >::operator=(), Halide::Internal::GeneratorOutput_Func< T >::operator=(), Halide::Internal::GeneratorInput_Buffer< T >::operator[](), Halide::Internal::GeneratorInputImpl< T, Func >::operator[](), Halide::Internal::GeneratorOutput_Buffer< T >::operator[](), Halide::Internal::GeneratorOutput_Buffer< T >::operator[](), Halide::Internal::GeneratorOutput_Func< T >::operator[](), Halide::Internal::GeneratorOutput_Func< T >::operator[](), Halide::Internal::GeneratorOutputImpl< T >::operator[](), Halide::Internal::GeneratorOutputImpl< T >::resize(), Halide::Internal::GeneratorInput_Buffer< T >::set_estimate(), Halide::Internal::GeneratorInput_DynamicScalar< T >::set_estimate(), Halide::Internal::GeneratorInput_Func< T >::set_estimate(), Halide::Internal::GeneratorInput_Scalar< T >::set_estimate(), Halide::Internal::GeneratorInput_Scalar< T >::set_estimate(), Halide::Internal::GeneratorOutput_Func< T >::set_estimate(), Halide::Internal::GeneratorInput_Buffer< T >::set_estimates(), Halide::Internal::GeneratorInput_Func< T >::set_estimates(), Halide::Internal::GeneratorOutput_Func< T >::set_estimates(), Halide::Internal::GeneratorInput_Buffer< T >::size(), Halide::Internal::GeneratorInputImpl< T, Func >::size(), and Halide::Internal::GeneratorOutputImpl< T >::size().
      
  | 
  protectedpure virtual | 
Implemented in Halide::Internal::GeneratorInputBase, and Halide::Internal::GeneratorOutputBase.
      
  | 
  protectedpure virtual | 
Implemented in Halide::Internal::GeneratorInputBase, and Halide::Internal::GeneratorOutputBase.
      
  | 
  inlineprotected | 
Definition at line 1529 of file Generator.h.
References exprs().
      
  | 
  inlineprotected | 
Definition at line 1534 of file Generator.h.
References funcs().
      
  | 
  mutableprotected | 
Definition at line 1480 of file Generator.h.
      
  | 
  protected | 
Definition at line 1483 of file Generator.h.
      
  | 
  protected | 
Definition at line 1484 of file Generator.h.
      
  | 
  mutableprotected | 
Definition at line 1485 of file Generator.h.
      
  | 
  mutableprotected | 
Definition at line 1486 of file Generator.h.
      
  | 
  protected | 
Definition at line 1489 of file Generator.h.
Referenced by Halide::Internal::GeneratorOutputBase::as(), Halide::Internal::GeneratorOutput_Buffer< T >::operator OutputImageParam(), Halide::Internal::GeneratorOutput_Buffer< T >::operator=(), Halide::Internal::GeneratorOutput_Func< T >::set_estimate(), Halide::Internal::GeneratorOutput_Buffer< T >::set_estimates(), and Halide::Internal::GeneratorOutput_Func< T >::set_estimates().
      
  | 
  protected | 
Definition at line 1490 of file Generator.h.
Referenced by Halide::Internal::GeneratorOutputBase::as(), Halide::Internal::GeneratorOutput_Buffer< T >::operator OutputImageParam(), Halide::Internal::GeneratorOutput_Buffer< T >::operator=(), Halide::Internal::GeneratorOutput_Func< T >::set_estimate(), Halide::Internal::GeneratorOutput_Buffer< T >::set_estimates(), and Halide::Internal::GeneratorOutput_Func< T >::set_estimates().
      
  | 
  protected | 
Definition at line 1497 of file Generator.h.