Halide 19.0.0
Halide compiler and libraries
Loading...
Searching...
No Matches
Type.h File Reference

Defines halide types. More...

#include "Error.h"
#include "Float16.h"
#include "Util.h"
#include "runtime/HalideRuntime.h"
#include <cstdint>

Go to the source code of this file.

Classes

struct  halide_cplusplus_type_name
 A set of types to represent a C++ function signature. More...
 
struct  halide_handle_cplusplus_type
 A structure to represent the fully scoped name of a C++ composite type for use in generating function signatures that use that type. More...
 
struct  halide_c_type_to_name< T >
 halide_c_type_to_name is a utility class used to provide a user-extensible way of naming Handle types. More...
 
struct  halide_handle_traits< T >
 A type traits template to provide a halide_handle_cplusplus_type value from a C++ type. More...
 
struct  Halide::Type
 Types in the halide type system. More...
 

Namespaces

namespace  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.
 
namespace  Halide::Internal
 

Macros

#define HALIDE_DECLARE_EXTERN_TYPE(TypeType, Type)
 
#define HALIDE_DECLARE_EXTERN_SIMPLE_TYPE(T)
 
#define HALIDE_DECLARE_EXTERN_STRUCT_TYPE(T)
 
#define HALIDE_DECLARE_EXTERN_CLASS_TYPE(T)
 
#define HALIDE_DECLARE_EXTERN_UNION_TYPE(T)
 

Functions

 HALIDE_DECLARE_EXTERN_SIMPLE_TYPE (char)
 
 HALIDE_DECLARE_EXTERN_SIMPLE_TYPE (bool)
 
 HALIDE_DECLARE_EXTERN_SIMPLE_TYPE (int8_t)
 
 HALIDE_DECLARE_EXTERN_SIMPLE_TYPE (uint8_t)
 
 HALIDE_DECLARE_EXTERN_SIMPLE_TYPE (int16_t)
 
 HALIDE_DECLARE_EXTERN_SIMPLE_TYPE (uint16_t)
 
 HALIDE_DECLARE_EXTERN_SIMPLE_TYPE (int32_t)
 
 HALIDE_DECLARE_EXTERN_SIMPLE_TYPE (uint32_t)
 
 HALIDE_DECLARE_EXTERN_SIMPLE_TYPE (int64_t)
 
 HALIDE_DECLARE_EXTERN_SIMPLE_TYPE (uint64_t)
 
 HALIDE_DECLARE_EXTERN_SIMPLE_TYPE (Halide::float16_t)
 
 HALIDE_DECLARE_EXTERN_SIMPLE_TYPE (Halide::bfloat16_t)
 
 HALIDE_DECLARE_EXTERN_SIMPLE_TYPE (halide_task_t)
 
 HALIDE_DECLARE_EXTERN_SIMPLE_TYPE (halide_loop_task_t)
 
 HALIDE_DECLARE_EXTERN_SIMPLE_TYPE (float)
 
 HALIDE_DECLARE_EXTERN_SIMPLE_TYPE (double)
 
 HALIDE_DECLARE_EXTERN_STRUCT_TYPE (halide_buffer_t)
 
 HALIDE_DECLARE_EXTERN_STRUCT_TYPE (halide_dimension_t)
 
 HALIDE_DECLARE_EXTERN_STRUCT_TYPE (halide_device_interface_t)
 
 HALIDE_DECLARE_EXTERN_STRUCT_TYPE (halide_filter_metadata_t)
 
 HALIDE_DECLARE_EXTERN_STRUCT_TYPE (halide_semaphore_t)
 
 HALIDE_DECLARE_EXTERN_STRUCT_TYPE (halide_semaphore_acquire_t)
 
 HALIDE_DECLARE_EXTERN_STRUCT_TYPE (halide_parallel_task_t)
 
Type Halide::Int (int bits, int lanes=1)
 Constructing a signed integer type.
 
Type Halide::UInt (int bits, int lanes=1)
 Constructing an unsigned integer type.
 
Type Halide::Float (int bits, int lanes=1)
 Construct a floating-point type.
 
Type Halide::BFloat (int bits, int lanes=1)
 Construct a floating-point type in the bfloat format.
 
Type Halide::Bool (int lanes=1)
 Construct a boolean type.
 
Type Halide::Handle (int lanes=1, const halide_handle_cplusplus_type *handle_type=nullptr)
 Construct a handle type.
 
template<typename T >
Type Halide::type_of ()
 Construct the halide equivalent of a C type.
 
std::string Halide::type_to_c_type (Type type, bool include_space, bool c_plus_plus=true)
 Halide type to a C++ type.
 

Detailed Description

Defines halide types.

Definition in file Type.h.

Macro Definition Documentation

◆ HALIDE_DECLARE_EXTERN_TYPE

#define HALIDE_DECLARE_EXTERN_TYPE ( TypeType,
Type )
Value:
template<> \
struct halide_c_type_to_name<Type> { \
static constexpr bool known_type = true; \
return {halide_cplusplus_type_name::TypeType, #Type}; \
} \
}
halide_c_type_to_name is a utility class used to provide a user-extensible way of naming Handle types...
Definition Type.h:134
static constexpr bool known_type
Definition Type.h:135
static halide_cplusplus_type_name name()
Definition Type.h:136
A set of types to represent a C++ function signature.
Definition Type.h:39

Definition at line 141 of file Type.h.

