Halide 19.0.0
Halide compiler and libraries
|
A class to represent ranges of integers. More...
#include <ConstantInterval.h>
Public Member Functions | |
ConstantInterval ()=default | |
ConstantInterval (int64_t min, int64_t max) | |
Construct an interval from a lower and upper bound. | |
bool | is_everything () const |
Is the interval the entire range. | |
bool | is_single_point () const |
Is the interval just a single value (min == max) | |
bool | is_single_point (int64_t x) const |
Is the interval a particular single value. | |
bool | is_bounded () const |
Does the interval have a finite upper and lower bound. | |
void | include (const ConstantInterval &i) |
Expand the interval to include another Interval. | |
void | include (int64_t x) |
Expand the interval to include a point. | |
bool | contains (int32_t x) const |
Test if the interval contains a particular value. | |
bool | contains (int64_t x) const |
Test if the interval contains a particular value. | |
bool | contains (uint64_t x) const |
Test if the interval contains a particular unsigned value. | |
bool | operator== (const ConstantInterval &other) const |
Equivalent to same_as. | |
void | operator+= (const ConstantInterval &other) |
In-place versions of the arithmetic operators below. | |
void | operator+= (int64_t) |
void | operator-= (const ConstantInterval &other) |
void | operator-= (int64_t) |
void | operator*= (const ConstantInterval &other) |
void | operator*= (int64_t) |
void | operator/= (const ConstantInterval &other) |
void | operator/= (int64_t) |
void | operator%= (const ConstantInterval &other) |
void | operator%= (int64_t) |
ConstantInterval | operator- () const |
Negate an interval. | |
void | cast_to (const Type &t) |
Track what happens if a constant integer interval is forced to fit into a concrete integer type. | |
Static Public Member Functions | |
static ConstantInterval | everything () |
The interval representing everything. | |
static ConstantInterval | single_point (int64_t x) |
Construct an interval representing a single point. | |
static ConstantInterval | bounded_below (int64_t min) |
Construct intervals bounded above or below. | |
static ConstantInterval | bounded_above (int64_t max) |
static ConstantInterval | make_union (const ConstantInterval &a, const ConstantInterval &b) |
Construct the smallest interval containing two intervals. | |
static ConstantInterval | make_intersection (const ConstantInterval &a, const ConstantInterval &b) |
Construct the largest interval contained within two intervals. | |
static ConstantInterval | bounds_of_type (Type) |
Get constant integer bounds on a type. | |
Public Attributes | |
int64_t | min = 0 |
The lower and upper bound of the interval. | |
int64_t | max = 0 |
bool | min_defined = false |
bool | max_defined = false |
A class to represent ranges of integers.
Can be unbounded above or below, but they cannot be empty.
Definition at line 18 of file ConstantInterval.h.
|
default |
Construct an interval from a lower and upper bound.
|
static |
The interval representing everything.
|
static |
Construct an interval representing a single point.
Referenced by Halide::Internal::Simplify::ExprInfo::trim_bounds_using_alignment().
|
static |
Construct intervals bounded above or below.
|
static |
bool Halide::Internal::ConstantInterval::is_everything | ( | ) | const |
Is the interval the entire range.
bool Halide::Internal::ConstantInterval::is_single_point | ( | ) | const |
Is the interval just a single value (min == max)
Referenced by Halide::Internal::Simplify::ExprInfo::trim_bounds_using_alignment().
bool Halide::Internal::ConstantInterval::is_single_point | ( | int64_t | x | ) | const |
Is the interval a particular single value.
bool Halide::Internal::ConstantInterval::is_bounded | ( | ) | const |
Does the interval have a finite upper and lower bound.
Referenced by Halide::Internal::Simplify::ExprInfo::trim_bounds_using_alignment().
void Halide::Internal::ConstantInterval::include | ( | const ConstantInterval & | i | ) |
Expand the interval to include another Interval.
void Halide::Internal::ConstantInterval::include | ( | int64_t | x | ) |
Expand the interval to include a point.
bool Halide::Internal::ConstantInterval::contains | ( | int32_t | x | ) | const |
Test if the interval contains a particular value.
bool Halide::Internal::ConstantInterval::contains | ( | int64_t | x | ) | const |
Test if the interval contains a particular value.
bool Halide::Internal::ConstantInterval::contains | ( | uint64_t | x | ) | const |
Test if the interval contains a particular unsigned value.
|
static |
Construct the smallest interval containing two intervals.
|
static |
Construct the largest interval contained within two intervals.
Throws an error if the interval is empty.
Referenced by Halide::Internal::Simplify::ExprInfo::intersect().
bool Halide::Internal::ConstantInterval::operator== | ( | const ConstantInterval & | other | ) | const |
Equivalent to same_as.
Exists so that the autoscheduler can compare two map<string, Interval> for equality in order to cache computations.
void Halide::Internal::ConstantInterval::operator+= | ( | const ConstantInterval & | other | ) |
In-place versions of the arithmetic operators below.
void Halide::Internal::ConstantInterval::operator+= | ( | int64_t | ) |
void Halide::Internal::ConstantInterval::operator-= | ( | const ConstantInterval & | other | ) |
void Halide::Internal::ConstantInterval::operator-= | ( | int64_t | ) |
void Halide::Internal::ConstantInterval::operator*= | ( | const ConstantInterval & | other | ) |
void Halide::Internal::ConstantInterval::operator*= | ( | int64_t | ) |
void Halide::Internal::ConstantInterval::operator/= | ( | const ConstantInterval & | other | ) |
void Halide::Internal::ConstantInterval::operator/= | ( | int64_t | ) |
void Halide::Internal::ConstantInterval::operator%= | ( | const ConstantInterval & | other | ) |
void Halide::Internal::ConstantInterval::operator%= | ( | int64_t | ) |
ConstantInterval Halide::Internal::ConstantInterval::operator- | ( | ) | const |
Negate an interval.
void Halide::Internal::ConstantInterval::cast_to | ( | const Type & | t | ) |
Track what happens if a constant integer interval is forced to fit into a concrete integer type.
Referenced by Halide::Internal::Simplify::ExprInfo::cast_to().
|
static |
Get constant integer bounds on a type.
int64_t Halide::Internal::ConstantInterval::min = 0 |
The lower and upper bound of the interval.
They are included in the interval.
Definition at line 21 of file ConstantInterval.h.
Referenced by Halide::Internal::Simplify::ExprInfo::trim_bounds_using_alignment().
int64_t Halide::Internal::ConstantInterval::max = 0 |
Definition at line 21 of file ConstantInterval.h.
Referenced by Halide::Internal::Simplify::ExprInfo::trim_bounds_using_alignment().
bool Halide::Internal::ConstantInterval::min_defined = false |
Definition at line 22 of file ConstantInterval.h.
Referenced by Halide::Internal::Simplify::ExprInfo::trim_bounds_using_alignment().
bool Halide::Internal::ConstantInterval::max_defined = false |
Definition at line 22 of file ConstantInterval.h.
Referenced by Halide::Internal::Simplify::ExprInfo::trim_bounds_using_alignment().