1 #ifndef HALIDE_INTERVAL_H 2 #define HALIDE_INTERVAL_H 17 #ifdef COMPILING_HALIDE 26 return pos_inf_noinline();
29 return neg_inf_noinline();
105 static Expr neg_inf_expr, pos_inf_expr;
109 static Expr pos_inf_noinline();
110 static Expr neg_inf_noinline();
static ConstantInterval bounded_above(int64_t max)
static ConstantInterval everything()
The interval representing everything.
static Interval single_point(const Expr &e)
Construct an interval representing a single point.
static ConstantInterval single_point(int64_t x)
Construct an interval representing a single point.
A fragment of Halide syntax.
static Interval everything()
The interval representing everything.
bool has_lower_bound() const
Does the interval have a finite greatest lower bound.
static Interval make_intersection(const Interval &a, const Interval &b)
Construct the largest interval contained within two intervals.
bool is_empty() const
Is the interval the empty set.
A class to represent ranges of Exprs.
static Expr make_min(const Expr &a, const Expr &b)
An eagerly-simplifying min of two Exprs that respects infinities.
bool has_lower_bound() const
Does the interval have a finite greatest lower bound.
#define internal_assert(c)
static Interval make_union(const Interval &a, const Interval &b)
Construct the smallest interval containing two intervals.
bool is_single_point() const
Is the interval just a single value (min == max)
bool operator==(const Interval &other) const
Equivalent to same_as.
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.
static ConstantInterval bounded_below(int64_t min)
Construct intervals bounded above or below.
bool is_single_point() const
Is the interval just a single value (min == max)
Expr min
The lower and upper bound of the interval.
bool is_everything() const
Is the interval the entire range.
static ConstantInterval make_union(const ConstantInterval &a, const ConstantInterval &b)
Construct the smallest interval containing two intervals.
Base classes for Halide expressions (Halide::Expr) and statements (Halide::Internal::Stmt) ...
bool has_upper_bound() const
Does the interval have a finite least upper bound.
Interval(const Expr &min, const Expr &max)
Construct an interval from a lower and upper bound.
static Expr pos_inf()
Exprs to represent positive and negative infinity.
A class to represent ranges of integers.
Not visible externally, similar to 'static' linkage in C.
signed __INT64_TYPE__ int64_t
int64_t min
The lower and upper bound of the interval.
#define HALIDE_ALWAYS_INLINE
static Interval nothing()
The interval representing nothing.
static Expr make_max(const Expr &a, const Expr &b)
An eagerly-simplifying max of two Exprs that respects infinities.
bool is_everything() const
Is the interval the entire range.
void include(const Interval &i)
Expand the interval to include another Interval.
HALIDE_ALWAYS_INLINE bool defined() const
void include(const ConstantInterval &i)
Expand the interval to include another Interval.
bool operator==(const ConstantInterval &other) const
Equivalent to same_as.
Interval()
A default-constructed Interval is everything.
bool is_bounded() const
Does the interval have a finite upper and lower bound.
bool is_bounded() const
Does the interval have a finite upper and lower bound.
bool has_upper_bound() const
Does the interval have a finite least upper bound.
bool same_as(const Interval &other) const
Is the interval the same as another interval.