docc 0.8.3 (0d44999b)
C++ API Reference
Loading...
Searching...
No Matches
utils.h File Reference

ISL (Integer Set Library) integration utilities. More...

#include <isl/map.h>
#include <optional>
#include "sdfg/symbolic/assumptions.h"
#include "sdfg/symbolic/symbolic.h"

Go to the source code of this file.

Namespaces

namespace  sdfg
namespace  sdfg::symbolic

Functions

std::string sdfg::symbolic::expression_to_map_str (const MultiExpression &expr, const Assumptions &assums)
 Converts a multi-dimensional expression to an ISL map string.
std::tuple< std::string, std::string, std::string > sdfg::symbolic::expressions_to_intersection_map_str (const MultiExpression &expr1, const MultiExpression &expr2, const Symbol indvar, const Assumptions &assums1, const Assumptions &assums2)
 Converts two expressions to ISL format for intersection analysis.
bool sdfg::symbolic::expressions_to_intersection_maps (isl_ctx *ctx, const MultiExpression &expr1, const MultiExpression &expr2, const Symbol indvar, const Assumptions &assums1, const Assumptions &assums2, isl_map **map_1, isl_map **map_2, isl_map **map_3)
 Builds the three maps of expressions_to_intersection_map_str directly in ctx, without parsing.
isl_map * sdfg::symbolic::expression_to_may_map (isl_ctx *ctx, const MultiExpression &expr, const Assumptions &assums)
 Builds the map of expression_to_map_str directly in ctx, possibly over-approximating its domain like expressions_to_intersection_maps (may-queries only).
std::optional< bool > sdfg::symbolic::decide_nonneg (const Expression &expr, const Assumptions &assums, bool strict)
 Decides expr >= 0 (> 0 if strict) under the bounds and constraints of assums with isl.
ExpressionSet sdfg::symbolic::generate_constraints (SymbolSet &syms, const Assumptions &assums, SymbolSet &seen)
 Generates constraint expressions from assumptions.
std::string sdfg::symbolic::constraint_to_isl_str (const Expression con)
 Converts a constraint expression to ISL string format.
std::string sdfg::symbolic::expression_to_isl_str (const Expression expr)
 Converts an index or bound expression to ISL syntax.
void sdfg::symbolic::canonicalize_map_dims (isl_map *map, const std::string &in_prefix, const std::string &out_prefix)
 Canonicalizes dimension names in an ISL map.
bool sdfg::symbolic::vectors_of_expressions_match (const std::vector< Expression > &a, const std::vector< Expression > &b)
bool sdfg::symbolic::vectors_of_expressions_match (const std::vector< Expression > &a, const std::vector< Expression > &b, const ExpressionMapping &replacements)
 Applies replacement mappings to a before checking.

Detailed Description

ISL (Integer Set Library) integration utilities.

This file provides utilities for converting symbolic expressions to ISL format and performing operations using the Integer Set Library.

ISL Integration

The Integer Set Library (ISL) is a tool for reasoning about integer sets and relations. This module provides the bridge between sdfglib's symbolic expressions and ISL's representation, enabling polyhedral analysis.

See also
sets.h for high-level set operations using ISL
assumptions.h for symbol assumptions used in constraints