Loading...
Searching...
No Matches
DerivativeUtils.h File Reference
`#include <set>`
`#include "Bounds.h"`
`#include "Derivative.h"`
`#include "Expr.h"`
`#include "RDom.h"`
`#include "Scope.h"`
`#include "Var.h"`

Go to the source code of this file.

## Classes

struct | Halide::Internal::ReductionVariableInfo
| Return a list of reduction variables the expression or tuple depends on. More...
struct | Halide::Internal::BufferInfo
| Find all calls to image buffers and parameters in the function. 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

## Functions

Expr | Halide::Internal::remove_let_definitions (const Expr &expr)
| Remove all let definitions of expr.
std::vector< int > | Halide::Internal::gather_variables (const Expr &expr, const std::vector< std::string > &filter)
| Return a list of variables' indices that expr depends on and are in the filter.
std::vector< int > | Halide::Internal::gather_variables (const Expr &expr, const std::vector< Var > &filter)
std::map< std::string, ReductionVariableInfo > | Halide::Internal::gather_rvariables (const Expr &expr)
std::map< std::string, ReductionVariableInfo > | Halide::Internal::gather_rvariables (const Tuple &tuple)
Expr | Halide::Internal::add_let_expression (const Expr &expr, const std::map< std::string, Expr > &let_var_mapping, const std::vector< std::string > &let_variables)
| Add necessary let expressions to expr.
std::vector< Expr > | Halide::Internal::sort_expressions (const Expr &expr)
| Topologically sort the expression graph expressed by expr.
std::map< std::string, Box > | Halide::Internal::inference_bounds (const std::vector< Func > &funcs, const std::vector< Box > &output_bounds)
| Compute the bounds of funcs.
std::map< std::string, Box > | Halide::Internal::inference_bounds (const Func &func, const Box &output_bounds)
std::vector< std::pair< Expr, Expr > > | Halide::Internal::box_to_vector (const Box &bounds)
| Convert Box to vector of (min, extent).
bool | Halide::Internal::equal (const RDom &bounds0, const RDom &bounds1)
| Return true if bounds0 and bounds1 represent the same bounds.
std::vector< std::string > | Halide::Internal::vars_to_strings (const std::vector< Var > &vars)
| Return a list of variable names.
ReductionDomain | Halide::Internal::extract_rdom (const Expr &expr)
| Return the reduction domain used by expr.
std::pair< bool, Expr > | Halide::Internal::solve_inverse (Expr expr, const std::string &new_var, const std::string &var)
| expr is new_var == f(var), solve for var == g(new_var) if multiple new_var corresponds to same var, introduce a RDom
std::map< std::string, BufferInfo > | Halide::Internal::find_buffer_param_calls (const Func &func)
std::set< std::string > | Halide::Internal::find_implicit_variables (const Expr &expr)
| Find all implicit variables in expr.
Expr | Halide::Internal::substitute_rdom_predicate (const std::string &name, const Expr &replacement, const Expr &expr)
| Substitute the variable.
bool | Halide::Internal::is_calling_function (const std::string &func_name, const Expr &expr, const std::map< std::string, Expr > &let_var_mapping)
| Return true if expr contains call to func_name.
bool | Halide::Internal::is_calling_function (const Expr &expr, const std::map< std::string, Expr > &let_var_mapping)
| Return true if expr depends on any function or buffer.
Expr | Halide::Internal::substitute_call_arg_with_pure_arg (Func f, int variable_id, const Expr &e)
| Replaces call to Func f in Expr e such that the call argument at variable_id is the pure argument.