docc 0.8.3 (0d44999b)
C++ API Reference
Loading...
Searching...
No Matches
einsum_promotion.h
Go to the documentation of this file.
1#pragma once
2
3#include <nlohmann/json_fwd.hpp>
4#include <string>
5
14
15namespace sdfg {
16namespace einsum {
17
19private:
20 EinsumNode& einsum_node_;
21 EinsumNode* new_einsum_node_;
22
23 symbolic::Expression cnf_to_upper_bound(const symbolic::CNF& cnf, const symbolic::Symbol indvar);
24
25 bool subset_contains_symbol(const data_flow::Subset& subset, const symbolic::Symbol& symbol);
26
27public:
29
30 virtual std::string name() const override;
31
32 virtual bool
34
35 virtual void apply(builder::StructuredSDFGBuilder& builder, analysis::AnalysisManager& analysis_manager) override;
36
38
39 virtual void to_json(nlohmann::json& j) const override;
40
42};
43
44} // namespace einsum
45} // namespace sdfg
Definition analysis.h:53
Note: Even though the class references unique_ptr, it will never delete an SDFG it has a reference to...
Definition structured_sdfg_builder.h:44
Definition einsum_node.h:34
static EinsumPromotion from_json(builder::StructuredSDFGBuilder &builder, const nlohmann::json &j)
virtual bool can_be_applied(builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager) override
Check if this transformation can be safely applied.
virtual void apply(builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager) override
Apply this transformation to the SDFG.
virtual void to_json(nlohmann::json &j) const override
Serialize this transformation to JSON.
EinsumPromotion(EinsumNode &einsum_node)
virtual std::string name() const override
Get the name of this transformation.
Base class for all SDFG transformations.
Definition transformation.h:25
Conversion of conditions to conjunctive normal form (CNF).
SymEngine::RCP< const SymEngine::Basic > Expression
Reference-counted pointer to a symbolic expression (SymEngine Basic).
Definition symbolic.h:83
SymEngine::RCP< const SymEngine::Symbol > Symbol
Reference-counted pointer to a SymEngine Symbol.
Definition symbolic.h:71
Edges in the dataflow graph representing data movement.
Definition function_builder.h:10
symbolic::MultiExpression Subset
Type alias for a subset specification (array of symbolic expressions).
Definition memlet.h:103
Definition einsum.h:13
std::vector< std::vector< Condition > > CNF
Conjunctive Normal Form representation.
Definition conjunctive_normal_form.h:73
Definition analysis.h:7
Symbolic system for integer-based symbol analysis.