• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

daisytuner / sdfglib / 15512041711

07 Jun 2025 09:59PM UTC coverage: 57.416% (+0.1%) from 57.315%
15512041711

push

github

web-flow
Merge pull request #44 from daisytuner/StructuredLoops

Add Structured Loops

51 of 102 new or added lines in 20 files covered. (50.0%)

10 existing lines in 8 files now uncovered.

7618 of 13268 relevant lines covered (57.42%)

116.01 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

52.17
/src/structured_control_flow/map.cpp
1
#include "sdfg/structured_control_flow/map.h"
2

3
#include "sdfg/symbolic/symbolic.h"
4

5
namespace sdfg {
6
namespace structured_control_flow {
7

8
Map::Map(const DebugInfo& debug_info, symbolic::Symbol indvar, symbolic::Expression num_iterations)
26✔
9
    : StructuredLoop(debug_info), indvar_(indvar), num_iterations_(num_iterations) {
13✔
10
    this->root_ = std::unique_ptr<Sequence>(new Sequence(debug_info));
13✔
11
    this->init_ = symbolic::zero();
13✔
12
    this->update_ = symbolic::add(indvar_, symbolic::one());
13✔
13
    this->condition_ = symbolic::Lt(indvar_, num_iterations_);
13✔
14
};
13✔
15

16
const symbolic::Symbol& Map::indvar() const { return this->indvar_; };
6✔
17

18
symbolic::Symbol& Map::indvar() { return this->indvar_; };
17✔
19

NEW
20
const symbolic::Expression& Map::init() const { return this->init_; };
×
21

NEW
22
const symbolic::Expression& Map::update() const { return this->update_; };
×
23

NEW
24
const symbolic::Condition& Map::condition() const { return this->condition_; };
×
25

26
const symbolic::Expression& Map::num_iterations() const { return this->num_iterations_; };
6✔
27

28
symbolic::Expression& Map::num_iterations() { return this->num_iterations_; };
4✔
29

30
Sequence& Map::root() const { return *this->root_; };
35✔
31

32
void Map::replace(const symbolic::Expression& old_expression,
×
33
                  const symbolic::Expression& new_expression) {
34
    if (symbolic::eq(this->indvar_, old_expression)) {
×
35
        assert(SymEngine::is_a<SymEngine::Symbol>(*new_expression) &&
×
36
               "New Indvar must be a symbol");
37
        this->indvar_ = SymEngine::rcp_static_cast<const SymEngine::Symbol>(new_expression);
×
38
    }
×
39
    this->num_iterations_ = symbolic::subs(this->num_iterations_, old_expression, new_expression);
×
40

41
    this->root_->replace(old_expression, new_expression);
×
42
};
×
43

44
}  // namespace structured_control_flow
45
}  // namespace sdfg
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc