From e683e8bfcb847d0636b2ab4e5a3fa9d26822b72d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=BCdiger=20Franke?= Date: Wed, 26 Aug 2015 23:09:23 +0200 Subject: [PATCH] Quick fix for div operator This is to avoid a compilation error for models using div or rem. --- Compiler/Template/CodegenCppCommon.tpl | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Compiler/Template/CodegenCppCommon.tpl b/Compiler/Template/CodegenCppCommon.tpl index d25b1d18c7b..3b99b920276 100644 --- a/Compiler/Template/CodegenCppCommon.tpl +++ b/Compiler/Template/CodegenCppCommon.tpl @@ -1957,6 +1957,12 @@ template daeExpCall(Exp call, Context context, Text &preExp /*BUFP*/, Text &varD let var2 = daeExp(e2, context, &preExp, &varDecls,simCode , &extraFuncs , &extraFuncsDecl, extraFuncsNamespace, stateDerVectorName, useFlatArrayNotation) 'boost::math::trunc(<%var1%>/<%var2%>)' + case CALL(path=IDENT(name="div"), expLst={e1,e2,index}) then + // TODO: should trigger event if result changes discontinuously + let var1 = daeExp(e1, context, &preExp, &varDecls,simCode , &extraFuncs , &extraFuncsDecl, extraFuncsNamespace, stateDerVectorName, useFlatArrayNotation) + let var2 = daeExp(e2, context, &preExp, &varDecls,simCode , &extraFuncs , &extraFuncsDecl, extraFuncsNamespace, stateDerVectorName, useFlatArrayNotation) + 'boost::math::trunc(<%var1%>/<%var2%>)' + case CALL(path=IDENT(name="mod"), expLst={e1,e2}, attr=attr as CALL_ATTR(__)) then let var1 = daeExp(e1, context, &preExp, &varDecls,simCode , &extraFuncs , &extraFuncsDecl, extraFuncsNamespace, stateDerVectorName, useFlatArrayNotation) let var2 = daeExp(e2, context, &preExp, &varDecls,simCode , &extraFuncs , &extraFuncsDecl, extraFuncsNamespace, stateDerVectorName, useFlatArrayNotation)