@@ -1808,7 +1808,7 @@ template daeExpCall(Exp call, Context context, Text &preExp /*BUFP*/, Text &varD
18081808
18091809 case CALL(path=IDENT(name="abs"), expLst={ e1} , attr=CALL_ATTR(ty = T_INTEGER(__))) then
18101810 let var1 = daeExp(e1, context, &preExp, &varDecls,simCode , &extraFuncs , &extraFuncsDecl, extraFuncsNamespace, stateDerVectorName, useFlatArrayNotation)
1811- 'labs(<%var1%>)'
1811+ 'std:: labs(<%var1%>)'
18121812
18131813 case CALL(path=IDENT(name="abs"), expLst={ e1} ) then
18141814 let var1 = daeExp(e1, context, &preExp, &varDecls,simCode , &extraFuncs , &extraFuncsDecl, extraFuncsNamespace, stateDerVectorName, useFlatArrayNotation)
@@ -1819,137 +1819,51 @@ template daeExpCall(Exp call, Context context, Text &preExp /*BUFP*/, Text &varD
18191819 let argStr = (expLst |> exp => '<%daeExp(exp, context, &preExp /*BUFC*/, &varDecls /*BUFD*/,simCode , &extraFuncs , &extraFuncsDecl, extraFuncsNamespace, stateDerVectorName, useFlatArrayNotation)%>' ;separator=", ")
18201820 let typeStr = expTypeShort(attr.ty )
18211821 let retVar = tempDecl(typeStr, &varDecls /*BUFD*/)
1822- let &preExp += '<%retVar%> = sqrt(<%argStr%>);<%\n%>'
1822+ let &preExp += '<%retVar%> = std:: sqrt(<%argStr%>);<%\n%>'
18231823 '<%retVar%>'
18241824
1825- case CALL(path=IDENT(name="sin"),
1826- expLst={ e1} ,attr=attr as CALL_ATTR(__)) then
1827- let argStr = (expLst |> exp => '<%daeExp(exp, context, &preExp /*BUFC*/, &varDecls /*BUFD*/,simCode , &extraFuncs , &extraFuncsDecl, extraFuncsNamespace, stateDerVectorName, useFlatArrayNotation)%>' ;separator=", ")
1828- let funName = '<%underscorePath(path)%>'
1829- let retType = 'double'
1830- let retVar = tempDecl(retType, &varDecls /*BUFD*/)
1831- let &preExp += '<%retVar%> = <%daeExpCallBuiltinPrefix(attr.builtin)%><%funName%>(<%argStr%>);<%\n%>'
1832- if attr.builtin then '<%retVar%>' else '<%retVar%>.<%retType%>_1'
1833-
1834- case CALL(path=IDENT(name="sinh"),
1835- expLst={ e1} ,attr=attr as CALL_ATTR(__)) then
1825+ // built-in mathematical functions
1826+ case CALL(path=IDENT(name="sin"), expLst={ e1} )
1827+ case CALL(path=IDENT(name="cos"), expLst={ e1} )
1828+ case CALL(path=IDENT(name="tan"), expLst={ e1} )
1829+ case CALL(path=IDENT(name="asin"), expLst={ e1} )
1830+ case CALL(path=IDENT(name="acos"), expLst={ e1} )
1831+ case CALL(path=IDENT(name="atan"), expLst={ e1} )
1832+ case CALL(path=IDENT(name="sinh"), expLst={ e1} )
1833+ case CALL(path=IDENT(name="cosh"), expLst={ e1} )
1834+ case CALL(path=IDENT(name="tanh"), expLst={ e1} )
1835+ case CALL(path=IDENT(name="exp"), expLst={ e1} )
1836+ case CALL(path=IDENT(name="log"), expLst={ e1} )
1837+ case CALL(path=IDENT(name="log10"), expLst={ e1} ) then
18361838 let argStr = (expLst |> exp => '<%daeExp(exp, context, &preExp /*BUFC*/, &varDecls /*BUFD*/,simCode , &extraFuncs , &extraFuncsDecl, extraFuncsNamespace, stateDerVectorName, useFlatArrayNotation)%>' ;separator=", ")
18371839 let funName = '<%underscorePath(path)%>'
1838- let retType = 'double'
1839- let retVar = tempDecl(retType, &varDecls /*BUFD*/)
1840- let &preExp += '<%retVar%> = <%daeExpCallBuiltinPrefix(attr.builtin)%><%funName%>(<%argStr%>);<%\n%>'
1841- if attr.builtin then '<%retVar%>' else '<%retVar%>.<%retType%>_1'
1842- case CALL(path=IDENT(name="asin"),
1843- expLst={ e1} ,attr=attr as CALL_ATTR(__)) then
1844- let argStr = (expLst |> exp => '<%daeExp(exp, context, &preExp /*BUFC*/, &varDecls /*BUFD*/,simCode , &extraFuncs , &extraFuncsDecl, extraFuncsNamespace, stateDerVectorName, useFlatArrayNotation)%>' ;separator=", ")
1845- let funName = '<%underscorePath(path)%>'
1846- let retType = 'double'
1847- let retVar = tempDecl(retType, &varDecls /*BUFD*/)
1848- let &preExp += '<%retVar%> = <%daeExpCallBuiltinPrefix(attr.builtin)%><%funName%>(<%argStr%>);<%\n%>'
1849- if attr.builtin then '<%retVar%>' else '<%retVar%>.<%retType%>_1'
1850- case CALL(path=IDENT(name="cos"),
1851- expLst={ e1} ,attr=attr as CALL_ATTR(__)) then
1852- let argStr = (expLst |> exp => '<%daeExp(exp, context, &preExp /*BUFC*/, &varDecls /*BUFD*/,simCode , &extraFuncs , &extraFuncsDecl, extraFuncsNamespace, stateDerVectorName, useFlatArrayNotation)%>' ;separator=", ")
1853- let funName = '<%underscorePath(path)%>'
1854- let retType = 'double'
1855- let retVar = tempDecl(retType, &varDecls /*BUFD*/)
1856- let &preExp += '<%retVar%> = <%daeExpCallBuiltinPrefix(attr.builtin)%><%funName%>(<%argStr%>);<%\n%>'
1857- if attr.builtin then '<%retVar%>' else '<%retVar%>.<%retType%>_1'
1858- case CALL(path=IDENT(name="cosh"),
1859- expLst={ e1} ,attr=attr as CALL_ATTR(__)) then
1860- let argStr = (expLst |> exp => '<%daeExp(exp, context, &preExp /*BUFC*/, &varDecls /*BUFD*/,simCode , &extraFuncs , &extraFuncsDecl, extraFuncsNamespace, stateDerVectorName, useFlatArrayNotation)%>' ;separator=", ")
1861- let funName = '<%underscorePath(path)%>'
1862- let retType = 'double'
1863- let retVar = tempDecl(retType, &varDecls /*BUFD*/)
1864- let &preExp += '<%retVar%> = <%daeExpCallBuiltinPrefix(attr.builtin)%><%funName%>(<%argStr%>);<%\n%>'
1865- if attr.builtin then '<%retVar%>' else '<%retVar%>.<%retType%>_1'
1866- case CALL(path=IDENT(name="log"),
1867- expLst={ e1} ,attr=attr as CALL_ATTR(__)) then
1868- let argStr = (expLst |> exp => '<%daeExp(exp, context, &preExp /*BUFC*/, &varDecls /*BUFD*/,simCode , &extraFuncs , &extraFuncsDecl, extraFuncsNamespace, stateDerVectorName, useFlatArrayNotation)%>' ;separator=", ")
1869- let funName = '<%underscorePath(path)%>'
1870- let retType = 'double'
1871- let retVar = tempDecl(retType, &varDecls /*BUFD*/)
1872- let &preExp += '<%retVar%> = <%daeExpCallBuiltinPrefix(attr.builtin)%><%funName%>(<%argStr%>);<%\n%>'
1873- if attr.builtin then '<%retVar%>' else '<%retVar%>.<%retType%>_1'
1874-
1875- case CALL(path=IDENT(name="log10"),
1876- expLst={ e1} ,attr=attr as CALL_ATTR(__)) then
1877- let argStr = (expLst |> exp => '<%daeExp(exp, context, &preExp /*BUFC*/, &varDecls /*BUFD*/,simCode , &extraFuncs , &extraFuncsDecl, extraFuncsNamespace, stateDerVectorName, useFlatArrayNotation)%>' ;separator=", ")
1878- let funName = '<%underscorePath(path)%>'
1879- let retType = 'double'
1880- let retVar = tempDecl(retType, &varDecls /*BUFD*/)
1881- let &preExp += '<%retVar%> = <%daeExpCallBuiltinPrefix(attr.builtin)%><%funName%>(<%argStr%>);<%\n%>'
1882- if attr.builtin then '<%retVar%>' else '<%retVar%>.<%retType%>_1'
1883-
1884-
1840+ 'std::<%funName%>(<%argStr%>)'
18851841
1886- case CALL(path=IDENT(name="acos"),
1887- expLst={ e1} ,attr=attr as CALL_ATTR(__)) then
1888- let argStr = (expLst |> exp => '<%daeExp(exp, context, &preExp /*BUFC*/, &varDecls /*BUFD*/,simCode , &extraFuncs , &extraFuncsDecl, extraFuncsNamespace, stateDerVectorName, useFlatArrayNotation)%>' ;separator=", ")
1889- let funName = '<%underscorePath(path)%>'
1890- let retType = 'double'
1891- let retVar = tempDecl(retType, &varDecls /*BUFD*/)
1892- let &preExp += '<%retVar%> = <%daeExpCallBuiltinPrefix(attr.builtin)%><%funName%>(<%argStr%>);<%\n%>'
1893- if attr.builtin then '<%retVar%>' else '<%retVar%>.<%retType%>_1'
1894-
1895- case CALL(path=IDENT(name="tan"),
1896- expLst={ e1} ,attr=attr as CALL_ATTR(__)) then
1897- let argStr = (expLst |> exp => '<%daeExp(exp, context, &preExp /*BUFC*/, &varDecls /*BUFD*/,simCode , &extraFuncs , &extraFuncsDecl, extraFuncsNamespace, stateDerVectorName, useFlatArrayNotation)%>' ;separator=", ")
1898- let funName = '<%underscorePath(path)%>'
1899- let retType = 'double'
1900- let retVar = tempDecl(retType, &varDecls /*BUFD*/)
1901- let &preExp += '<%retVar%> = <%daeExpCallBuiltinPrefix(attr.builtin)%><%funName%>(<%argStr%>);<%\n%>'
1902- if attr.builtin then '<%retVar%>' else '<%retVar%>.<%retType%>_1'
1903-
1904- case CALL(path=IDENT(name="tanh"),
1905- expLst={ e1} ,attr=attr as CALL_ATTR(__)) then
1906- let argStr = (expLst |> exp => '<%daeExp(exp, context, &preExp /*BUFC*/, &varDecls /*BUFD*/,simCode , &extraFuncs , &extraFuncsDecl, extraFuncsNamespace, stateDerVectorName, useFlatArrayNotation)%>' ;separator=", ")
1907- let funName = '<%underscorePath(path)%>'
1908- let retType = 'double'
1909- let retVar = tempDecl(retType, &varDecls /*BUFD*/)
1910- let &preExp += '<%retVar%> = <%daeExpCallBuiltinPrefix(attr.builtin)%><%funName%>(<%argStr%>);<%\n%>'
1911- if attr.builtin then '<%retVar%>' else '<%retVar%>.<%retType%>_1'
1912-
1913- case CALL(path=IDENT(name="atan"),
1914- expLst={ e1} ,attr=attr as CALL_ATTR(__)) then
1915- let argStr = (expLst |> exp => '<%daeExp(exp, context, &preExp /*BUFC*/, &varDecls /*BUFD*/,simCode , &extraFuncs , &extraFuncsDecl, extraFuncsNamespace, stateDerVectorName, useFlatArrayNotation)%>' ;separator=", ")
1916- let funName = '<%underscorePath(path)%>'
1917- let retType = 'double'
1918- let retVar = tempDecl(retType, &varDecls /*BUFD*/)
1919- let &preExp += '<%retVar%> = <%daeExpCallBuiltinPrefix(attr.builtin)%><%funName%>(<%argStr%>);<%\n%>'
1920- if attr.builtin then '<%retVar%>' else '<%retVar%>.<%retType%>_1'
1921-
1922- case CALL(path=IDENT(name="atan2"),
1842+ case CALL(path=IDENT(name="atan2"),
19231843 expLst={ e1,e2} ,attr=attr as CALL_ATTR(__)) then
19241844 let argStr = (expLst |> exp => '<%daeExp(exp, context, &preExp /*BUFC*/, &varDecls /*BUFD*/,simCode , &extraFuncs , &extraFuncsDecl, extraFuncsNamespace, stateDerVectorName, useFlatArrayNotation)%>' ;separator=", ")
19251845
19261846 let retType = 'double'
19271847 let retVar = tempDecl(retType, &varDecls /*BUFD*/)
19281848 let &preExp += '<%retVar%> = std::atan2(<%argStr%>);<%\n%>'
19291849 '<%retVar%>'
1930- case CALL(path=IDENT(name="smooth"),
1850+
1851+ case CALL(path=IDENT(name="smooth"),
19311852 expLst={ e1,e2} ,attr=attr as CALL_ATTR(__)) then
19321853 let var1 = daeExp(e1, context, &preExp, &varDecls,simCode , &extraFuncs , &extraFuncsDecl, extraFuncsNamespace, stateDerVectorName, useFlatArrayNotation)
19331854 let var2 = daeExp(e2, context, &preExp, &varDecls,simCode , &extraFuncs , &extraFuncsDecl, extraFuncsNamespace, stateDerVectorName, useFlatArrayNotation)
19341855 '<%var2%>'
1935- case CALL(path=IDENT(name="homotopy"),
1856+
1857+ case CALL(path=IDENT(name="homotopy"),
19361858 expLst={ e1,e2} ,attr=attr as CALL_ATTR(__)) then
19371859 let var1 = daeExp(e1, context, &preExp, &varDecls,simCode , &extraFuncs , &extraFuncsDecl, extraFuncsNamespace, stateDerVectorName, useFlatArrayNotation)
19381860 let var2 = daeExp(e2, context, &preExp, &varDecls,simCode , &extraFuncs , &extraFuncsDecl, extraFuncsNamespace, stateDerVectorName, useFlatArrayNotation)
19391861 '<%var1%>'
1940- case CALL(path=IDENT(name="homotopyParameter"),
1862+
1863+ case CALL(path=IDENT(name="homotopyParameter"),
19411864 expLst={ } ,attr=attr as CALL_ATTR(__)) then
19421865 '1.0'
19431866
1944- case CALL(path=IDENT(name="exp"),
1945- expLst={ e1} ,attr=attr as CALL_ATTR(__)) then
1946- let argStr = (expLst |> exp => '<%daeExp(exp, context, &preExp /*BUFC*/, &varDecls /*BUFD*/,simCode , &extraFuncs , &extraFuncsDecl, extraFuncsNamespace, stateDerVectorName, useFlatArrayNotation)%>' ;separator=", ")
1947- let funName = '<%underscorePath(path)%>'
1948- let retType = 'double'
1949- let retVar = tempDecl(retType, &varDecls /*BUFD*/)
1950- let &preExp += '<%retVar%> = <%daeExpCallBuiltinPrefix(attr.builtin)%><%funName%>(<%argStr%>);<%\n%>'
1951- if attr.builtin then '<%retVar%>' else '<%retVar%>.<%retType%>_1'
1952-
19531867 case CALL(path=IDENT(name="div"), expLst={ e1,e2} , attr=CALL_ATTR(ty = T_INTEGER(__))) then
19541868 let var1 = daeExp(e1, context, &preExp, &varDecls,simCode , &extraFuncs , &extraFuncsDecl, extraFuncsNamespace, stateDerVectorName, useFlatArrayNotation)
19551869 let var2 = daeExp(e2, context, &preExp, &varDecls,simCode , &extraFuncs , &extraFuncsDecl, extraFuncsNamespace, stateDerVectorName, useFlatArrayNotation)
@@ -2233,15 +2147,6 @@ template daeExpCallStart(Exp exp, Context context, Text &preExp /*BUFP*/,
22332147 error(sourceInfo(), 'Code generation does not support start(<%printExpStr(exp)%>)')
22342148end daeExpCallStart;
22352149
2236- template daeExpCallBuiltinPrefix(Boolean builtin)
2237- "Helper to daeExpCall."
2238- ::=
2239- match builtin
2240- case true then ""
2241- case false then "_"
2242- end daeExpCallBuiltinPrefix;
2243-
2244-
22452150template daeExpLunary(Exp exp, Context context, Text &preExp, Text &varDecls, SimCode simCode, Text& extraFuncs, Text& extraFuncsDecl,
22462151 Text extraFuncsNamespace, Text stateDerVectorName /*=__zDot*/, Boolean useFlatArrayNotation)
22472152 "Generates code for a logical unary expression."
0 commit comments