RecFilter
recfilter_internals.h File Reference
#include <vector>
#include <string>
#include <Halide.h>

Go to the source code of this file.

Data Structures

struct  FilterInfo
 Info about scans in a particular dimension. More...
 
class  FuncTag
 Scheduling tags for Functions. More...
 
class  RecFilterFunc
 Recursive filter function with scheduling interface. More...
 
struct  RecFilterContents
 Data members of the recursive filter. More...
 

Enumerations

enum  FunctionTag : int {
  INLINE = 0x000, INTER = 0x010, INTRA_N = 0x020, INTRA_1 = 0x040,
  REINDEX = 0x100
}
 
enum  VariableTag : int {
  INVALID = 0x0000, FULL = 0x0010, INNER = 0x0020, OUTER = 0x0040,
  TAIL = 0x0080, SCAN = 0x0100, CHANNEL = 0x0200, __1 = 0x0001,
  __2 = 0x0002, __3 = 0x0004, __4 = 0x0008, SPLIT = 0x1000
}
 

Functions

Logical operations for scheduling tags
VarTag operator| (const VarTag &a, const VarTag &b)
 
VarTag operator& (const VarTag &a, const VarTag &b)
 
VariableTag operator| (const VariableTag &a, const VariableTag &b)
 
VariableTag operator& (const VariableTag &a, const VariableTag &b)
 
bool operator== (const FuncTag &a, const FuncTag &b)
 
bool operator== (const VarTag &a, const VarTag &b)
 
bool operator!= (const FuncTag &a, const FuncTag &b)
 
bool operator!= (const VarTag &a, const VarTag &b)
 
bool operator== (const FuncTag &a, const FunctionTag &b)
 
bool operator== (const VarTag &a, const VariableTag &b)
 
Utils to print scheduling tags
std::ostream & operator<< (std::ostream &s, const FunctionTag &f)
 
std::ostream & operator<< (std::ostream &s, const VariableTag &v)
 
std::ostream & operator<< (std::ostream &s, const FuncTag &f)
 
std::ostream & operator<< (std::ostream &s, const VarTag &v)
 

Enumeration Type Documentation

enum FunctionTag : int
Enumerator
INLINE 

function to be removed by inlining

INTER 

filter over tail elements across tiles (single 1D scan)

INTRA_N 

filter within tile (multiple scans in multiple dimensions)

INTRA_1 

filter within tile (single scan in one dimension)

REINDEX 

function that reindexes a subset of another function to write to global mem

Definition at line 23 of file recfilter_internals.h.

enum VariableTag : int
Enumerator
INVALID 

invalid var

FULL 

full dimension before tiling

INNER 

inner dimension after tiling

OUTER 

outer dimension after tiling

TAIL 

if dimension is at lower granularity

SCAN 

if dimension is a scan

CHANNEL 

if dimension represents RGB channels

__1 

first variable with one of the above tags

__2 

second variable with one of the above tags

__3 

third variable with one of the above tags

__4 

fourth variable with one of the above tags

SPLIT 

any variable generated by split scheduling operations

Definition at line 31 of file recfilter_internals.h.

Function Documentation

VarTag operator| ( const VarTag a,
const VarTag b 
)
VarTag operator& ( const VarTag a,
const VarTag b 
)
VariableTag operator| ( const VariableTag a,
const VariableTag b 
)
VariableTag operator& ( const VariableTag a,
const VariableTag b 
)
bool operator== ( const FuncTag a,
const FuncTag b 
)
bool operator== ( const VarTag a,
const VarTag b 
)
bool operator!= ( const FuncTag a,
const FuncTag b 
)
bool operator!= ( const VarTag a,
const VarTag b 
)
bool operator== ( const FuncTag a,
const FunctionTag b 
)
bool operator== ( const VarTag a,
const VariableTag b 
)
std::ostream& operator<< ( std::ostream &  s,
const FunctionTag f 
)
std::ostream& operator<< ( std::ostream &  s,
const VariableTag v 
)
std::ostream& operator<< ( std::ostream &  s,
const FuncTag f 
)
std::ostream& operator<< ( std::ostream &  s,
const VarTag v 
)