Skip to content

Commit

Permalink
Merge branch 'master' into qss
Browse files Browse the repository at this point in the history
  • Loading branch information
lochel committed May 6, 2015
2 parents 5b92c2a + b55e4ee commit 14e08b2
Show file tree
Hide file tree
Showing 32 changed files with 639 additions and 452 deletions.
105 changes: 102 additions & 3 deletions .gitignore
@@ -1,3 +1,23 @@
# Binary objects; compiler output
*.so
*.o
*.class
*.a
*.exe
*.dylib
*.la
*.log
*.stamp

# autoconf
autom4te.cache/
config.guess
config.log
config.status
config.sub
configure
install-sh

# Windows image file caches
Thumbs.db
ehthumbs.db
Expand Down Expand Up @@ -42,12 +62,91 @@ Network Trash Folder
Temporary Items
.apdisk

# ANTLR
*.tokens

# Vim buffer files
[._]*.sw?
*~

# =========================
# OpenModelica Files
# =========================

build/
.externalToolBuilders/OpenModelicaBuilder.launch
.externalToolBuilders/OMDev-MINGW-OpenModelicaBuilder.launch
.project
revision.h
SimulationRuntime/ParModelica/explicit/openclrt/*.a
SimulationRuntime/ParModelica/explicit/openclrt/*.o
tools/debugging/BreakProcess.exe
SimulationRuntime/c/Makefile
SimulationRuntime/c/util/java_interface/modelica_java.jar
SimulationRuntime/c/util/java_interface/src/org/openmodelica/corba/parser/OMCorbaDefinitionsLexer.java
SimulationRuntime/c/util/java_interface/src/org/openmodelica/corba/parser/OMCorbaDefinitionsParser.java
SimulationRuntime/c/util/java_interface/src/org/openmodelica/corba/parser/OMCorbaDefinitions.tokens
SimulationRuntime/cpp/Makefile
SimulationRuntime/cpp/Build/
SimulationRuntime/ParModelica/Makefile
SimulationRuntime/ParModelica/auto/Makefile
SimulationRuntime/ParModelica/explicit/Makefile
SimulationRuntime/ParModelica/explicit/openclrt/Makefile

Compiler/Makefile
Compiler/OpenModelicaBootstrappingHeader.h.log
Compiler/Script/Makefile
Compiler/Script/OpenModelicaScriptingAPI.mo
Compiler/Script/OpenModelicaScriptingAPIQt.cpp
Compiler/Script/OpenModelicaScriptingAPIQt.h
Compiler/Template/AbsynDumpTpl.mo
Compiler/Template/CodegenAdevs.mo
Compiler/Template/CodegenC.mo
Compiler/Template/CodegenC.mo.log
Compiler/Template/CodegenCSharp.mo
Compiler/Template/CodegenCpp.mo
Compiler/Template/CodegenCppHpcom.mo
Compiler/Template/CodegenFMU.mo
Compiler/Template/CodegenFMUCpp.mo
Compiler/Template/CodegenJS.mo
Compiler/Template/CodegenJava.mo
Compiler/Template/CodegenModelica.mo
Compiler/Template/CodegenQSS.mo
Compiler/Template/CodegenSparseFMI.mo
Compiler/Template/CodegenUtil.mo
Compiler/Template/CodegenXML.mo
Compiler/Template/DAEDumpTpl.mo
Compiler/Template/ExpressionDumpTpl.mo
Compiler/Template/GenerateAPIFunctionsTpl.mo
Compiler/Template/GraphMLDumpTpl.mo
Compiler/Template/GraphvizDump.mo
Compiler/Template/Makefile
Compiler/Template/NFInstDumpTpl.mo
Compiler/Template/SCodeDumpTpl.mo
Compiler/Template/SimCodeDump.mo
Compiler/Template/TaskSystemDump.mo
Compiler/Template/TplCodegen.mo
Compiler/Template/Unparsing.mo
Compiler/Template/VisualXMLTpl.mo
Compiler/boot/LoadCompilerInterface.mos
Compiler/boot/Makefile
Compiler/boot/Makefile.depends
Compiler/boot/Makefile.sources
Compiler/runtime/Makefile
Compiler/runtime/config.unix.h
Compiler/runtime/omc_communication.cc
Compiler/runtime/omc_communication.h
Compiler/susan_codegen/TplCodegen.mo
Makefile
Parser/Makefile
Parser/MetaModelica_Lexer.c
Parser/MetaModelica_Lexer.h
Parser/MetaModelica_Lexer_BaseModelica_Lexer.c
Parser/MetaModelica_Lexer_BaseModelica_Lexer.h
Parser/ModelicaParser.c
Parser/ModelicaParser.h
Parser/Modelica_3_Lexer.c
Parser/Modelica_3_Lexer.h
Parser/Modelica_3_Lexer_BaseModelica_Lexer.c
Parser/Modelica_3_Lexer_BaseModelica_Lexer.h
Parser/ParModelica_Lexer.c
Parser/ParModelica_Lexer.h
Parser/ParModelica_Lexer_BaseModelica_Lexer.c
Parser/ParModelica_Lexer_BaseModelica_Lexer.h
329 changes: 208 additions & 121 deletions Compiler/BackEnd/HpcOmMemory.mo

Large diffs are not rendered by default.

15 changes: 8 additions & 7 deletions Compiler/Makefile.in
Expand Up @@ -7,10 +7,11 @@
#

srcdir= .
top_builddir= ..
builddir_bin=$(top_builddir)/build/bin
builddir_lib=$(top_builddir)/build/lib/omc/
builddir_scripts=$(top_builddir)/build/share/omc/scripts
top_srcdir= @top_srcdir@
OMBUILDDIR= @OMBUILDDIR@
builddir_bin=$(OMBUILDDIR)/bin
builddir_lib=$(OMBUILDDIR)/lib/omc/
builddir_scripts=$(OMBUILDDIR)/share/omc/scripts

ANTLR_HOME = @antlrhome@
EXEEXT = @EXEEXT@
Expand Down Expand Up @@ -45,8 +46,8 @@ debug: dinstall
release: install

install_scripts:
cd scripts; cp $(SCRIPT_FILES) ../$(builddir_scripts)
cp OpenModelicaBootstrappingHeader.h $(top_builddir)/build/include/omc/c/
cd scripts; cp $(SCRIPT_FILES) $(builddir_scripts)
cp OpenModelicaBootstrappingHeader.h $(OMBUILDDIR)/include/omc/c/

install: install_scripts

Expand Down Expand Up @@ -85,4 +86,4 @@ builtin:
.PRECIOUS: Makefile

Makefile: Makefile.in
cd $(top_builddir); ./config.status
cd $(top_srcdir) && ./config.status
16 changes: 5 additions & 11 deletions Compiler/Makefile.omdev.mingw
Expand Up @@ -17,11 +17,9 @@ ifndef OMDEV
ABORT
endif

srcdir= .
top_builddir= ..
builddir_bin=$(top_builddir)/build/bin
builddir_scripts=$(top_builddir)/build/share/omc/scripts
builddir_lib=$(top_builddir)/build/lib/omc
builddir_bin=$(OMBUILDDIR)/bin
builddir_scripts=$(OMBUILDDIR)/share/omc/scripts
builddir_lib=$(OMBUILDDIR)/lib/omc

# adrpo, libsocket should be -lwsock32 but is not needed!
LIBSOCKET = -lwsock32
Expand All @@ -48,10 +46,10 @@ include Makefile.common
release: .testvariables install

install_scripts:
cd scripts; cp -puf $(SCRIPT_FILES) ../$(builddir_scripts)
cd scripts; cp -puf $(SCRIPT_FILES) $(builddir_scripts)

install: install_scripts # install_doc
cp OpenModelicaBootstrappingHeader.h $(top_builddir)/build/include/omc/
cp OpenModelicaBootstrappingHeader.h $(OMBUILDDIR)/include/omc/c/

clean:
@for d in $(SUBDIRS); do \
Expand Down Expand Up @@ -82,7 +80,3 @@ $(SUSANMO): simcode
builtin:
cp FrontEnd/ModelicaBuiltin.mo FrontEnd/MetaModelicaBuiltin.mo $(builddir_lib)

#.PRECIOUS: Makefile.omdev.mingw
#
#Makefile.omdev.mingw: Makefile.omdev.mingw.in
# $(top_builddir)/config.status Makefile.omdev.mingw
7 changes: 6 additions & 1 deletion Compiler/Script/Makefile.common
@@ -1,4 +1,4 @@
all: OpenModelicaScriptingAPI.mo OpenModelicaScriptingAPIQt.cpp OpenModelicaScriptingAPIQt.h
all: OpenModelicaScriptingAPI.mo $(OMBUILDDIR)/include/omc/scripting-API/OpenModelicaScriptingAPIQt.cpp $(OMBUILDDIR)/include/omc/scripting-API/OpenModelicaScriptingAPIQt.h

OpenModelicaScriptingAPI.mo: OpenModelicaScriptingAPI.mos ../FrontEnd/ModelicaBuiltin.mo
$(OMC) $<
Expand All @@ -8,5 +8,10 @@ OpenModelicaScriptingAPI.mo: OpenModelicaScriptingAPI.mos ../FrontEnd/ModelicaBu
OpenModelicaScriptingAPIQt.cpp: OpenModelicaScriptingAPI.mo
OpenModelicaScriptingAPIQt.h: OpenModelicaScriptingAPIQt.cpp

$(OMBUILDDIR)/include/omc/scripting-API/OpenModelicaScriptingAPIQt.cpp: OpenModelicaScriptingAPIQt.cpp
cp "$<" "$@"
$(OMBUILDDIR)/include/omc/scripting-API/OpenModelicaScriptingAPIQt.h: OpenModelicaScriptingAPIQt.h
cp "$<" "$@"

clean:
rm -f OpenModelicaScriptingAPIQt.cpp OpenModelicaScriptingAPIQt.h OpenModelicaScriptingAPI.mo
4 changes: 4 additions & 0 deletions Compiler/Script/Makefile.in
@@ -1,7 +1,11 @@
OMC_PATH=@OMC@
OMC=$(OMC_PATH) +d=failtrace
OMBUILDDIR=@OMBUILDDIR@

include Makefile.common

maybe-run:
test ! -f $(OMC_PATH) || $(MAKE)

Makefile: Makefile.in
(cd @top_builddir@ && ./config.status)
2 changes: 1 addition & 1 deletion Compiler/Script/Makefile.omdev.mingw
@@ -1,3 +1,3 @@
OMC=OPENMODELICAHOME=`pwd`/../../build/ ../../build/bin/omc +d=failtrace
OMC=OPENMODELICAHOME=$(OMBUILDDIR) $(OMBUILDDIR)/bin/omc +d=failtrace

include Makefile.common
8 changes: 7 additions & 1 deletion Compiler/SimCode/HpcOmSimCodeMain.mo
Expand Up @@ -181,6 +181,7 @@ algorithm
Option<SimCode.FmiModelStructure> modelStruct;
list<SimCodeVar.SimVar> mixedArrayVars;
HpcOmSimCode.HpcOmData hpcomData;
Option<HashTableCrIListArray.HashTable> optVarToArrayIndexMapping;
HashTableCrIListArray.HashTable varToArrayIndexMapping;

case (BackendDAE.DAE(eqs=eqs), _, _, _, _,_, _, _, _, _, _, _, _) equation
Expand Down Expand Up @@ -367,7 +368,12 @@ algorithm

//Create Memory-Map and Sim-Code
//------------------------------
optTmpMemoryMap = HpcOmMemory.createMemoryMap(modelInfo, taskGraphOdeSimplified, BackendDAEUtil.transposeMatrix(taskGraphOdeSimplified,arrayLength(taskGraphOdeSimplified)), taskGraphDataOdeSimplified, eqs, filenamePrefix, schedulerInfo, scheduleOde, sccSimEqMapping, criticalPaths, criticalPathsWoC, criticalPathInfo, numProc, allComps);
(optTmpMemoryMap,optVarToArrayIndexMapping) = HpcOmMemory.createMemoryMap(modelInfo, taskGraphOdeSimplified, BackendDAEUtil.transposeMatrix(taskGraphOdeSimplified,arrayLength(taskGraphOdeSimplified)), taskGraphDataOdeSimplified, eqs, filenamePrefix, schedulerInfo, scheduleOde, sccSimEqMapping, criticalPaths, criticalPathsWoC, criticalPathInfo, numProc, allComps);
if(Util.isSome(optVarToArrayIndexMapping)) then
SOME(varToArrayIndexMapping) = optVarToArrayIndexMapping;
BaseHashTable.dumpHashTable(varToArrayIndexMapping);
end if;

SimCodeUtil.execStat("hpcom create memory map");

hpcomData = HpcOmSimCode.HPCOMDATA(SOME(scheduleDae), SOME(scheduleOde), optTmpMemoryMap);
Expand Down
46 changes: 24 additions & 22 deletions Compiler/SimCode/SimCodeUtil.mo
Expand Up @@ -12543,32 +12543,32 @@ algorithm
equation
varArrayIndexMappingHashTable = HashTableCrIListArray.emptyHashTable();
varIndexMappingHashTable = HashTableCrILst.emptyHashTable();
currentVarIndices = (1,1,1); //the zero-element is reserved for removed array variables
((currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable)) = List.fold(stateVars, function createVarToArrayIndexMapping1(iVarType=1), (currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable));
((currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable)) = List.fold(derivativeVars, function createVarToArrayIndexMapping1(iVarType=1), (currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable));
((currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable)) = List.fold(algVars, function createVarToArrayIndexMapping1(iVarType=1), (currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable));
((currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable)) = List.fold(discreteAlgVars, function createVarToArrayIndexMapping1(iVarType=1), (currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable));
((currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable)) = List.fold(intAlgVars, function createVarToArrayIndexMapping1(iVarType=2), (currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable));
((currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable)) = List.fold(boolAlgVars, function createVarToArrayIndexMapping1(iVarType=3), (currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable));
((currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable)) = List.fold(paramVars, function createVarToArrayIndexMapping1(iVarType=1), (currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable));
((currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable)) = List.fold(intParamVars, function createVarToArrayIndexMapping1(iVarType=2), (currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable));
((currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable)) = List.fold(boolParamVars, function createVarToArrayIndexMapping1(iVarType=3), (currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable));
((currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable)) = List.fold(inputVars, function createVarToArrayIndexMapping1(iVarType=1), (currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable));
((currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable)) = List.fold(outputVars, function createVarToArrayIndexMapping1(iVarType=1), (currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable));
((currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable)) = List.fold(constVars, function createVarToArrayIndexMapping1(iVarType=1), (currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable));
((currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable)) = List.fold(realOptimizeConstraintsVars, function createVarToArrayIndexMapping1(iVarType=1), (currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable));
((currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable)) = List.fold(realOptimizeFinalConstraintsVars, function createVarToArrayIndexMapping1(iVarType=1), (currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable));

((currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable)) = List.fold(aliasVars, function createVarToArrayIndexMapping1(iVarType=1), (currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable));
((currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable)) = List.fold(intAliasVars, function createVarToArrayIndexMapping1(iVarType=2), (currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable));
((currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable)) = List.fold(boolAliasVars, function createVarToArrayIndexMapping1(iVarType=3), (currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable));
currentVarIndices = (0,0,0);
((currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable)) = List.fold(stateVars, function addVarToArrayIndexMapping(iVarType=1), (currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable));
((currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable)) = List.fold(derivativeVars, function addVarToArrayIndexMapping(iVarType=1), (currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable));
((currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable)) = List.fold(algVars, function addVarToArrayIndexMapping(iVarType=1), (currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable));
((currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable)) = List.fold(discreteAlgVars, function addVarToArrayIndexMapping(iVarType=1), (currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable));
((currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable)) = List.fold(intAlgVars, function addVarToArrayIndexMapping(iVarType=2), (currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable));
((currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable)) = List.fold(boolAlgVars, function addVarToArrayIndexMapping(iVarType=3), (currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable));
((currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable)) = List.fold(paramVars, function addVarToArrayIndexMapping(iVarType=1), (currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable));
((currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable)) = List.fold(intParamVars, function addVarToArrayIndexMapping(iVarType=2), (currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable));
((currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable)) = List.fold(boolParamVars, function addVarToArrayIndexMapping(iVarType=3), (currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable));
((currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable)) = List.fold(inputVars, function addVarToArrayIndexMapping(iVarType=1), (currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable));
((currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable)) = List.fold(outputVars, function addVarToArrayIndexMapping(iVarType=1), (currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable));
((currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable)) = List.fold(constVars, function addVarToArrayIndexMapping(iVarType=1), (currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable));
((currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable)) = List.fold(realOptimizeConstraintsVars, function addVarToArrayIndexMapping(iVarType=1), (currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable));
((currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable)) = List.fold(realOptimizeFinalConstraintsVars, function addVarToArrayIndexMapping(iVarType=1), (currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable));

((currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable)) = List.fold(aliasVars, function addVarToArrayIndexMapping(iVarType=1), (currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable));
((currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable)) = List.fold(intAliasVars, function addVarToArrayIndexMapping(iVarType=2), (currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable));
((currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable)) = List.fold(boolAliasVars, function addVarToArrayIndexMapping(iVarType=3), (currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable));
then varArrayIndexMappingHashTable;
else
then HashTableCrIListArray.emptyHashTable();
end match;
end createVarToArrayIndexMapping;

protected function createVarToArrayIndexMapping1 "author: marcusw
public function addVarToArrayIndexMapping "author: marcusw
Adds the given variable to the array-mapping and to the var-mapping."
input SimCodeVar.SimVar iVar;
input Integer iVarType; //1 = real ; 2 = int ; 3 = bool
Expand Down Expand Up @@ -12623,10 +12623,10 @@ algorithm
then ((tmpCurrentVarIndices, tmpVarToArrayIndexMapping, tmpVarToIndexMapping));
else
equation
Error.addMessage(Error.INTERNAL_ERROR, {"Unknown case for createVarToArrayIndexMapping1.\n"});
Error.addMessage(Error.INTERNAL_ERROR, {"Unknown case for addVarToArrayIndexMapping.\n"});
then iCurrentVarIndicesHashTable;
end match;
end createVarToArrayIndexMapping1;
end addVarToArrayIndexMapping;

protected function checkIfSubscriptsContainsUnhandlableIndices "author: marcusw
Returns false if at least one subscript can not be handled as constant index."
Expand Down Expand Up @@ -12665,6 +12665,7 @@ algorithm
equation
if(BaseHashTable.hasKey(varName, iVarToIndexMapping)) then
varIdx::_ = BaseHashTable.get(varName, iVarToIndexMapping);
//print("Negated alias to variable " + intString(varIdx) + " given\n");
varIdx = intMul(varIdx,-1);
else
Error.addMessage(Error.INTERNAL_ERROR, {"Negated alias to unknown variable given."});
Expand All @@ -12674,6 +12675,7 @@ algorithm
equation
if(BaseHashTable.hasKey(varName, iVarToIndexMapping)) then
varIdx::_ = BaseHashTable.get(varName, iVarToIndexMapping);
//print("Alias to variable " + intString(varIdx) + " given\n");
else
Error.addMessage(Error.INTERNAL_ERROR, {"Alias to unknown variable given."});
end if;
Expand Down
25 changes: 0 additions & 25 deletions Compiler/Template/CodegenCppHpcom.tpl
Expand Up @@ -1310,33 +1310,8 @@ template equationNamesHPCOM_(Integer idx, list<SimEqSystem> allEquationsPlusWhen
end equationNamesHPCOM_;

template equationHPCOM_(SimEqSystem eq, Integer idx, Context context, Text &varDecls, SimCode simCode, Text& extraFuncs, Text& extraFuncsDecl, Text extraFuncsNamespace, Boolean useFlatArrayNotation)
"Generates an equation.
This template should not be used for a SES_RESIDUAL.
Residual equations are handled differently."
::=
equation_function_call(eq, context, &varDecls /*BUFC*/, simCode, extraFuncs, extraFuncsDecl, extraFuncsNamespace, "evaluate")
/* match eq
case e as SES_SIMPLE_ASSIGN(__) then
let &varDeclsLocal = buffer "" BUFL
let eqText = equation_(eq,context,&varDeclsLocal,simCode, extraFuncs, extraFuncsDecl, extraFuncsNamespace, useFlatArrayNotation)
<<
<%varDeclsLocal%>
<%eqText%>
>>
case e as SES_ALGORITHM(__)
then 'evaluate_<%idx%>();'
case e as SES_WHEN(__)
then 'evaluate_<%idx%>();'
case e as SES_ARRAY_CALL_ASSIGN(__)
then 'evaluate_<%idx%>();'
case e as SES_LINEAR(__)
case e as SES_NONLINEAR(__)
then 'evaluate_<%idx%>();'
case e as SES_MIXED(__)
then 'evaluate_<%idx%>();'
else
"NOT IMPLEMENTED EQUATION"
*/
end equationHPCOM_;

template function_HPCOM_joinThread(String threadIdx, String iType)
Expand Down

0 comments on commit 14e08b2

Please sign in to comment.