docc 0.8.3 (0d44999b)
C++ API Reference
Loading...
Searching...
No Matches
sdfg::symbolic::BoundAnalysis Class Reference

Computes bounds of symbolic expressions using assumptions. More...

#include <sdfg/symbolic/extreme_values.h>

Public Member Functions

 BoundAnalysis (const SymbolSet &parameters, 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.

Detailed Description

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.

Constructor & Destructor Documentation

◆ BoundAnalysis()

sdfg::symbolic::BoundAnalysis::BoundAnalysis ( const SymbolSet & parameters,
const Assumptions & assumptions,
bool use_tight_assumptions,
int64_t budget = DEFAULT_BOUND_BUDGET,
bool project_constraints = true )

Member Function Documentation

◆ bound()

Interval sdfg::symbolic::BoundAnalysis::bound ( const Expression & expr)

Compute both lower and upper bounds of an expression.

◆ lower_bound()

Expression sdfg::symbolic::BoundAnalysis::lower_bound ( const Expression & expr)

Convenience: compute only the lower bound.

◆ upper_bound()

Expression sdfg::symbolic::BoundAnalysis::upper_bound ( const Expression & expr)

Convenience: compute only the upper bound.


The documentation for this class was generated from the following file: