Skip to content

Commit de0b704

Browse files
committed
- Avoid creating the DAE.RELATION x >= 0.0 to generate code for sqrt. Now we simply generate the expression and check if it's >= 0.0, else use it
git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@12570 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
1 parent 9226133 commit de0b704

File tree

1 file changed

+6
-7
lines changed

1 file changed

+6
-7
lines changed

Compiler/Template/CodegenC.tpl

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6427,14 +6427,13 @@ template daeExpCall(Exp call, Context context, Text &preExp /*BUFP*/, Text &varD
64276427

64286428
//sqrt
64296429
case CALL(path=IDENT(name="sqrt"), expLst={e1}, attr=attr as CALL_ATTR(__)) then
6430-
(match createAssertforSqrt(e1)
6431-
case BCONST(bool=true) then
6432-
let argStr = daeExp(e1, context, &preExp /*BUFC*/, &varDecls /*BUFD*/)
6430+
let argStr = daeExp(e1, context, &preExp /*BUFC*/, &varDecls /*BUFD*/)
6431+
(match e1
6432+
case CALL(path=IDENT(name="abs")) then
64336433
'sqrt(<%argStr%>)'
6434-
case exp as BCONST(bool=false) then assertCommon(exp,createDAEString("Model error: Argument of sqrt should be >= 0"), context, &varDecls, dummyInfo)
6435-
case exp then
6436-
let argStr = daeExp(e1, context, &preExp /*BUFC*/, &varDecls /*BUFD*/)
6437-
let retPre = assertCommonVar(argStr,createDAEString("Model error: Argument of sqrt should be >= 0"), context, &varDecls, dummyInfo)
6434+
else
6435+
let ass = '(<%argStr%> >= 0.0)'
6436+
let retPre = assertCommonVar(ass,createDAEString("Model error: Argument of sqrt should be >= 0"), context, &varDecls, dummyInfo)
64386437
let &preExp += '<%retPre%>'
64396438
'sqrt(<%argStr%>)')
64406439

0 commit comments

Comments
 (0)