1 #ifndef _RECURSIVE_FILTER_INTERNALS_H_
2 #define _RECURSIVE_FILTER_INTERNALS_H_
80 int as_integer(
void)
const {
return static_cast<int>(tag); }
92 Halide::Internal::Function
func;
170 std::map<std::string, RecFilterFunc>
func;
182 #endif // _RECURSIVE_FILTER_INTERNALS_H_
std::vector< bool > scan_causal
causal or anticausal flag for each scan
bool finalized
Flag to indicate if the filter has been finalized, required before compilation.
if dimension represents RGB channels
std::map< std::string, RecFilterFunc > func
List of functions along with their names and their schedules.
Halide::Type type
Filter output type.
filter within tile (multiple scans in multiple dimensions)
std::map< int, std::map< std::string, std::string > > update_var_splits
List of new vars created by RecFilterSchedule::split() on update definitions.
filter over tail elements across tiles (single 1D scan)
second variable with one of the above tags
Halide::Func external_consumer_func
External consumer function which consumes RecFilter's output; external consumer means a Func outside ...
std::map< std::string, VarTag > pure_var_category
Category tags for all the pure def vars.
Recursive filter function with scheduling interface.
Halide::Target target
Compilation and execution target.
std::vector< int > scan_id
scan or update definition id of each scan
int image_width
image width in this dimension
std::vector< FilterInfo > filter_info
Info about all the scans in the recursive filter.
std::vector< std::string > pure_schedule
Schedule for pure def of the function as valid Halide code.
Halide::Image< float > feedback_coeff
Feedback coeffs (num_scans x max_order) order j-th coeff of i-th scan is (i+1,j)
Halide::Internal::Function func
Halide function.
filter within tile (single scan in one dimension)
bool compiled
Flag to indicate if the filter has been JIT compiled, required before execution.
bool clamped_border
Image border expression.
Info about scans in a particular dimension.
std::string producer_func
Name of producer function.
Halide::RDom rdom
RDom update domain of each scan.
Scheduling tags for RecFilter function dimensions.
Data members of the recursive filter.
inner dimension after tiling
FuncTag & operator=(const FunctionTag &t)
first variable with one of the above tags
Scheduling tags for Functions.
FuncTag(const FuncTag &t)
int filter_order
order of recursive filter in a given dimension
fourth variable with one of the above tags
Halide::Var var
variable that represents this dimension
full dimension before tiling
FuncTag(const FunctionTag &t)
FuncTag func_category
Category tag for the function.
int num_scans
number of scans in the dimension that must be tiled
Halide::Image< float > feedfwd_coeff
Feed forward coeffs, only one for each scan.
bool operator!=(const FuncTag &a, const FuncTag &b)
std::vector< std::map< std::string, VarTag > > update_var_category
Category tags for all the vars in all the update defs.
FuncTag & operator=(const FuncTag &t)
int tile_width
tile width in this dimension
std::map< std::string, std::string > pure_var_splits
List of new vars created by RecFilterSchedule::split() on pure definition.
outer dimension after tiling
function to be removed by inlining
function that reindexes a subset of another function to write to global mem
Halide::Var external_consumer_var
External consumer function's loop level at which the RecFilter's output is consumed; external consume...
std::map< int, std::vector< std::string > > update_schedule
Schedule for update defs of the function as valid Halide code.
if dimension is at lower granularity
int as_integer(void) const
VarTag operator|(const VarTag &a, const VarTag &b)
third variable with one of the above tags
std::ostream & operator<<(std::ostream &s, const FunctionTag &f)
bool operator==(const FuncTag &a, const FuncTag &b)
int filter_dim
dimension id
Halide::Internal::RefCount ref_count
Smart pointer.
std::string consumer_func
Name of consumer function.
bool tiled
Flag to indicate if the filter has been tiled.
VarTag operator&(const VarTag &a, const VarTag &b)
any variable generated by split scheduling operations
std::string name
Name of recursive filter as well as function that contains the definition of the filter.