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

daisytuner / sdfglib / 15342647640

30 May 2025 08:25AM UTC coverage: 58.573% (+0.02%) from 58.553%
15342647640

Pull #44

github

web-flow
Merge 003852900 into ad9a83c5a
Pull Request #44: Add Structured Loops

52 of 103 new or added lines in 20 files covered. (50.49%)

2 existing lines in 2 files now uncovered.

8212 of 14020 relevant lines covered (58.57%)

109.72 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(size_t element_id, const DebugInfo& debug_info, symbolic::Symbol indvar,
26✔
9
         symbolic::Expression num_iterations)
10
    : StructuredLoop(element_id, debug_info), indvar_(indvar), num_iterations_(num_iterations) {
13✔
11
    this->root_ = std::unique_ptr<Sequence>(new Sequence(++element_id, debug_info));
13✔
12
    this->init_ = symbolic::zero();
13✔
13
    this->update_ = symbolic::add(indvar_, symbolic::one());
13✔
14
    this->condition_ = symbolic::Lt(indvar_, num_iterations_);
13✔
15
};
13✔
16

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

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

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

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

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

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

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

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

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

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

45
}  // namespace structured_control_flow
46
}  // 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