◆ HALIDE_DECLARE_EXTERN_SIMPLE_TYPE

#define HALIDE_DECLARE_EXTERN_SIMPLE_TYPE ( T)
Value:
#define HALIDE_DECLARE_EXTERN_TYPE(TypeType, Type)
Definition Type.h:141

Definition at line 150 of file Type.h.

◆ HALIDE_DECLARE_EXTERN_STRUCT_TYPE

#define HALIDE_DECLARE_EXTERN_STRUCT_TYPE ( T)
Value:

Definition at line 151 of file Type.h.

◆ HALIDE_DECLARE_EXTERN_CLASS_TYPE

#define HALIDE_DECLARE_EXTERN_CLASS_TYPE ( T)
Value:

Definition at line 152 of file Type.h.

◆ HALIDE_DECLARE_EXTERN_UNION_TYPE

#define HALIDE_DECLARE_EXTERN_UNION_TYPE ( T)
Value:

Definition at line 153 of file Type.h.

Function Documentation

◆ HALIDE_DECLARE_EXTERN_SIMPLE_TYPE() [1/16]

HALIDE_DECLARE_EXTERN_SIMPLE_TYPE ( char )

◆ HALIDE_DECLARE_EXTERN_SIMPLE_TYPE() [2/16]

HALIDE_DECLARE_EXTERN_SIMPLE_TYPE ( bool )

◆ HALIDE_DECLARE_EXTERN_SIMPLE_TYPE() [3/16]

HALIDE_DECLARE_EXTERN_SIMPLE_TYPE ( int8_t )

◆ HALIDE_DECLARE_EXTERN_SIMPLE_TYPE() [4/16]

HALIDE_DECLARE_EXTERN_SIMPLE_TYPE ( uint8_t )

◆ HALIDE_DECLARE_EXTERN_SIMPLE_TYPE() [5/16]

HALIDE_DECLARE_EXTERN_SIMPLE_TYPE ( int16_t )

◆ HALIDE_DECLARE_EXTERN_SIMPLE_TYPE() [6/16]

HALIDE_DECLARE_EXTERN_SIMPLE_TYPE ( uint16_t )

◆ HALIDE_DECLARE_EXTERN_SIMPLE_TYPE() [7/16]

HALIDE_DECLARE_EXTERN_SIMPLE_TYPE ( int32_t )

◆ HALIDE_DECLARE_EXTERN_SIMPLE_TYPE() [8/16]

HALIDE_DECLARE_EXTERN_SIMPLE_TYPE ( uint32_t )

◆ HALIDE_DECLARE_EXTERN_SIMPLE_TYPE() [9/16]

HALIDE_DECLARE_EXTERN_SIMPLE_TYPE ( int64_t )

◆ HALIDE_DECLARE_EXTERN_SIMPLE_TYPE() [10/16]

HALIDE_DECLARE_EXTERN_SIMPLE_TYPE ( uint64_t )

◆ HALIDE_DECLARE_EXTERN_SIMPLE_TYPE() [11/16]

HALIDE_DECLARE_EXTERN_SIMPLE_TYPE ( Halide::float16_t )

◆ HALIDE_DECLARE_EXTERN_SIMPLE_TYPE() [12/16]

HALIDE_DECLARE_EXTERN_SIMPLE_TYPE ( Halide::bfloat16_t )

◆ HALIDE_DECLARE_EXTERN_SIMPLE_TYPE() [13/16]

HALIDE_DECLARE_EXTERN_SIMPLE_TYPE ( halide_task_t )

◆ HALIDE_DECLARE_EXTERN_SIMPLE_TYPE() [14/16]

HALIDE_DECLARE_EXTERN_SIMPLE_TYPE ( halide_loop_task_t )

◆ HALIDE_DECLARE_EXTERN_SIMPLE_TYPE() [15/16]

HALIDE_DECLARE_EXTERN_SIMPLE_TYPE ( float )

◆ HALIDE_DECLARE_EXTERN_SIMPLE_TYPE() [16/16]

HALIDE_DECLARE_EXTERN_SIMPLE_TYPE ( double )

◆ HALIDE_DECLARE_EXTERN_STRUCT_TYPE() [1/7]

HALIDE_DECLARE_EXTERN_STRUCT_TYPE ( halide_buffer_t )

◆ HALIDE_DECLARE_EXTERN_STRUCT_TYPE() [2/7]

HALIDE_DECLARE_EXTERN_STRUCT_TYPE ( halide_dimension_t )

◆ HALIDE_DECLARE_EXTERN_STRUCT_TYPE() [3/7]

HALIDE_DECLARE_EXTERN_STRUCT_TYPE ( halide_device_interface_t )

◆ HALIDE_DECLARE_EXTERN_STRUCT_TYPE() [4/7]

HALIDE_DECLARE_EXTERN_STRUCT_TYPE ( halide_filter_metadata_t )

◆ HALIDE_DECLARE_EXTERN_STRUCT_TYPE() [5/7]

HALIDE_DECLARE_EXTERN_STRUCT_TYPE ( halide_semaphore_t )

◆ HALIDE_DECLARE_EXTERN_STRUCT_TYPE() [6/7]

HALIDE_DECLARE_EXTERN_STRUCT_TYPE ( halide_semaphore_acquire_t )

◆ HALIDE_DECLARE_EXTERN_STRUCT_TYPE() [7/7]

HALIDE_DECLARE_EXTERN_STRUCT_TYPE ( halide_parallel_task_t )