diff --git a/src/analyser.cpp b/src/analyser.cpp index ee0663f96..0397d76dc 100644 --- a/src/analyser.cpp +++ b/src/analyser.cpp @@ -3300,16 +3300,18 @@ void Analyser::AnalyserImpl::analyseModel(const ModelPtr &model) auto equation = aie2aeMappings[internalEquation]; - equation->mPimpl->populate(type, - (type == AnalyserEquation::Type::EXTERNAL) ? + equation->mPimpl->mType = type; + equation->mPimpl->mAst = (type == AnalyserEquation::Type::EXTERNAL) ? nullptr : - internalEquation->mAst, - equationDependencies, - internalEquation->mNlaSystemIndex, - equationNlaSiblings, - computedConstants, - algebraic, - externals); + internalEquation->mAst; + equation->mPimpl->mNlaSystemIndex = internalEquation->mNlaSystemIndex; + + std::copy(computedConstants.begin(), computedConstants.end(), back_inserter(equation->mPimpl->mComputedConstants)); + std::copy(algebraic.begin(), algebraic.end(), back_inserter(equation->mPimpl->mAlgebraic)); + std::copy(externals.begin(), externals.end(), back_inserter(equation->mPimpl->mExternals)); + + std::copy(equationDependencies.begin(), equationDependencies.end(), back_inserter(equation->mPimpl->mDependencies)); + std::copy(equationNlaSiblings.begin(), equationNlaSiblings.end(), back_inserter(equation->mPimpl->mNlaSiblings)); mModel->mPimpl->mEquations.push_back(equation); } diff --git a/src/analyserequation.cpp b/src/analyserequation.cpp index b124f0e6c..7caf807ce 100644 --- a/src/analyserequation.cpp +++ b/src/analyserequation.cpp @@ -28,26 +28,6 @@ AnalyserEquationPtr AnalyserEquation::AnalyserEquationImpl::create() return std::shared_ptr {new AnalyserEquation {}}; } -void AnalyserEquation::AnalyserEquationImpl::populate(AnalyserEquation::Type type, - const AnalyserEquationAstPtr &ast, - const std::vector &dependencies, - size_t nlaSystemIndex, - const std::vector &nlaSiblings, - const std::vector &computedConstants, - const std::vector &algebraic, - const std::vector &externals) -{ - mType = type; - mAst = ast; - mNlaSystemIndex = nlaSystemIndex; - - std::copy(dependencies.begin(), dependencies.end(), back_inserter(mDependencies)); - std::copy(nlaSiblings.begin(), nlaSiblings.end(), back_inserter(mNlaSiblings)); - std::copy(computedConstants.begin(), computedConstants.end(), back_inserter(mComputedConstants)); - std::copy(algebraic.begin(), algebraic.end(), back_inserter(mAlgebraic)); - std::copy(externals.begin(), externals.end(), back_inserter(mExternals)); -} - bool AnalyserEquation::AnalyserEquationImpl::isEmptyDependency(const AnalyserEquationWeakPtr &dependency) { auto computedConstants = dependency.lock()->computedConstants(); diff --git a/src/analyserequation_p.h b/src/analyserequation_p.h index 75c2aed94..471fd9b97 100644 --- a/src/analyserequation_p.h +++ b/src/analyserequation_p.h @@ -31,24 +31,17 @@ struct AnalyserEquation::AnalyserEquationImpl { AnalyserEquation::Type mType = AnalyserEquation::Type::ALGEBRAIC; AnalyserEquationAstPtr mAst; - std::vector mDependencies; size_t mNlaSystemIndex; - std::vector mNlaSiblings; bool mIsStateRateBased = false; + std::vector mComputedConstants; std::vector mAlgebraic; std::vector mExternals; - static AnalyserEquationPtr create(); + std::vector mDependencies; + std::vector mNlaSiblings; - void populate(AnalyserEquation::Type type, - const AnalyserEquationAstPtr &ast, - const std::vector &dependencies, - size_t nlaSystemIndex, - const std::vector &nlaSiblings, - const std::vector &computedConstants, - const std::vector &algebraic, - const std::vector &externals); + static AnalyserEquationPtr create(); static bool isEmptyDependency(const AnalyserEquationWeakPtr &dependency);