|
docc 0.8.3 (0d44999b)
C++ API Reference
|
Computes bounds of symbolic expressions using assumptions. More...
#include <sdfg/symbolic/extreme_values.h>
Public Member Functions | |
| BoundAnalysis (const SymbolSet ¶meters, const Assumptions &assumptions, bool use_tight_assumptions, int64_t budget=DEFAULT_BOUND_BUDGET, bool project_constraints=true) | |
| Interval | bound (const Expression &expr) |
| Compute both lower and upper bounds of an expression. | |
| Expression | lower_bound (const Expression &expr) |
| Convenience: compute only the lower bound. | |
| Expression | upper_bound (const Expression &expr) |
| Convenience: compute only the upper bound. | |
Computes bounds of symbolic expressions using assumptions.
BoundAnalysis walks the expression tree and computes both lower and upper bounds simultaneously, using polynomial normalization and monotonicity analysis for tight results.
The instance is the unit of reuse: construct once with the parameter set and assumptions, then call bound/lower_bound/upper_bound for each expression. Results are memoized internally, so repeated queries for the same expression (or shared subterms across queries) return in O(1) hash lookup. The cache is sound under the fixed (parameters, assumptions, tight) triple this instance was constructed with; create a new instance to bound under different assumptions.
| sdfg::symbolic::BoundAnalysis::BoundAnalysis | ( | const SymbolSet & | parameters, |
| const Assumptions & | assumptions, | ||
| bool | use_tight_assumptions, | ||
| int64_t | budget = DEFAULT_BOUND_BUDGET, | ||
| bool | project_constraints = true ) |
| Interval sdfg::symbolic::BoundAnalysis::bound | ( | const Expression & | expr | ) |
Compute both lower and upper bounds of an expression.
| Expression sdfg::symbolic::BoundAnalysis::lower_bound | ( | const Expression & | expr | ) |
Convenience: compute only the lower bound.
| Expression sdfg::symbolic::BoundAnalysis::upper_bound | ( | const Expression & | expr | ) |
Convenience: compute only the upper bound.