Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in
  • E EMAM2Cpp
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 12
    • Issues 12
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
    • Requirements
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • monticore
  • EmbeddedMontiArcEmbeddedMontiArc
  • generators
  • EMAM2Cpp
  • Issues
  • #46
Closed
Open
Issue created Sep 30, 2020 by Sascha Dewes@sascha.dewes

Index conversion bug

There seems to be a bug with the conversion from EMA indices to Cpp indices. In the following example it looks like the ceil function was mistaken for an array as the generator applies the decrementation twice to the inputarray index.

Input Code:

implementation Math {
    for i=1:3
        outputarray(i) = ceil(inputarray(i));
    end
}

Output Code:

void execute()
{
for( auto i=1;i<=3;++i){
outputarray(i-1) = ceil(inputarray(i-1-1));
}
}

The same Problem occurs when there is no actual array inside the function brackets.

Input Code:

implementation Math {
    for i=1:3
        Q x = inputarray(i);
        outputarray(i) = ceil(x);
    end
}

Output Code:

void execute()
{
for( auto i=1;i<=3;++i){
double x = inputarray(i-1);
outputarray(i-1) = ceil(x-1);
}
}
Assignee
Assign to
Time tracking