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

Analysis of symbol evolution through maps. More...

#include <string>
#include <unordered_map>
#include <vector>
#include "sdfg/symbolic/assumptions.h"
#include "sdfg/symbolic/extreme_values.h"
#include "sdfg/symbolic/symbolic.h"

Go to the source code of this file.

Classes

struct  sdfg::symbolic::maps::DependenceDeltas
 Represents the set of dependence distance vectors between two access patterns. More...

Namespaces

namespace  sdfg
namespace  sdfg::symbolic
namespace  sdfg::symbolic::maps

Functions

bool sdfg::symbolic::maps::is_monotonic (const Expression expr, const Symbol sym, const Assumptions &assums)
 Checks if an expression is monotonic with respect to a symbol.
bool sdfg::symbolic::maps::intersects (const MultiExpression &expr1, const MultiExpression &expr2, const Symbol indvar, const Assumptions &assums1, const Assumptions &assums2)
 Checks if the integer domain of two maps intersect.
DependenceDeltas sdfg::symbolic::maps::dependence_deltas (const MultiExpression &expr1, const MultiExpression &expr2, const Symbol indvar, const Assumptions &assums1, const Assumptions &assums2)
 Computes the dependence distance delta set between two access patterns.
DependenceDeltas sdfg::symbolic::maps::dependence_deltas (const MultiExpression &expr1, const MultiExpression &expr2, const Symbol indvar, sdfg::symbolic::AssumptionsBounds &bounds1, sdfg::symbolic::AssumptionsBounds &bounds2)
 Same as dependence_deltas, but reuses caller-supplied AssumptionsBounds.

Detailed Description

Analysis of symbol evolution through maps.

This file provides functions for analyzing symbolic maps, as used in memory accesses with respect to induction variables of loops.

Map Analysis

Key operations:

  • Monotonicity checking: Determines if a map is strictly (positive) monotonic
  • Intersection checking: Determines if the integer domains of two maps intersect
See also
assumptions.h for information about symbol assumptions and maps
symbolic.h for building symbolic expressions