#ifdef OMC_BASE_FILE
#define OMC_FILE OMC_BASE_FILE
#else
#define OMC_FILE "/home/mahge/dev/OpenModelica/OMCompiler/Compiler/boot/build/tmp/Ceval.c"
#endif
#include "omc_simulation_settings.h"
#include "Ceval.h"
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT0,1,1) {MMC_IMMEDIATE(MMC_TAGFIXNUM(100000))}};
#define _OMC_LIT0 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT0)
#define _OMC_LIT1_data ""
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT1,0,_OMC_LIT1_data);
#define _OMC_LIT1 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT1)
static const MMC_DEFREALLIT(_OMC_LIT_STRUCT2,0.0);
#define _OMC_LIT2 MMC_REFREALLIT(_OMC_LIT_STRUCT2)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT3,8,3) {&SourceInfo_SOURCEINFO__desc,_OMC_LIT1,MMC_IMMEDIATE(MMC_TAGFIXNUM(0)),MMC_IMMEDIATE(MMC_TAGFIXNUM(0)),MMC_IMMEDIATE(MMC_TAGFIXNUM(0)),MMC_IMMEDIATE(MMC_TAGFIXNUM(0)),MMC_IMMEDIATE(MMC_TAGFIXNUM(0)),_OMC_LIT2}};
#define _OMC_LIT3 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT3)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT4,2,3) {&Values_Value_INTEGER__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(2))}};
#define _OMC_LIT4 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT4)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT5,1,3) {&Absyn_Subscript_NOSUB__desc,}};
#define _OMC_LIT5 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT5)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT6,1,3) {&Absyn_EqMod_NOMOD__desc,}};
#define _OMC_LIT6 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT6)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT7,1,3) {&DAE_Prefix_NOPRE__desc,}};
#define _OMC_LIT7 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT7)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT8,1,20) {&Absyn_Exp_END__desc,}};
#define _OMC_LIT8 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT8)
#define _OMC_LIT9_data "Eval"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT9,4,_OMC_LIT9_data);
#define _OMC_LIT9 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT9)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT10,1,5) {&AvlSetCR_Tree_EMPTY__desc,}};
#define _OMC_LIT10 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT10)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT11,2,0) {_OMC_LIT10,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT11 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT11)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT12,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT1}};
#define _OMC_LIT12 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT12)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT13,2,3) {&Absyn_Msg_MSG__desc,_OMC_LIT3}};
#define _OMC_LIT13 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT13)
#define _OMC_LIT14_data "array"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT14,5,_OMC_LIT14_data);
#define _OMC_LIT14 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT14)
#define _OMC_LIT15_data "list"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT15,4,_OMC_LIT15_data);
#define _OMC_LIT15 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT15)
#define _OMC_LIT16_data "listReverse"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT16,11,_OMC_LIT16_data);
#define _OMC_LIT16 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT16)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT17,1,3) {&DAE_BindingSource_BINDING__FROM__DEFAULT__VALUE__desc,}};
#define _OMC_LIT17 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT17)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT18,1,3) {&SCode_Variability_VAR__desc,}};
#define _OMC_LIT18 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT18)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT19,1,3) {&DAE_Const_C__CONST__desc,}};
#define _OMC_LIT19 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT19)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT20,1,1) {_OMC_LIT19}};
#define _OMC_LIT20 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT20)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT21,2,1) {MMC_IMMEDIATE(MMC_TAGFIXNUM(2)),MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT21 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT21)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT22,1,3) {&DAE_Subscript_WHOLEDIM__desc,}};
#define _OMC_LIT22 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT22)
#define _OMC_LIT23_data "ceval"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT23,5,_OMC_LIT23_data);
#define _OMC_LIT23 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT23)
#define _OMC_LIT24_data "Prints extra information from Ceval."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT24,36,_OMC_LIT24_data);
#define _OMC_LIT24 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT24)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT25,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT24}};
#define _OMC_LIT25 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT25)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT26,5,3) {&Flags_DebugFlag_DEBUG__FLAG__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(2)),_OMC_LIT23,MMC_IMMEDIATE(MMC_TAGFIXNUM(0)),_OMC_LIT25}};
#define _OMC_LIT26 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT26)
#define _OMC_LIT27_data "#- Ceval.cevalCrefBinding: Ignoring unbound when implicit\n"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT27,58,_OMC_LIT27_data);
#define _OMC_LIT27 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT27)
#define _OMC_LIT28_data "#- Ceval.cevalCrefBinding failed (nonconstant EQBOUND("
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT28,54,_OMC_LIT28_data);
#define _OMC_LIT28 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT28)
#define _OMC_LIT29_data "))"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT29,2,_OMC_LIT29_data);
#define _OMC_LIT29 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT29)
#define _OMC_LIT30_data "- Ceval.cevalCrefBinding: "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT30,26,_OMC_LIT30_data);
#define _OMC_LIT30 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT30)
#define _OMC_LIT31_data " = ["
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT31,4,_OMC_LIT31_data);
#define _OMC_LIT31 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT31)
#define _OMC_LIT32_data "] in env:"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT32,9,_OMC_LIT32_data);
#define _OMC_LIT32 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT32)
#define _OMC_LIT33_data " failed"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT33,7,_OMC_LIT33_data);
#define _OMC_LIT33 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT33)
#define _OMC_LIT34_data "- Ceval.cevalCref on: "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT34,22,_OMC_LIT34_data);
#define _OMC_LIT34 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT34)
#define _OMC_LIT35_data " failed with no constant binding in scope: "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT35,43,_OMC_LIT35_data);
#define _OMC_LIT35 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT35)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT36,1,5) {&ErrorTypes_MessageType_TRANSLATION__desc,}};
#define _OMC_LIT36 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT36)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT37,1,4) {&ErrorTypes_Severity_ERROR__desc,}};
#define _OMC_LIT37 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT37)
#define _OMC_LIT38_data "Variable %s not found in scope %s."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT38,34,_OMC_LIT38_data);
#define _OMC_LIT38 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT38)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT39,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT38}};
#define _OMC_LIT39 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT39)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT40,5,3) {&ErrorTypes_Message_MESSAGE__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(5)),_OMC_LIT36,_OMC_LIT37,_OMC_LIT39}};
#define _OMC_LIT40 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT40)
#define _OMC_LIT41_data "failtrace"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT41,9,_OMC_LIT41_data);
#define _OMC_LIT41 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT41)
#define _OMC_LIT42_data "Sets whether to print a failtrace or not."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT42,41,_OMC_LIT42_data);
#define _OMC_LIT42 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT42)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT43,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT42}};
#define _OMC_LIT43 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT43)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT44,5,3) {&Flags_DebugFlag_DEBUG__FLAG__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(1)),_OMC_LIT41,MMC_IMMEDIATE(MMC_TAGFIXNUM(0)),_OMC_LIT43}};
#define _OMC_LIT44 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT44)
#define _OMC_LIT45_data "- Ceval.cevalRelation failed on: "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT45,33,_OMC_LIT45_data);
#define _OMC_LIT45 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT45)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT46,1,18) {&Values_Value_META__FAIL__desc,}};
#define _OMC_LIT46 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT46)
#define _OMC_LIT47_data "cross"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT47,5,_OMC_LIT47_data);
#define _OMC_LIT47 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT47)
#define _OMC_LIT48_data "Could not evaluate expression: %s"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT48,33,_OMC_LIT48_data);
#define _OMC_LIT48 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT48)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT49,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT48}};
#define _OMC_LIT49 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT49)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT50,5,3) {&ErrorTypes_Message_MESSAGE__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(522)),_OMC_LIT36,_OMC_LIT37,_OMC_LIT49}};
#define _OMC_LIT50 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT50)
#define _OMC_LIT51_data "%s"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT51,2,_OMC_LIT51_data);
#define _OMC_LIT51 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT51)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT52,2,4) {&Gettext_TranslatableContent_notrans__desc,_OMC_LIT51}};
#define _OMC_LIT52 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT52)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT53,5,3) {&ErrorTypes_Message_MESSAGE__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(5999)),_OMC_LIT36,_OMC_LIT37,_OMC_LIT52}};
#define _OMC_LIT53 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT53)
#define _OMC_LIT54_data "Could not evaluate diagonal. Ceval.cevalBuiltinDiagonal failed."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT54,63,_OMC_LIT54_data);
#define _OMC_LIT54 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT54)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT55,2,1) {_OMC_LIT54,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT55 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT55)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT56,2,6) {&Values_Value_BOOL__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(1))}};
#define _OMC_LIT56 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT56)
#define _OMC_LIT57_data "Second argument in rem is zero in rem(%s,%s)."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT57,45,_OMC_LIT57_data);
#define _OMC_LIT57 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT57)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT58,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT57}};
#define _OMC_LIT58 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT58)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT59,5,3) {&ErrorTypes_Message_MESSAGE__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(17)),_OMC_LIT36,_OMC_LIT37,_OMC_LIT58}};
#define _OMC_LIT59 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT59)
#define _OMC_LIT60_data "- Ceval.cevalBuiltinMin2 failed: min("
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT60,37,_OMC_LIT60_data);
#define _OMC_LIT60 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT60)
#define _OMC_LIT61_data ", "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT61,2,_OMC_LIT61_data);
#define _OMC_LIT61 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT61)
#define _OMC_LIT62_data ")"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT62,1,_OMC_LIT62_data);
#define _OMC_LIT62 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT62)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT63,2,4) {&Values_Value_REAL__desc,_OMC_LIT2}};
#define _OMC_LIT63 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT63)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT64,2,3) {&Values_Value_INTEGER__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(0))}};
#define _OMC_LIT64 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT64)
#define _OMC_LIT65_data "Modulo by zero in mod(%s,%s)."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT65,29,_OMC_LIT65_data);
#define _OMC_LIT65 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT65)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT66,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT65}};
#define _OMC_LIT66 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT66)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT67,5,3) {&ErrorTypes_Message_MESSAGE__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(16)),_OMC_LIT36,_OMC_LIT37,_OMC_LIT66}};
#define _OMC_LIT67 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT67)
#define _OMC_LIT68_data "cevalBuiltinDiv got Integer and Real (type error)\n"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT68,50,_OMC_LIT68_data);
#define _OMC_LIT68 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT68)
#define _OMC_LIT69_data "/home/mahge/dev/OpenModelica/OMCompiler/Compiler/FrontEnd/Ceval.mo"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT69,66,_OMC_LIT69_data);
#define _OMC_LIT69 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT69)
static const MMC_DEFREALLIT(_OMC_LIT_STRUCT70_6,1602262265.0);
#define _OMC_LIT70_6 MMC_REFREALLIT(_OMC_LIT_STRUCT70_6)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT70,8,3) {&SourceInfo_SOURCEINFO__desc,_OMC_LIT69,MMC_IMMEDIATE(MMC_TAGFIXNUM(0)),MMC_IMMEDIATE(MMC_TAGFIXNUM(3233)),MMC_IMMEDIATE(MMC_TAGFIXNUM(9)),MMC_IMMEDIATE(MMC_TAGFIXNUM(3233)),MMC_IMMEDIATE(MMC_TAGFIXNUM(100)),_OMC_LIT70_6}};
#define _OMC_LIT70 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT70)
#define _OMC_LIT71_data "cevalBuiltinDiv got Real and Integer (type error)\n"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT71,50,_OMC_LIT71_data);
#define _OMC_LIT71 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT71)
static const MMC_DEFREALLIT(_OMC_LIT_STRUCT72_6,1602262265.0);
#define _OMC_LIT72_6 MMC_REFREALLIT(_OMC_LIT_STRUCT72_6)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT72,8,3) {&SourceInfo_SOURCEINFO__desc,_OMC_LIT69,MMC_IMMEDIATE(MMC_TAGFIXNUM(0)),MMC_IMMEDIATE(MMC_TAGFIXNUM(3243)),MMC_IMMEDIATE(MMC_TAGFIXNUM(9)),MMC_IMMEDIATE(MMC_TAGFIXNUM(3243)),MMC_IMMEDIATE(MMC_TAGFIXNUM(100)),_OMC_LIT72_6}};
#define _OMC_LIT72 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT72)
#define _OMC_LIT73_data "Division by zero in %s / %s"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT73,27,_OMC_LIT73_data);
#define _OMC_LIT73 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT73)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT74,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT73}};
#define _OMC_LIT74 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT74)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT75,5,3) {&ErrorTypes_Message_MESSAGE__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(15)),_OMC_LIT36,_OMC_LIT37,_OMC_LIT74}};
#define _OMC_LIT75 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT75)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT76,1,4) {&Absyn_Msg_NO__MSG__desc,}};
#define _OMC_LIT76 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT76)
#define _OMC_LIT77_data "Negative value as argument to sqrt."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT77,35,_OMC_LIT77_data);
#define _OMC_LIT77 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT77)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT78,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT77}};
#define _OMC_LIT78 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT78)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT79,5,3) {&ErrorTypes_Message_MESSAGE__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(25)),_OMC_LIT36,_OMC_LIT37,_OMC_LIT78}};
#define _OMC_LIT79 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT79)
#define _OMC_LIT80_data "ModelicaBuiltin.mo"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT80,18,_OMC_LIT80_data);
#define _OMC_LIT80 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT80)
#define _OMC_LIT81_data "MetaModelicaBuiltin.mo"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT81,22,_OMC_LIT81_data);
#define _OMC_LIT81 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT81)
#define _OMC_LIT82_data "."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT82,1,_OMC_LIT82_data);
#define _OMC_LIT82 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT82)
#define _OMC_LIT83_data "<interactive>"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT83,13,_OMC_LIT83_data);
#define _OMC_LIT83 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT83)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT84,1,16) {&Values_Value_NORETCALL__desc,}};
#define _OMC_LIT84 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT84)
#define _OMC_LIT85_data "true"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT85,4,_OMC_LIT85_data);
#define _OMC_LIT85 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT85)
#define _OMC_LIT86_data "false"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT86,5,_OMC_LIT86_data);
#define _OMC_LIT86 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT86)
#define _OMC_LIT87_data "%"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT87,1,_OMC_LIT87_data);
#define _OMC_LIT87 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT87)
#define _OMC_LIT88_data "-"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT88,1,_OMC_LIT88_data);
#define _OMC_LIT88 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT88)
#define _OMC_LIT89_data "g"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT89,1,_OMC_LIT89_data);
#define _OMC_LIT89 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT89)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT90,2,1) {MMC_IMMEDIATE(MMC_TAGFIXNUM(1)),MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT90 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT90)
#define _OMC_LIT91_data "- Ceval.cevalBuiltinPromote2 failed\n"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT91,36,_OMC_LIT91_data);
#define _OMC_LIT91 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT91)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT92,2,3) {&Values_Value_INTEGER__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(1))}};
#define _OMC_LIT92 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT92)
#define _OMC_LIT93_data "- Ceval.cevalBuiltinSize2 failed\n"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT93,33,_OMC_LIT93_data);
#define _OMC_LIT93 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT93)
#define _OMC_LIT94_data "Variable %s has no value."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT94,25,_OMC_LIT94_data);
#define _OMC_LIT94 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT94)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT95,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT94}};
#define _OMC_LIT95 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT95)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT96,5,3) {&ErrorTypes_Message_MESSAGE__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(24)),_OMC_LIT36,_OMC_LIT37,_OMC_LIT95}};
#define _OMC_LIT96 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT96)
#define _OMC_LIT97_data "size("
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT97,5,_OMC_LIT97_data);
#define _OMC_LIT97 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT97)
#define _OMC_LIT98_data "Dimensions must be parameter or constant expression (in %s)."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT98,60,_OMC_LIT98_data);
#define _OMC_LIT98 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT98)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT99,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT98}};
#define _OMC_LIT99 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT99)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT100,5,3) {&ErrorTypes_Message_MESSAGE__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(23)),_OMC_LIT36,_OMC_LIT37,_OMC_LIT99}};
#define _OMC_LIT100 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT100)
#define _OMC_LIT101_data "#-- Ceval.cevalBuiltinSize failed: "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT101,35,_OMC_LIT101_data);
#define _OMC_LIT101 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT101)
#define _OMC_LIT102_data "\n"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT102,1,_OMC_LIT102_data);
#define _OMC_LIT102 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT102)
#define _OMC_LIT103_data "NoFile"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT103,6,_OMC_LIT103_data);
#define _OMC_LIT103 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT103)
#define _OMC_LIT104_data "RegularFile"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT104,11,_OMC_LIT104_data);
#define _OMC_LIT104 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT104)
#define _OMC_LIT105_data "Directory"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT105,9,_OMC_LIT105_data);
#define _OMC_LIT105 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT105)
#define _OMC_LIT106_data "SpecialFile"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT106,11,_OMC_LIT106_data);
#define _OMC_LIT106 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT106)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT107,2,1) {_OMC_LIT106,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT107 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT107)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT108,2,1) {_OMC_LIT105,_OMC_LIT107}};
#define _OMC_LIT108 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT108)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT109,2,1) {_OMC_LIT104,_OMC_LIT108}};
#define _OMC_LIT109 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT109)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT110,2,1) {_OMC_LIT103,_OMC_LIT109}};
#define _OMC_LIT110 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT110)
#define _OMC_LIT111_data "OpenModelica"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT111,12,_OMC_LIT111_data);
#define _OMC_LIT111 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT111)
#define _OMC_LIT112_data "Scripting"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT112,9,_OMC_LIT112_data);
#define _OMC_LIT112 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT112)
#define _OMC_LIT113_data "Internal"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT113,8,_OMC_LIT113_data);
#define _OMC_LIT113 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT113)
#define _OMC_LIT114_data "FileType"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT114,8,_OMC_LIT114_data);
#define _OMC_LIT114 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT114)
#define _OMC_LIT115_data "Modelica"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT115,8,_OMC_LIT115_data);
#define _OMC_LIT115 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT115)
#define _OMC_LIT116_data "Utilities"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT116,9,_OMC_LIT116_data);
#define _OMC_LIT116 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT116)
#define _OMC_LIT117_data "Types"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT117,5,_OMC_LIT117_data);
#define _OMC_LIT117 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT117)
#define _OMC_LIT118_data "Compare"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT118,7,_OMC_LIT118_data);
#define _OMC_LIT118 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT118)
#define _OMC_LIT119_data "Less"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT119,4,_OMC_LIT119_data);
#define _OMC_LIT119 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT119)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT120,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT119}};
#define _OMC_LIT120 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT120)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT121,3,3) {&Absyn_Path_QUALIFIED__desc,_OMC_LIT118,_OMC_LIT120}};
#define _OMC_LIT121 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT121)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT122,3,3) {&Absyn_Path_QUALIFIED__desc,_OMC_LIT117,_OMC_LIT121}};
#define _OMC_LIT122 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT122)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT123,3,3) {&Absyn_Path_QUALIFIED__desc,_OMC_LIT116,_OMC_LIT122}};
#define _OMC_LIT123 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT123)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT124,3,3) {&Absyn_Path_QUALIFIED__desc,_OMC_LIT115,_OMC_LIT123}};
#define _OMC_LIT124 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT124)
#define _OMC_LIT125_data "Equal"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT125,5,_OMC_LIT125_data);
#define _OMC_LIT125 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT125)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT126,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT125}};
#define _OMC_LIT126 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT126)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT127,3,3) {&Absyn_Path_QUALIFIED__desc,_OMC_LIT118,_OMC_LIT126}};
#define _OMC_LIT127 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT127)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT128,3,3) {&Absyn_Path_QUALIFIED__desc,_OMC_LIT117,_OMC_LIT127}};
#define _OMC_LIT128 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT128)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT129,3,3) {&Absyn_Path_QUALIFIED__desc,_OMC_LIT116,_OMC_LIT128}};
#define _OMC_LIT129 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT129)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT130,3,3) {&Absyn_Path_QUALIFIED__desc,_OMC_LIT115,_OMC_LIT129}};
#define _OMC_LIT130 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT130)
#define _OMC_LIT131_data "Greater"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT131,7,_OMC_LIT131_data);
#define _OMC_LIT131 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT131)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT132,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT131}};
#define _OMC_LIT132 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT132)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT133,3,3) {&Absyn_Path_QUALIFIED__desc,_OMC_LIT118,_OMC_LIT132}};
#define _OMC_LIT133 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT133)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT134,3,3) {&Absyn_Path_QUALIFIED__desc,_OMC_LIT117,_OMC_LIT133}};
#define _OMC_LIT134 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT134)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT135,3,3) {&Absyn_Path_QUALIFIED__desc,_OMC_LIT116,_OMC_LIT134}};
#define _OMC_LIT135 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT135)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT136,3,3) {&Absyn_Path_QUALIFIED__desc,_OMC_LIT115,_OMC_LIT135}};
#define _OMC_LIT136 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT136)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT137,2,1) {_OMC_LIT136,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT137 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT137)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT138,2,1) {_OMC_LIT130,_OMC_LIT137}};
#define _OMC_LIT138 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT138)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT139,2,1) {_OMC_LIT124,_OMC_LIT138}};
#define _OMC_LIT139 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT139)
#define _OMC_LIT140_data "acos"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT140,4,_OMC_LIT140_data);
#define _OMC_LIT140 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT140)
#define _OMC_LIT141_data "asin"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT141,4,_OMC_LIT141_data);
#define _OMC_LIT141 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT141)
#define _OMC_LIT142_data "atan"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT142,4,_OMC_LIT142_data);
#define _OMC_LIT142 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT142)
#define _OMC_LIT143_data "atan2"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT143,5,_OMC_LIT143_data);
#define _OMC_LIT143 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT143)
#define _OMC_LIT144_data "cos"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT144,3,_OMC_LIT144_data);
#define _OMC_LIT144 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT144)
#define _OMC_LIT145_data "cosh"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT145,4,_OMC_LIT145_data);
#define _OMC_LIT145 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT145)
#define _OMC_LIT146_data "exp"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT146,3,_OMC_LIT146_data);
#define _OMC_LIT146 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT146)
#define _OMC_LIT147_data "log"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT147,3,_OMC_LIT147_data);
#define _OMC_LIT147 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT147)
#define _OMC_LIT148_data "log10"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT148,5,_OMC_LIT148_data);
#define _OMC_LIT148 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT148)
#define _OMC_LIT149_data "sin"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT149,3,_OMC_LIT149_data);
#define _OMC_LIT149 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT149)
#define _OMC_LIT150_data "sinh"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT150,4,_OMC_LIT150_data);
#define _OMC_LIT150 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT150)
#define _OMC_LIT151_data "tan"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT151,3,_OMC_LIT151_data);
#define _OMC_LIT151 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT151)
#define _OMC_LIT152_data "tanh"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT152,4,_OMC_LIT152_data);
#define _OMC_LIT152 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT152)
#define _OMC_LIT153_data "ModelicaStrings_substring"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT153,25,_OMC_LIT153_data);
#define _OMC_LIT153 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT153)
#define _OMC_LIT154_data "ModelicaStrings_length"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT154,22,_OMC_LIT154_data);
#define _OMC_LIT154 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT154)
#define _OMC_LIT155_data "print"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT155,5,_OMC_LIT155_data);
#define _OMC_LIT155 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT155)
#define _OMC_LIT156_data "ModelicaStreams_closeFile"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT156,25,_OMC_LIT156_data);
#define _OMC_LIT156 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT156)
#define _OMC_LIT157_data "ModelicaInternal_print"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT157,22,_OMC_LIT157_data);
#define _OMC_LIT157 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT157)
#define _OMC_LIT158_data "ModelicaInternal_countLines"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT158,27,_OMC_LIT158_data);
#define _OMC_LIT158 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT158)
#define _OMC_LIT159_data "ModelicaInternal_readLine"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT159,25,_OMC_LIT159_data);
#define _OMC_LIT159 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT159)
#define _OMC_LIT160_data "ModelicaInternal_fullPathName"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT160,29,_OMC_LIT160_data);
#define _OMC_LIT160 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT160)
#define _OMC_LIT161_data "ModelicaInternal_stat"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT161,21,_OMC_LIT161_data);
#define _OMC_LIT161 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT161)
#define _OMC_LIT162_data "ModelicaStrings_compare"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT162,23,_OMC_LIT162_data);
#define _OMC_LIT162 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT162)
#define _OMC_LIT163_data "ModelicaStrings_scanReal"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT163,24,_OMC_LIT163_data);
#define _OMC_LIT163 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT163)
#define _OMC_LIT164_data "ModelicaStrings_skipWhiteSpace"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT164,30,_OMC_LIT164_data);
#define _OMC_LIT164 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT164)
#define _OMC_LIT165_data "OpenModelica_regex"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT165,18,_OMC_LIT165_data);
#define _OMC_LIT165 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT165)
#define _OMC_LIT166_data "ModelicaError"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT166,13,_OMC_LIT166_data);
#define _OMC_LIT166 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT166)
#define _OMC_LIT167_data "No cevalBuiltinHandler found for "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT167,33,_OMC_LIT167_data);
#define _OMC_LIT167 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT167)
#define _OMC_LIT168_data "floor"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT168,5,_OMC_LIT168_data);
#define _OMC_LIT168 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT168)
#define _OMC_LIT169_data "ceil"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT169,4,_OMC_LIT169_data);
#define _OMC_LIT169 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT169)
#define _OMC_LIT170_data "abs"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT170,3,_OMC_LIT170_data);
#define _OMC_LIT170 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT170)
#define _OMC_LIT171_data "sqrt"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT171,4,_OMC_LIT171_data);
#define _OMC_LIT171 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT171)
#define _OMC_LIT172_data "div"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT172,3,_OMC_LIT172_data);
#define _OMC_LIT172 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT172)
#define _OMC_LIT173_data "integer"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT173,7,_OMC_LIT173_data);
#define _OMC_LIT173 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT173)
#define _OMC_LIT174_data "boolean"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT174,7,_OMC_LIT174_data);
#define _OMC_LIT174 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT174)
#define _OMC_LIT175_data "mod"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT175,3,_OMC_LIT175_data);
#define _OMC_LIT175 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT175)
#define _OMC_LIT176_data "max"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT176,3,_OMC_LIT176_data);
#define _OMC_LIT176 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT176)
#define _OMC_LIT177_data "min"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT177,3,_OMC_LIT177_data);
#define _OMC_LIT177 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT177)
#define _OMC_LIT178_data "rem"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT178,3,_OMC_LIT178_data);
#define _OMC_LIT178 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT178)
#define _OMC_LIT179_data "sum"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT179,3,_OMC_LIT179_data);
#define _OMC_LIT179 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT179)
#define _OMC_LIT180_data "diagonal"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT180,8,_OMC_LIT180_data);
#define _OMC_LIT180 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT180)
#define _OMC_LIT181_data "sign"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT181,4,_OMC_LIT181_data);
#define _OMC_LIT181 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT181)
#define _OMC_LIT182_data "noEvent"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT182,7,_OMC_LIT182_data);
#define _OMC_LIT182 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT182)
#define _OMC_LIT183_data "cat"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT183,3,_OMC_LIT183_data);
#define _OMC_LIT183 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT183)
#define _OMC_LIT184_data "identity"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT184,8,_OMC_LIT184_data);
#define _OMC_LIT184 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT184)
#define _OMC_LIT185_data "promote"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT185,7,_OMC_LIT185_data);
#define _OMC_LIT185 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT185)
#define _OMC_LIT186_data "String"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT186,6,_OMC_LIT186_data);
#define _OMC_LIT186 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT186)
#define _OMC_LIT187_data "Integer"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT187,7,_OMC_LIT187_data);
#define _OMC_LIT187 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT187)
#define _OMC_LIT188_data "rooted"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT188,6,_OMC_LIT188_data);
#define _OMC_LIT188 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT188)
#define _OMC_LIT189_data "fill"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT189,4,_OMC_LIT189_data);
#define _OMC_LIT189 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT189)
#define _OMC_LIT190_data "Modelica.Utilities.Strings.substring"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT190,36,_OMC_LIT190_data);
#define _OMC_LIT190 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT190)
#define _OMC_LIT191_data "fail"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT191,4,_OMC_LIT191_data);
#define _OMC_LIT191 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT191)
#define _OMC_LIT192_data "intString"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT192,9,_OMC_LIT192_data);
#define _OMC_LIT192 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT192)
#define _OMC_LIT193_data "realString"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT193,10,_OMC_LIT193_data);
#define _OMC_LIT193 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT193)
#define _OMC_LIT194_data "stringCharInt"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT194,13,_OMC_LIT194_data);
#define _OMC_LIT194 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT194)
#define _OMC_LIT195_data "intStringChar"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT195,13,_OMC_LIT195_data);
#define _OMC_LIT195 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT195)
#define _OMC_LIT196_data "stringLength"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT196,12,_OMC_LIT196_data);
#define _OMC_LIT196 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT196)
#define _OMC_LIT197_data "stringInt"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT197,9,_OMC_LIT197_data);
#define _OMC_LIT197 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT197)
#define _OMC_LIT198_data "stringListStringChar"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT198,20,_OMC_LIT198_data);
#define _OMC_LIT198 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT198)
#define _OMC_LIT199_data "listStringCharString"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT199,20,_OMC_LIT199_data);
#define _OMC_LIT199 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT199)
#define _OMC_LIT200_data "stringAppendList"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT200,16,_OMC_LIT200_data);
#define _OMC_LIT200 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT200)
#define _OMC_LIT201_data "stringDelimitList"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT201,17,_OMC_LIT201_data);
#define _OMC_LIT201 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT201)
#define _OMC_LIT202_data "listLength"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT202,10,_OMC_LIT202_data);
#define _OMC_LIT202 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT202)
#define _OMC_LIT203_data "listAppend"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT203,10,_OMC_LIT203_data);
#define _OMC_LIT203 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT203)
#define _OMC_LIT204_data "listHead"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT204,8,_OMC_LIT204_data);
#define _OMC_LIT204 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT204)
#define _OMC_LIT205_data "listRest"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT205,8,_OMC_LIT205_data);
#define _OMC_LIT205 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT205)
#define _OMC_LIT206_data "listMember"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT206,10,_OMC_LIT206_data);
#define _OMC_LIT206 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT206)
#define _OMC_LIT207_data "anyString"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT207,9,_OMC_LIT207_data);
#define _OMC_LIT207 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT207)
#define _OMC_LIT208_data "listArrayLiteral"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT208,16,_OMC_LIT208_data);
#define _OMC_LIT208 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT208)
#define _OMC_LIT209_data "intBitAnd"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT209,9,_OMC_LIT209_data);
#define _OMC_LIT209 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT209)
#define _OMC_LIT210_data "intBitOr"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT210,8,_OMC_LIT210_data);
#define _OMC_LIT210 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT210)
#define _OMC_LIT211_data "intBitXor"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT211,9,_OMC_LIT211_data);
#define _OMC_LIT211 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT211)
#define _OMC_LIT212_data "intBitLShift"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT212,12,_OMC_LIT212_data);
#define _OMC_LIT212 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT212)
#define _OMC_LIT213_data "intBitRShift"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT213,12,_OMC_LIT213_data);
#define _OMC_LIT213 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT213)
#define _OMC_LIT214_data "numBits"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT214,7,_OMC_LIT214_data);
#define _OMC_LIT214 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT214)
#define _OMC_LIT215_data "integerMax"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT215,10,_OMC_LIT215_data);
#define _OMC_LIT215 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT215)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT216,1,4) {&DAE_Const_C__PARAM__desc,}};
#define _OMC_LIT216 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT216)
#define _OMC_LIT217_data "cevalEquation"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT217,13,_OMC_LIT217_data);
#define _OMC_LIT217 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT217)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT218,1,3) {&Flags_FlagVisibility_INTERNAL__desc,}};
#define _OMC_LIT218 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT218)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT219,2,4) {&Flags_FlagData_BOOL__FLAG__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(1))}};
#define _OMC_LIT219 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT219)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT220,2,4) {&Gettext_TranslatableContent_notrans__desc,_OMC_LIT1}};
#define _OMC_LIT220 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT220)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT221,8,3) {&Flags_ConfigFlag_CONFIG__FLAG__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(32)),_OMC_LIT217,MMC_REFSTRUCTLIT(mmc_none),_OMC_LIT218,_OMC_LIT219,MMC_REFSTRUCTLIT(mmc_none),_OMC_LIT220}};
#define _OMC_LIT221 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT221)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT222,1,5) {&DAE_Const_C__VAR__desc,}};
#define _OMC_LIT222 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT222)
#define _OMC_LIT223_data " tuple non constant evaluation not implemented yet\n"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT223,51,_OMC_LIT223_data);
#define _OMC_LIT223 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT223)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT224,2,14) {&Values_Value_OPTION__desc,MMC_REFSTRUCTLIT(mmc_none)}};
#define _OMC_LIT224 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT224)
#define _OMC_LIT225_data "Connection"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT225,10,_OMC_LIT225_data);
#define _OMC_LIT225 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT225)
#define _OMC_LIT226_data "isRoot"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT226,6,_OMC_LIT226_data);
#define _OMC_LIT226 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT226)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT227,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT226}};
#define _OMC_LIT227 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT227)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT228,3,3) {&Absyn_Path_QUALIFIED__desc,_OMC_LIT225,_OMC_LIT227}};
#define _OMC_LIT228 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT228)
#define _OMC_LIT229_data "- Ceval.ceval DAE.CALL failed: "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT229,31,_OMC_LIT229_data);
#define _OMC_LIT229 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT229)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT230,1,7) {&Values_IntRealOp_POWOP__desc,}};
#define _OMC_LIT230 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT230)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT231,1,3) {&Values_IntRealOp_MULOP__desc,}};
#define _OMC_LIT231 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT231)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT232,1,4) {&Values_IntRealOp_DIVOP__desc,}};
#define _OMC_LIT232 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT232)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT233,1,5) {&Values_IntRealOp_ADDOP__desc,}};
#define _OMC_LIT233 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT233)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT234,1,6) {&Values_IntRealOp_SUBOP__desc,}};
#define _OMC_LIT234 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT234)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT235,2,6) {&Values_Value_BOOL__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(0))}};
#define _OMC_LIT235 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT235)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT236,2,3) {&DAE_Type_T__INTEGER__desc,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT236 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT236)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT237,2,4) {&DAE_Type_T__REAL__desc,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT237 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT237)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT238,1,4) {&SCode_Encapsulated_NOT__ENCAPSULATED__desc,}};
#define _OMC_LIT238 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT238)
#define _OMC_LIT239_data "$for loop scope$"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT239,16,_OMC_LIT239_data);
#define _OMC_LIT239 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT239)
#define _OMC_LIT240_data "#graphicsExp#"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT240,13,_OMC_LIT240_data);
#define _OMC_LIT240 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT240)
#define _OMC_LIT241_data "- Ceval.ceval failed: "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT241,22,_OMC_LIT241_data);
#define _OMC_LIT241 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT241)
#define _OMC_LIT242_data "  Scope: "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT242,9,_OMC_LIT242_data);
#define _OMC_LIT242 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT242)
#define _OMC_LIT243_data "256"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT243,3,_OMC_LIT243_data);
#define _OMC_LIT243 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT243)
#define _OMC_LIT244_data "The maximum recursion depth of %s was reached when evaluating expression %s in scope %s. Translation may still succeed but you are recommended to fix the problem."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT244,162,_OMC_LIT244_data);
#define _OMC_LIT244 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT244)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT245,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT244}};
#define _OMC_LIT245 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT245)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT246,5,3) {&ErrorTypes_Message_MESSAGE__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(533)),_OMC_LIT36,_OMC_LIT37,_OMC_LIT245}};
#define _OMC_LIT246 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT246)
#include "util/modelica.h"
#include "Ceval_includes.h"
#if !defined(PROTECTED_FUNCTION_STATIC)
#define PROTECTED_FUNCTION_STATIC
#endif
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_makeReductionAllCombinations(threadData_t *threadData, modelica_metatype _inValMatrix, modelica_metatype _rtype);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_makeReductionAllCombinations,2,0) {(void*) boxptr_Ceval_makeReductionAllCombinations,0}};
#define boxvar_Ceval_makeReductionAllCombinations MMC_REFSTRUCTLIT(boxvar_lit_Ceval_makeReductionAllCombinations)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalAstExpexpList(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpTpls, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_metatype _info, modelica_metatype *out_outExpTpls);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalAstExpexpList(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpTpls, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _info, modelica_metatype *out_outExpTpls);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalAstExpexpList,2,0) {(void*) boxptr_Ceval_cevalAstExpexpList,0}};
#define boxvar_Ceval_cevalAstExpexpList MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalAstExpexpList)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalAstArraydim(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inArrayDim, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_metatype _info, modelica_metatype *out_outArrayDim);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalAstArraydim(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inArrayDim, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _info, modelica_metatype *out_outArrayDim);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalAstArraydim,2,0) {(void*) boxptr_Ceval_cevalAstArraydim,0}};
#define boxvar_Ceval_cevalAstArraydim MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalAstArraydim)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalAstEltargs(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inAbsynElementArgLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_metatype _info, modelica_metatype *out_outAbsynElementArgLst);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalAstEltargs(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inAbsynElementArgLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _info, modelica_metatype *out_outAbsynElementArgLst);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalAstEltargs,2,0) {(void*) boxptr_Ceval_cevalAstEltargs,0}};
#define boxvar_Ceval_cevalAstEltargs MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalAstEltargs)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalAstModification(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inModification, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_metatype _info, modelica_metatype *out_outModification);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalAstModification(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inModification, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _info, modelica_metatype *out_outModification);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalAstModification,2,0) {(void*) boxptr_Ceval_cevalAstModification,0}};
#define boxvar_Ceval_cevalAstModification MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalAstModification)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalAstModopt(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inAbsynModificationOption, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_metatype _info, modelica_metatype *out_outAbsynModificationOption);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalAstModopt(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inAbsynModificationOption, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _info, modelica_metatype *out_outAbsynModificationOption);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalAstModopt,2,0) {(void*) boxptr_Ceval_cevalAstModopt,0}};
#define boxvar_Ceval_cevalAstModopt MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalAstModopt)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalAstCitems(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inAbsynComponentItemLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_metatype _info, modelica_metatype *out_outAbsynComponentItemLst);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalAstCitems(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inAbsynComponentItemLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _info, modelica_metatype *out_outAbsynComponentItemLst);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalAstCitems,2,0) {(void*) boxptr_Ceval_cevalAstCitems,0}};
#define boxvar_Ceval_cevalAstCitems MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalAstCitems)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalAstExpListList(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inAbsynExpLstLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_metatype _info, modelica_metatype *out_outAbsynExpLstLst);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalAstExpListList(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inAbsynExpLstLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _info, modelica_metatype *out_outAbsynExpLstLst);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalAstExpListList,2,0) {(void*) boxptr_Ceval_cevalAstExpListList,0}};
#define boxvar_Ceval_cevalAstExpListList MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalAstExpListList)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_backpatchArrayReduction3(threadData_t *threadData, modelica_metatype _inVals, modelica_metatype _inDims, modelica_fnptr _makeSequence);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_backpatchArrayReduction3,2,0) {(void*) boxptr_Ceval_backpatchArrayReduction3,0}};
#define boxvar_Ceval_backpatchArrayReduction3 MMC_REFSTRUCTLIT(boxvar_lit_Ceval_backpatchArrayReduction3)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_backpatchArrayReduction(threadData_t *threadData, modelica_metatype _path, modelica_metatype _iterType, modelica_metatype _inValue, modelica_metatype _dims);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_backpatchArrayReduction,2,0) {(void*) boxptr_Ceval_backpatchArrayReduction,0}};
#define boxvar_Ceval_backpatchArrayReduction MMC_REFSTRUCTLIT(boxvar_lit_Ceval_backpatchArrayReduction)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_extendFrameForIterators(threadData_t *threadData, modelica_metatype _inEnv, modelica_metatype _inNames, modelica_metatype _inVals, modelica_metatype _inTys);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_extendFrameForIterators,2,0) {(void*) boxptr_Ceval_extendFrameForIterators,0}};
#define boxvar_Ceval_extendFrameForIterators MMC_REFSTRUCTLIT(boxvar_lit_Ceval_extendFrameForIterators)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_filterReductionIterator(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_string _id, modelica_metatype _ty, modelica_metatype _inVals, modelica_metatype _guardExp, modelica_boolean _impl, modelica_metatype _msg, modelica_integer _numIter, modelica_metatype *out_outVals);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_filterReductionIterator(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _id, modelica_metatype _ty, modelica_metatype _inVals, modelica_metatype _guardExp, modelica_metatype _impl, modelica_metatype _msg, modelica_metatype _numIter, modelica_metatype *out_outVals);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_filterReductionIterator,2,0) {(void*) boxptr_Ceval_filterReductionIterator,0}};
#define boxvar_Ceval_filterReductionIterator MMC_REFSTRUCTLIT(boxvar_lit_Ceval_filterReductionIterator)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalReductionIterators(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIterators, modelica_boolean _impl, modelica_metatype _msg, modelica_integer _numIter, modelica_metatype *out_vals, modelica_metatype *out_names, modelica_metatype *out_dims, modelica_metatype *out_tys);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalReductionIterators(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIterators, modelica_metatype _impl, modelica_metatype _msg, modelica_metatype _numIter, modelica_metatype *out_vals, modelica_metatype *out_names, modelica_metatype *out_dims, modelica_metatype *out_tys);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalReductionIterators,2,0) {(void*) boxptr_Ceval_cevalReductionIterators,0}};
#define boxvar_Ceval_cevalReductionIterators MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalReductionIterators)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_valueCons(threadData_t *threadData, modelica_metatype _inV1, modelica_metatype _inV2);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_valueCons,2,0) {(void*) boxptr_Ceval_valueCons,0}};
#define boxvar_Ceval_valueCons MMC_REFSTRUCTLIT(boxvar_lit_Ceval_valueCons)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_valueArrayCons(threadData_t *threadData, modelica_metatype _v1, modelica_metatype _v2);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_valueArrayCons,2,0) {(void*) boxptr_Ceval_valueArrayCons,0}};
#define boxvar_Ceval_valueArrayCons MMC_REFSTRUCTLIT(boxvar_lit_Ceval_valueArrayCons)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalReductionFold(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _opPath, modelica_metatype _inCurValue, modelica_metatype _inValue, modelica_string _foldName, modelica_string _resultName, modelica_metatype _foldExp, modelica_metatype _exprType, modelica_boolean _impl, modelica_metatype _msg, modelica_integer _numIter, modelica_metatype *out_result);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalReductionFold(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _opPath, modelica_metatype _inCurValue, modelica_metatype _inValue, modelica_metatype _foldName, modelica_metatype _resultName, modelica_metatype _foldExp, modelica_metatype _exprType, modelica_metatype _impl, modelica_metatype _msg, modelica_metatype _numIter, modelica_metatype *out_result);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalReductionFold,2,0) {(void*) boxptr_Ceval_cevalReductionFold,0}};
#define boxvar_Ceval_cevalReductionFold MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalReductionFold)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalReductionEvalAndFold(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _opPath, modelica_metatype _inCurValue, modelica_metatype _exp, modelica_metatype _exprType, modelica_string _foldName, modelica_string _resultName, modelica_metatype _foldExp, modelica_boolean _impl, modelica_metatype _msg, modelica_integer _numIter, modelica_metatype *out_result);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalReductionEvalAndFold(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _opPath, modelica_metatype _inCurValue, modelica_metatype _exp, modelica_metatype _exprType, modelica_metatype _foldName, modelica_metatype _resultName, modelica_metatype _foldExp, modelica_metatype _impl, modelica_metatype _msg, modelica_metatype _numIter, modelica_metatype *out_result);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalReductionEvalAndFold,2,0) {(void*) boxptr_Ceval_cevalReductionEvalAndFold,0}};
#define boxvar_Ceval_cevalReductionEvalAndFold MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalReductionEvalAndFold)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalReduction(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _opPath, modelica_metatype _inCurValue, modelica_metatype _exp, modelica_metatype _exprType, modelica_string _foldName, modelica_string _resultName, modelica_metatype _foldExp, modelica_metatype _iteratorNames, modelica_metatype _inValueMatrix, modelica_metatype _iterTypes, modelica_boolean _impl, modelica_metatype _msg, modelica_integer _numIter, modelica_metatype *out_result);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalReduction(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _opPath, modelica_metatype _inCurValue, modelica_metatype _exp, modelica_metatype _exprType, modelica_metatype _foldName, modelica_metatype _resultName, modelica_metatype _foldExp, modelica_metatype _iteratorNames, modelica_metatype _inValueMatrix, modelica_metatype _iterTypes, modelica_metatype _impl, modelica_metatype _msg, modelica_metatype _numIter, modelica_metatype *out_result);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalReduction,2,0) {(void*) boxptr_Ceval_cevalReduction,0}};
#define boxvar_Ceval_cevalReduction MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalReduction)
PROTECTED_FUNCTION_STATIC modelica_boolean omc_Ceval_dimensionSliceInRange(threadData_t *threadData, modelica_metatype _arr, modelica_integer _dimSize);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_dimensionSliceInRange(threadData_t *threadData, modelica_metatype _arr, modelica_metatype _dimSize);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_dimensionSliceInRange,2,0) {(void*) boxptr_Ceval_dimensionSliceInRange,0}};
#define boxvar_Ceval_dimensionSliceInRange MMC_REFSTRUCTLIT(boxvar_lit_Ceval_dimensionSliceInRange)
PROTECTED_FUNCTION_STATIC modelica_boolean omc_Ceval_crefEqualValue(threadData_t *threadData, modelica_metatype _c, modelica_metatype _v);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_crefEqualValue(threadData_t *threadData, modelica_metatype _c, modelica_metatype _v);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_crefEqualValue,2,0) {(void*) boxptr_Ceval_crefEqualValue,0}};
#define boxvar_Ceval_crefEqualValue MMC_REFSTRUCTLIT(boxvar_lit_Ceval_crefEqualValue)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalSubscriptValueList(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpSubscriptLst, modelica_metatype _inValue, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalSubscriptValueList(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpSubscriptLst, modelica_metatype _inValue, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalSubscriptValueList,2,0) {(void*) boxptr_Ceval_cevalSubscriptValueList,0}};
#define boxvar_Ceval_cevalSubscriptValueList MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalSubscriptValueList)
PROTECTED_FUNCTION_STATIC modelica_boolean omc_Ceval_isRecursiveBinding(threadData_t *threadData, modelica_metatype _cr, modelica_metatype _exp);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_isRecursiveBinding(threadData_t *threadData, modelica_metatype _cr, modelica_metatype _exp);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_isRecursiveBinding,2,0) {(void*) boxptr_Ceval_isRecursiveBinding,0}};
#define boxvar_Ceval_isRecursiveBinding MMC_REFSTRUCTLIT(boxvar_lit_Ceval_isRecursiveBinding)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_makeEnumValue(threadData_t *threadData, modelica_metatype _name, modelica_integer _index, modelica_integer *out_newIndex);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_makeEnumValue(threadData_t *threadData, modelica_metatype _name, modelica_metatype _index, modelica_metatype *out_newIndex);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_makeEnumValue,2,0) {(void*) boxptr_Ceval_makeEnumValue,0}};
#define boxvar_Ceval_makeEnumValue MMC_REFSTRUCTLIT(boxvar_lit_Ceval_makeEnumValue)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalRange(threadData_t *threadData, modelica_metatype _cache, modelica_metatype _env, modelica_metatype _rangeExp, modelica_boolean _impl, modelica_metatype _msg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalRange(threadData_t *threadData, modelica_metatype _cache, modelica_metatype _env, modelica_metatype _rangeExp, modelica_metatype _impl, modelica_metatype _msg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalRange,2,0) {(void*) boxptr_Ceval_cevalRange,0}};
#define boxvar_Ceval_cevalRange MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalRange)
PROTECTED_FUNCTION_STATIC modelica_boolean omc_Ceval_cevalRelationNotEqual(threadData_t *threadData, modelica_metatype _inValue1, modelica_metatype _inValue2);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalRelationNotEqual(threadData_t *threadData, modelica_metatype _inValue1, modelica_metatype _inValue2);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalRelationNotEqual,2,0) {(void*) boxptr_Ceval_cevalRelationNotEqual,0}};
#define boxvar_Ceval_cevalRelationNotEqual MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalRelationNotEqual)
PROTECTED_FUNCTION_STATIC modelica_boolean omc_Ceval_cevalRelationEqual(threadData_t *threadData, modelica_metatype _inValue1, modelica_metatype _inValue2);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalRelationEqual(threadData_t *threadData, modelica_metatype _inValue1, modelica_metatype _inValue2);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalRelationEqual,2,0) {(void*) boxptr_Ceval_cevalRelationEqual,0}};
#define boxvar_Ceval_cevalRelationEqual MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalRelationEqual)
PROTECTED_FUNCTION_STATIC modelica_boolean omc_Ceval_cevalRelationGreaterEq(threadData_t *threadData, modelica_metatype _inValue1, modelica_metatype _inValue2);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalRelationGreaterEq(threadData_t *threadData, modelica_metatype _inValue1, modelica_metatype _inValue2);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalRelationGreaterEq,2,0) {(void*) boxptr_Ceval_cevalRelationGreaterEq,0}};
#define boxvar_Ceval_cevalRelationGreaterEq MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalRelationGreaterEq)
PROTECTED_FUNCTION_STATIC modelica_boolean omc_Ceval_cevalRelationLessEq(threadData_t *threadData, modelica_metatype _inValue1, modelica_metatype _inValue2);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalRelationLessEq(threadData_t *threadData, modelica_metatype _inValue1, modelica_metatype _inValue2);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalRelationLessEq,2,0) {(void*) boxptr_Ceval_cevalRelationLessEq,0}};
#define boxvar_Ceval_cevalRelationLessEq MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalRelationLessEq)
PROTECTED_FUNCTION_STATIC modelica_boolean omc_Ceval_cevalRelationLess(threadData_t *threadData, modelica_metatype _inValue1, modelica_metatype _inValue2);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalRelationLess(threadData_t *threadData, modelica_metatype _inValue1, modelica_metatype _inValue2);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalRelationLess,2,0) {(void*) boxptr_Ceval_cevalRelationLess,0}};
#define boxvar_Ceval_cevalRelationLess MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalRelationLess)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalRelation(threadData_t *threadData, modelica_metatype _inValue1, modelica_metatype _inOperator, modelica_metatype _inValue2);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalRelation,2,0) {(void*) boxptr_Ceval_cevalRelation,0}};
#define boxvar_Ceval_cevalRelation MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalRelation)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinFill2(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inFillValue, modelica_metatype _inDims, modelica_boolean _inImpl, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinFill2(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inFillValue, modelica_metatype _inDims, modelica_metatype _inImpl, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinFill2,2,0) {(void*) boxptr_Ceval_cevalBuiltinFill2,0}};
#define boxvar_Ceval_cevalBuiltinFill2 MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinFill2)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinFill(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpl, modelica_boolean _inImpl, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinFill(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpl, modelica_metatype _inImpl, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinFill,2,0) {(void*) boxptr_Ceval_cevalBuiltinFill,0}};
#define boxvar_Ceval_cevalBuiltinFill MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinFill)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinFail(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpl, modelica_boolean _inImpl, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinFail(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpl, modelica_metatype _inImpl, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinFail,2,0) {(void*) boxptr_Ceval_cevalBuiltinFail,0}};
#define boxvar_Ceval_cevalBuiltinFail MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinFail)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinSizeMatrix(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExp, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinSizeMatrix(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExp, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinSizeMatrix,2,0) {(void*) boxptr_Ceval_cevalBuiltinSizeMatrix,0}};
#define boxvar_Ceval_cevalBuiltinSizeMatrix MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinSizeMatrix)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinTranspose2(threadData_t *threadData, modelica_metatype _inValuesValueLst1, modelica_integer _inInteger2, modelica_metatype _inDims);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinTranspose2(threadData_t *threadData, modelica_metatype _inValuesValueLst1, modelica_metatype _inInteger2, modelica_metatype _inDims);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinTranspose2,2,0) {(void*) boxptr_Ceval_cevalBuiltinTranspose2,0}};
#define boxvar_Ceval_cevalBuiltinTranspose2 MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinTranspose2)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinCross(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinCross(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinCross,2,0) {(void*) boxptr_Ceval_cevalBuiltinCross,0}};
#define boxvar_Ceval_cevalBuiltinCross MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinCross)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinDiagonal(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinDiagonal(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinDiagonal,2,0) {(void*) boxptr_Ceval_cevalBuiltinDiagonal,0}};
#define boxvar_Ceval_cevalBuiltinDiagonal MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinDiagonal)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinIntegerEnumeration(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinIntegerEnumeration(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinIntegerEnumeration,2,0) {(void*) boxptr_Ceval_cevalBuiltinIntegerEnumeration,0}};
#define boxvar_Ceval_cevalBuiltinIntegerEnumeration MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinIntegerEnumeration)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinRooted(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinRooted(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinRooted,2,0) {(void*) boxptr_Ceval_cevalBuiltinRooted,0}};
#define boxvar_Ceval_cevalBuiltinRooted MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinRooted)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinBoolean(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinBoolean(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinBoolean,2,0) {(void*) boxptr_Ceval_cevalBuiltinBoolean,0}};
#define boxvar_Ceval_cevalBuiltinBoolean MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinBoolean)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinInteger(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinInteger(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinInteger,2,0) {(void*) boxptr_Ceval_cevalBuiltinInteger,0}};
#define boxvar_Ceval_cevalBuiltinInteger MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinInteger)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinRem(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinRem(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinRem,2,0) {(void*) boxptr_Ceval_cevalBuiltinRem,0}};
#define boxvar_Ceval_cevalBuiltinRem MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinRem)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinMinArr(threadData_t *threadData, modelica_metatype _inValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinMinArr,2,0) {(void*) boxptr_Ceval_cevalBuiltinMinArr,0}};
#define boxvar_Ceval_cevalBuiltinMinArr MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinMinArr)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinMin2(threadData_t *threadData, modelica_metatype _v1, modelica_metatype _v2);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinMin2,2,0) {(void*) boxptr_Ceval_cevalBuiltinMin2,0}};
#define boxvar_Ceval_cevalBuiltinMin2 MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinMin2)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinMin(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinMin(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinMin,2,0) {(void*) boxptr_Ceval_cevalBuiltinMin,0}};
#define boxvar_Ceval_cevalBuiltinMin MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinMin)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinMaxArr(threadData_t *threadData, modelica_metatype _inValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinMaxArr,2,0) {(void*) boxptr_Ceval_cevalBuiltinMaxArr,0}};
#define boxvar_Ceval_cevalBuiltinMaxArr MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinMaxArr)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinMax2(threadData_t *threadData, modelica_metatype _v1, modelica_metatype _v2);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinMax2,2,0) {(void*) boxptr_Ceval_cevalBuiltinMax2,0}};
#define boxvar_Ceval_cevalBuiltinMax2 MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinMax2)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinMax(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinMax(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinMax,2,0) {(void*) boxptr_Ceval_cevalBuiltinMax,0}};
#define boxvar_Ceval_cevalBuiltinMax MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinMax)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinSum(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinSum(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinSum,2,0) {(void*) boxptr_Ceval_cevalBuiltinSum,0}};
#define boxvar_Ceval_cevalBuiltinSum MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinSum)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinMod(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _impl, modelica_metatype _msg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinMod(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _impl, modelica_metatype _msg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinMod,2,0) {(void*) boxptr_Ceval_cevalBuiltinMod,0}};
#define boxvar_Ceval_cevalBuiltinMod MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinMod)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinDiv(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinDiv(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinDiv,2,0) {(void*) boxptr_Ceval_cevalBuiltinDiv,0}};
#define boxvar_Ceval_cevalBuiltinDiv MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinDiv)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinAtan2(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinAtan2(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinAtan2,2,0) {(void*) boxptr_Ceval_cevalBuiltinAtan2,0}};
#define boxvar_Ceval_cevalBuiltinAtan2 MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinAtan2)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinAtan(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinAtan(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinAtan,2,0) {(void*) boxptr_Ceval_cevalBuiltinAtan,0}};
#define boxvar_Ceval_cevalBuiltinAtan MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinAtan)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinAcos(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinAcos(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinAcos,2,0) {(void*) boxptr_Ceval_cevalBuiltinAcos,0}};
#define boxvar_Ceval_cevalBuiltinAcos MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinAcos)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinAsin(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinAsin(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinAsin,2,0) {(void*) boxptr_Ceval_cevalBuiltinAsin,0}};
#define boxvar_Ceval_cevalBuiltinAsin MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinAsin)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinTanh(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinTanh(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinTanh,2,0) {(void*) boxptr_Ceval_cevalBuiltinTanh,0}};
#define boxvar_Ceval_cevalBuiltinTanh MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinTanh)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinTan(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _impl, modelica_metatype _msg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinTan(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _impl, modelica_metatype _msg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinTan,2,0) {(void*) boxptr_Ceval_cevalBuiltinTan,0}};
#define boxvar_Ceval_cevalBuiltinTan MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinTan)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinLog10(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinLog10(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinLog10,2,0) {(void*) boxptr_Ceval_cevalBuiltinLog10,0}};
#define boxvar_Ceval_cevalBuiltinLog10 MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinLog10)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinLog(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinLog(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinLog,2,0) {(void*) boxptr_Ceval_cevalBuiltinLog,0}};
#define boxvar_Ceval_cevalBuiltinLog MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinLog)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinCosh(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinCosh(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinCosh,2,0) {(void*) boxptr_Ceval_cevalBuiltinCosh,0}};
#define boxvar_Ceval_cevalBuiltinCosh MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinCosh)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinCos(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinCos(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinCos,2,0) {(void*) boxptr_Ceval_cevalBuiltinCos,0}};
#define boxvar_Ceval_cevalBuiltinCos MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinCos)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinSinh(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinSinh(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinSinh,2,0) {(void*) boxptr_Ceval_cevalBuiltinSinh,0}};
#define boxvar_Ceval_cevalBuiltinSinh MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinSinh)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinSin(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinSin(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinSin,2,0) {(void*) boxptr_Ceval_cevalBuiltinSin,0}};
#define boxvar_Ceval_cevalBuiltinSin MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinSin)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinSqrt(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinSqrt(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinSqrt,2,0) {(void*) boxptr_Ceval_cevalBuiltinSqrt,0}};
#define boxvar_Ceval_cevalBuiltinSqrt MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinSqrt)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinCeil(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinCeil(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinCeil,2,0) {(void*) boxptr_Ceval_cevalBuiltinCeil,0}};
#define boxvar_Ceval_cevalBuiltinCeil MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinCeil)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinFloor(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinFloor(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinFloor,2,0) {(void*) boxptr_Ceval_cevalBuiltinFloor,0}};
#define boxvar_Ceval_cevalBuiltinFloor MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinFloor)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_catDimension2(threadData_t *threadData, modelica_metatype _inValuesValueLstLst, modelica_integer _inInteger);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_catDimension2(threadData_t *threadData, modelica_metatype _inValuesValueLstLst, modelica_metatype _inInteger);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_catDimension2,2,0) {(void*) boxptr_Ceval_catDimension2,0}};
#define boxvar_Ceval_catDimension2 MMC_REFSTRUCTLIT(boxvar_lit_Ceval_catDimension2)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_catDimension(threadData_t *threadData, modelica_metatype _inValuesValueLst, modelica_integer _inInteger);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_catDimension(threadData_t *threadData, modelica_metatype _inValuesValueLst, modelica_metatype _inInteger);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_catDimension,2,0) {(void*) boxptr_Ceval_catDimension,0}};
#define boxvar_Ceval_catDimension MMC_REFSTRUCTLIT(boxvar_lit_Ceval_catDimension)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalCat(threadData_t *threadData, modelica_metatype _v_lst, modelica_integer _dim);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalCat(threadData_t *threadData, modelica_metatype _v_lst, modelica_metatype _dim);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalCat,2,0) {(void*) boxptr_Ceval_cevalCat,0}};
#define boxvar_Ceval_cevalCat MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalCat)
PROTECTED_FUNCTION_STATIC modelica_string omc_Ceval_extractValueStringChar(threadData_t *threadData, modelica_metatype _val);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_extractValueStringChar,2,0) {(void*) boxptr_Ceval_extractValueStringChar,0}};
#define boxvar_Ceval_extractValueStringChar MMC_REFSTRUCTLIT(boxvar_lit_Ceval_extractValueStringChar)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalListFirst(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalListFirst(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalListFirst,2,0) {(void*) boxptr_Ceval_cevalListFirst,0}};
#define boxvar_Ceval_cevalListFirst MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalListFirst)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_makeLoadLibrariesEntry(threadData_t *threadData, modelica_metatype _cl, modelica_metatype _acc);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_makeLoadLibrariesEntry,2,0) {(void*) boxptr_Ceval_makeLoadLibrariesEntry,0}};
#define boxvar_Ceval_makeLoadLibrariesEntry MMC_REFSTRUCTLIT(boxvar_lit_Ceval_makeLoadLibrariesEntry)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalIntBitRShift(threadData_t *threadData, modelica_metatype __omcQ_24in_5Fcache, modelica_metatype _env, modelica_metatype _args, modelica_boolean _impl, modelica_metatype _msg, modelica_integer _numIter, modelica_metatype *out_result);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalIntBitRShift(threadData_t *threadData, modelica_metatype __omcQ_24in_5Fcache, modelica_metatype _env, modelica_metatype _args, modelica_metatype _impl, modelica_metatype _msg, modelica_metatype _numIter, modelica_metatype *out_result);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalIntBitRShift,2,0) {(void*) boxptr_Ceval_cevalIntBitRShift,0}};
#define boxvar_Ceval_cevalIntBitRShift MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalIntBitRShift)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalIntBitLShift(threadData_t *threadData, modelica_metatype __omcQ_24in_5Fcache, modelica_metatype _env, modelica_metatype _args, modelica_boolean _impl, modelica_metatype _msg, modelica_integer _numIter, modelica_metatype *out_result);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalIntBitLShift(threadData_t *threadData, modelica_metatype __omcQ_24in_5Fcache, modelica_metatype _env, modelica_metatype _args, modelica_metatype _impl, modelica_metatype _msg, modelica_metatype _numIter, modelica_metatype *out_result);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalIntBitLShift,2,0) {(void*) boxptr_Ceval_cevalIntBitLShift,0}};
#define boxvar_Ceval_cevalIntBitLShift MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalIntBitLShift)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalIntBitXor(threadData_t *threadData, modelica_metatype __omcQ_24in_5Fcache, modelica_metatype _env, modelica_metatype _args, modelica_boolean _impl, modelica_metatype _msg, modelica_integer _numIter, modelica_metatype *out_result);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalIntBitXor(threadData_t *threadData, modelica_metatype __omcQ_24in_5Fcache, modelica_metatype _env, modelica_metatype _args, modelica_metatype _impl, modelica_metatype _msg, modelica_metatype _numIter, modelica_metatype *out_result);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalIntBitXor,2,0) {(void*) boxptr_Ceval_cevalIntBitXor,0}};
#define boxvar_Ceval_cevalIntBitXor MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalIntBitXor)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalIntBitOr(threadData_t *threadData, modelica_metatype __omcQ_24in_5Fcache, modelica_metatype _env, modelica_metatype _args, modelica_boolean _impl, modelica_metatype _msg, modelica_integer _numIter, modelica_metatype *out_result);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalIntBitOr(threadData_t *threadData, modelica_metatype __omcQ_24in_5Fcache, modelica_metatype _env, modelica_metatype _args, modelica_metatype _impl, modelica_metatype _msg, modelica_metatype _numIter, modelica_metatype *out_result);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalIntBitOr,2,0) {(void*) boxptr_Ceval_cevalIntBitOr,0}};
#define boxvar_Ceval_cevalIntBitOr MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalIntBitOr)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalIntBitAnd(threadData_t *threadData, modelica_metatype __omcQ_24in_5Fcache, modelica_metatype _env, modelica_metatype _args, modelica_boolean _impl, modelica_metatype _msg, modelica_integer _numIter, modelica_metatype *out_result);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalIntBitAnd(threadData_t *threadData, modelica_metatype __omcQ_24in_5Fcache, modelica_metatype _env, modelica_metatype _args, modelica_metatype _impl, modelica_metatype _msg, modelica_metatype _numIter, modelica_metatype *out_result);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalIntBitAnd,2,0) {(void*) boxptr_Ceval_cevalIntBitAnd,0}};
#define boxvar_Ceval_cevalIntBitAnd MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalIntBitAnd)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalIntegerMax(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalIntegerMax(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalIntegerMax,2,0) {(void*) boxptr_Ceval_cevalIntegerMax,0}};
#define boxvar_Ceval_cevalIntegerMax MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalIntegerMax)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalNumBits(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalNumBits(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalNumBits,2,0) {(void*) boxptr_Ceval_cevalNumBits,0}};
#define boxvar_Ceval_cevalNumBits MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalNumBits)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalAnyString(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalAnyString(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalAnyString,2,0) {(void*) boxptr_Ceval_cevalAnyString,0}};
#define boxvar_Ceval_cevalAnyString MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalAnyString)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalListArrayLiteral(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalListArrayLiteral(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalListArrayLiteral,2,0) {(void*) boxptr_Ceval_cevalListArrayLiteral,0}};
#define boxvar_Ceval_cevalListArrayLiteral MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalListArrayLiteral)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalListMember(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalListMember(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalListMember,2,0) {(void*) boxptr_Ceval_cevalListMember,0}};
#define boxvar_Ceval_cevalListMember MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalListMember)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalListRest(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalListRest(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalListRest,2,0) {(void*) boxptr_Ceval_cevalListRest,0}};
#define boxvar_Ceval_cevalListRest MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalListRest)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalListReverse(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalListReverse(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalListReverse,2,0) {(void*) boxptr_Ceval_cevalListReverse,0}};
#define boxvar_Ceval_cevalListReverse MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalListReverse)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalListAppend(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalListAppend(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalListAppend,2,0) {(void*) boxptr_Ceval_cevalListAppend,0}};
#define boxvar_Ceval_cevalListAppend MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalListAppend)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalListLength(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalListLength(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalListLength,2,0) {(void*) boxptr_Ceval_cevalListLength,0}};
#define boxvar_Ceval_cevalListLength MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalListLength)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalStringDelimitList(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalStringDelimitList(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalStringDelimitList,2,0) {(void*) boxptr_Ceval_cevalStringDelimitList,0}};
#define boxvar_Ceval_cevalStringDelimitList MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalStringDelimitList)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalStringAppendList(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalStringAppendList(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalStringAppendList,2,0) {(void*) boxptr_Ceval_cevalStringAppendList,0}};
#define boxvar_Ceval_cevalStringAppendList MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalStringAppendList)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalListStringCharString(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalListStringCharString(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalListStringCharString,2,0) {(void*) boxptr_Ceval_cevalListStringCharString,0}};
#define boxvar_Ceval_cevalListStringCharString MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalListStringCharString)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_generateValueString(threadData_t *threadData, modelica_string _str);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_generateValueString,2,0) {(void*) boxptr_Ceval_generateValueString,0}};
#define boxvar_Ceval_generateValueString MMC_REFSTRUCTLIT(boxvar_lit_Ceval_generateValueString)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalStringListStringChar(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalStringListStringChar(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalStringListStringChar,2,0) {(void*) boxptr_Ceval_cevalStringListStringChar,0}};
#define boxvar_Ceval_cevalStringListStringChar MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalStringListStringChar)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalStringLength(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalStringLength(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalStringLength,2,0) {(void*) boxptr_Ceval_cevalStringLength,0}};
#define boxvar_Ceval_cevalStringLength MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalStringLength)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalStringInt(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalStringInt(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalStringInt,2,0) {(void*) boxptr_Ceval_cevalStringInt,0}};
#define boxvar_Ceval_cevalStringInt MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalStringInt)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalIntStringChar(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalIntStringChar(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalIntStringChar,2,0) {(void*) boxptr_Ceval_cevalIntStringChar,0}};
#define boxvar_Ceval_cevalIntStringChar MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalIntStringChar)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalStringCharInt(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalStringCharInt(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalStringCharInt,2,0) {(void*) boxptr_Ceval_cevalStringCharInt,0}};
#define boxvar_Ceval_cevalStringCharInt MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalStringCharInt)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalRealString(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalRealString(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalRealString,2,0) {(void*) boxptr_Ceval_cevalRealString,0}};
#define boxvar_Ceval_cevalRealString MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalRealString)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalIntString(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalIntString(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalIntString,2,0) {(void*) boxptr_Ceval_cevalIntString,0}};
#define boxvar_Ceval_cevalIntString MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalIntString)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinPrint(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinPrint(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinPrint,2,0) {(void*) boxptr_Ceval_cevalBuiltinPrint,0}};
#define boxvar_Ceval_cevalBuiltinPrint MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinPrint)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinStringFormat(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_string _inString, modelica_metatype _lengthExp, modelica_metatype _justifiedExp, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_string *out_outString);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinStringFormat(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inString, modelica_metatype _lengthExp, modelica_metatype _justifiedExp, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outString);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinStringFormat,2,0) {(void*) boxptr_Ceval_cevalBuiltinStringFormat,0}};
#define boxvar_Ceval_cevalBuiltinStringFormat MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinStringFormat)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinString(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinString(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinString,2,0) {(void*) boxptr_Ceval_cevalBuiltinString,0}};
#define boxvar_Ceval_cevalBuiltinString MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinString)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinSubstring(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinSubstring(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinSubstring,2,0) {(void*) boxptr_Ceval_cevalBuiltinSubstring,0}};
#define boxvar_Ceval_cevalBuiltinSubstring MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinSubstring)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinPromote2(threadData_t *threadData, modelica_metatype _inValue, modelica_integer _inInteger);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinPromote2(threadData_t *threadData, modelica_metatype _inValue, modelica_metatype _inInteger);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinPromote2,2,0) {(void*) boxptr_Ceval_cevalBuiltinPromote2,0}};
#define boxvar_Ceval_cevalBuiltinPromote2 MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinPromote2)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinPromote(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinPromote(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinPromote,2,0) {(void*) boxptr_Ceval_cevalBuiltinPromote,0}};
#define boxvar_Ceval_cevalBuiltinPromote MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinPromote)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinIdentity(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinIdentity(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinIdentity,2,0) {(void*) boxptr_Ceval_cevalBuiltinIdentity,0}};
#define boxvar_Ceval_cevalBuiltinIdentity MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinIdentity)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinCat(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinCat(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinCat,2,0) {(void*) boxptr_Ceval_cevalBuiltinCat,0}};
#define boxvar_Ceval_cevalBuiltinCat MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinCat)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinNoevent(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinNoevent(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinNoevent,2,0) {(void*) boxptr_Ceval_cevalBuiltinNoevent,0}};
#define boxvar_Ceval_cevalBuiltinNoevent MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinNoevent)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinExp(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinExp(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinExp,2,0) {(void*) boxptr_Ceval_cevalBuiltinExp,0}};
#define boxvar_Ceval_cevalBuiltinExp MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinExp)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinSign(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinSign(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinSign,2,0) {(void*) boxptr_Ceval_cevalBuiltinSign,0}};
#define boxvar_Ceval_cevalBuiltinSign MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinSign)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinAbs(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinAbs(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinAbs,2,0) {(void*) boxptr_Ceval_cevalBuiltinAbs,0}};
#define boxvar_Ceval_cevalBuiltinAbs MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinAbs)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinSize3(threadData_t *threadData, modelica_metatype _inDims, modelica_integer _inIndex);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinSize3(threadData_t *threadData, modelica_metatype _inDims, modelica_metatype _inIndex);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinSize3,2,0) {(void*) boxptr_Ceval_cevalBuiltinSize3,0}};
#define boxvar_Ceval_cevalBuiltinSize3 MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinSize3)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinSize2(threadData_t *threadData, modelica_metatype _inValue, modelica_integer _inInteger);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinSize2(threadData_t *threadData, modelica_metatype _inValue, modelica_metatype _inInteger);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinSize2,2,0) {(void*) boxptr_Ceval_cevalBuiltinSize2,0}};
#define boxvar_Ceval_cevalBuiltinSize2 MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinSize2)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinSize(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv1, modelica_metatype _inExp2, modelica_metatype _inDimExp, modelica_boolean _inBoolean4, modelica_metatype _inMsg6, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinSize(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv1, modelica_metatype _inExp2, modelica_metatype _inDimExp, modelica_metatype _inBoolean4, modelica_metatype _inMsg6, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinSize,2,0) {(void*) boxptr_Ceval_cevalBuiltinSize,0}};
#define boxvar_Ceval_cevalBuiltinSize MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinSize)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalMatrixElt(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inMatrix, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValues);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalMatrixElt(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inMatrix, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValues);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalMatrixElt,2,0) {(void*) boxptr_Ceval_cevalMatrixElt,0}};
#define boxvar_Ceval_cevalMatrixElt MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalMatrixElt)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalKnownExternalFuncs2(threadData_t *threadData, modelica_string _id, modelica_metatype _inValuesValueLst, modelica_metatype _inMsg);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalKnownExternalFuncs2,2,0) {(void*) boxptr_Ceval_cevalKnownExternalFuncs2,0}};
#define boxvar_Ceval_cevalKnownExternalFuncs2 MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalKnownExternalFuncs2)
PROTECTED_FUNCTION_STATIC modelica_fnptr omc_Ceval_cevalBuiltinHandler(threadData_t *threadData, modelica_string _inIdent);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinHandler,2,0) {(void*) boxptr_Ceval_cevalBuiltinHandler,0}};
#define boxvar_Ceval_cevalBuiltinHandler MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltinHandler)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltin(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExp, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltin(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExp, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltin,2,0) {(void*) boxptr_Ceval_cevalBuiltin,0}};
#define boxvar_Ceval_cevalBuiltin MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalBuiltin)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalWholedimRetCall(threadData_t *threadData, modelica_metatype _inExp, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inInfo, modelica_integer _numIter, modelica_metatype *out_outProp);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalWholedimRetCall(threadData_t *threadData, modelica_metatype _inExp, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inInfo, modelica_metatype _numIter, modelica_metatype *out_outProp);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalWholedimRetCall,2,0) {(void*) boxptr_Ceval_cevalWholedimRetCall,0}};
#define boxvar_Ceval_cevalWholedimRetCall MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalWholedimRetCall)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalWork2(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExp, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalWork2(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExp, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalWork2,2,0) {(void*) boxptr_Ceval_cevalWork2,0}};
#define boxvar_Ceval_cevalWork2 MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalWork2)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalWork1(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExp, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_boolean _iterReached, modelica_metatype *out_outValue);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalWork1(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExp, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype _iterReached, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalWork1,2,0) {(void*) boxptr_Ceval_cevalWork1,0}};
#define boxvar_Ceval_cevalWork1 MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalWork1)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_makeReductionAllCombinations(threadData_t *threadData, modelica_metatype _inValMatrix, modelica_metatype _rtype)
{
modelica_metatype _valMatrix = NULL;
modelica_metatype tmpMeta[1] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp3_1;
tmp3_1 = _rtype;
{
volatile mmc_switch_type tmp3;
int tmp4;
tmp3 = 0;
for (; tmp3 < 2; tmp3++) {
switch (MMC_SWITCH_CAST(tmp3)) {
case 0: {
if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,0,0) == 0) goto tmp2_end;
tmpMeta[0] = listReverse(omc_List_allCombinations(threadData, _inValMatrix, _OMC_LIT0, _OMC_LIT3));
goto tmp2_done;
}
case 1: {
if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,1,0) == 0) goto tmp2_end;
tmpMeta[0] = listReverse(omc_List_transposeList(threadData, _inValMatrix));
goto tmp2_done;
}
}
goto tmp2_end;
tmp2_end: ;
}
goto goto_1;
goto_1:;
MMC_THROW_INTERNAL();
goto tmp2_done;
tmp2_done:;
}
}
_valMatrix = tmpMeta[0];
_return: OMC_LABEL_UNUSED
return _valMatrix;
}
DLLExport
modelica_metatype omc_Ceval_cevalDimension(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inDimension, modelica_boolean _inImpl, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[3] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;
tmp4_1 = _inDimension;
{
modelica_integer _dim_int;
modelica_metatype _exp = NULL;
int tmp4;
{
switch (MMC_SWITCH_CAST(valueConstructor(tmp4_1))) {
case 3: {
modelica_integer tmp5;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,0,1) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 2));
tmp5 = mmc_unbox_integer(tmpMeta[2]);
_dim_int = tmp5;
tmpMeta[2] = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(_dim_int));
tmpMeta[0+0] = _inCache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 5: {
modelica_integer tmp6;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,2,3) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 4));
tmp6 = mmc_unbox_integer(tmpMeta[2]);
_dim_int = tmp6;
tmpMeta[2] = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(_dim_int));
tmpMeta[0+0] = _inCache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 4: {
tmpMeta[0+0] = _inCache;
tmpMeta[0+1] = _OMC_LIT4;
goto tmp3_done;
}
case 6: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,3,1) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 2));
_exp = tmpMeta[2];
tmpMeta[0+0] = omc_Ceval_ceval(threadData, _inCache, _inEnv, _exp, _inImpl, _inMsg, ((modelica_integer) 1) + _numIter, &tmpMeta[0+1]);
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
modelica_metatype boxptr_Ceval_cevalDimension(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inDimension, modelica_metatype _inImpl, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inImpl);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalDimension(threadData, _inCache, _inEnv, _inDimension, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalAstExpexpList(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpTpls, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_metatype _info, modelica_metatype *out_outExpTpls)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outExpTpls = NULL;
modelica_metatype tmpMeta[6] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_boolean tmp4_4;modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExpTpls;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_metatype _msg = NULL;
modelica_metatype _e1_1 = NULL;
modelica_metatype _e2_1 = NULL;
modelica_metatype _e1 = NULL;
modelica_metatype _e2 = NULL;
modelica_metatype _res = NULL;
modelica_metatype _xs = NULL;
modelica_metatype _env = NULL;
modelica_boolean _impl;
modelica_metatype _cache = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 2; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (!listEmpty(tmp4_3)) goto tmp3_end;
_cache = tmp4_1;
tmpMeta[2] = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 1: {
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 1));
tmpMeta[5] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
_e1 = tmpMeta[4];
_e2 = tmpMeta[5];
_xs = tmpMeta[3];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
_cache = omc_Ceval_cevalAstExp(threadData, _cache, _env, _e1, _impl, _msg, _info ,&_e1_1);
_cache = omc_Ceval_cevalAstExp(threadData, _cache, _env, _e2, _impl, _msg, _info ,&_e2_1);
_cache = omc_Ceval_cevalAstExpexpList(threadData, _cache, _env, _xs, _impl, _msg, _info ,&_res);
tmpMeta[3] = mmc_mk_box2(0, _e1_1, _e2_1);
tmpMeta[2] = mmc_mk_cons(tmpMeta[3], _res);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outExpTpls = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outExpTpls) { *out_outExpTpls = _outExpTpls; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalAstExpexpList(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpTpls, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _info, modelica_metatype *out_outExpTpls)
{
modelica_integer tmp1;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
_outCache = omc_Ceval_cevalAstExpexpList(threadData, _inCache, _inEnv, _inExpTpls, tmp1, _inMsg, _info, out_outExpTpls);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalAstArraydim(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inArrayDim, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_metatype _info, modelica_metatype *out_outArrayDim)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outArrayDim = NULL;
modelica_metatype tmpMeta[5] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_boolean tmp4_4;modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inArrayDim;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_metatype _env = NULL;
modelica_metatype _msg = NULL;
modelica_metatype _res = NULL;
modelica_metatype _xs = NULL;
modelica_boolean _impl;
modelica_metatype _e = NULL;
modelica_metatype _cache = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 3; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (!listEmpty(tmp4_3)) goto tmp3_end;
_cache = tmp4_1;
tmpMeta[2] = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 1: {
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],0,0) == 0) goto tmp3_end;
_xs = tmpMeta[3];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
_cache = omc_Ceval_cevalAstArraydim(threadData, _cache, _env, _xs, _impl, _msg, _info ,&_res);
tmpMeta[2] = mmc_mk_cons(_OMC_LIT5, _res);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 2: {
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],1,1) == 0) goto tmp3_end;
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
_e = tmpMeta[4];
_xs = tmpMeta[3];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
_cache = omc_Ceval_cevalAstArraydim(threadData, _cache, _env, _xs, _impl, _msg, _info ,&_res);
_cache = omc_Ceval_cevalAstExp(threadData, _cache, _env, _e, _impl, _msg, _info, NULL);
tmpMeta[3] = mmc_mk_box2(4, &Absyn_Subscript_SUBSCRIPT__desc, _e);
tmpMeta[2] = mmc_mk_cons(tmpMeta[3], _res);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outArrayDim = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outArrayDim) { *out_outArrayDim = _outArrayDim; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalAstArraydim(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inArrayDim, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _info, modelica_metatype *out_outArrayDim)
{
modelica_integer tmp1;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
_outCache = omc_Ceval_cevalAstArraydim(threadData, _inCache, _inEnv, _inArrayDim, tmp1, _inMsg, _info, out_outArrayDim);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalAstEltargs(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inAbsynElementArgLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_metatype _info, modelica_metatype *out_outAbsynElementArgLst)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outAbsynElementArgLst = NULL;
modelica_metatype tmpMeta[11] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
volatile modelica_metatype tmp4_1;volatile modelica_metatype tmp4_2;volatile modelica_metatype tmp4_3;volatile modelica_boolean tmp4_4;volatile modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inAbsynElementArgLst;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_metatype _env = NULL;
modelica_metatype _msg = NULL;
modelica_metatype _mod_1 = NULL;
modelica_metatype _mod = NULL;
modelica_metatype _res = NULL;
modelica_metatype _args = NULL;
modelica_boolean _b;
modelica_boolean _impl;
modelica_metatype _e = NULL;
modelica_metatype _stropt = NULL;
modelica_metatype _m = NULL;
modelica_metatype _cache = NULL;
modelica_metatype _mod_info = NULL;
modelica_metatype _p = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp3_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp4 < 3; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (!listEmpty(tmp4_3)) goto tmp3_end;
_cache = tmp4_1;
tmp4 += 2;
tmpMeta[2] = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 1: {
modelica_integer tmp6;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],0,6) == 0) goto tmp3_end;
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp6 = mmc_unbox_integer(tmpMeta[4]);
tmpMeta[5] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 3));
tmpMeta[6] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 4));
tmpMeta[7] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 5));
if (optionNone(tmpMeta[7])) goto tmp3_end;
tmpMeta[8] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[7]), 1));
tmpMeta[9] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 6));
tmpMeta[10] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 7));
_b = tmp6;
_e = tmpMeta[5];
_p = tmpMeta[6];
_mod = tmpMeta[8];
_stropt = tmpMeta[9];
_mod_info = tmpMeta[10];
_args = tmpMeta[3];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
_cache = omc_Ceval_cevalAstModification(threadData, _cache, _env, _mod, _impl, _msg, _info ,&_mod_1);
_cache = omc_Ceval_cevalAstEltargs(threadData, _cache, _env, _args, _impl, _msg, _info ,&_res);
tmpMeta[3] = mmc_mk_box7(3, &Absyn_ElementArg_MODIFICATION__desc, mmc_mk_boolean(_b), _e, _p, mmc_mk_some(_mod_1), _stropt, _mod_info);
tmpMeta[2] = mmc_mk_cons(tmpMeta[3], _res);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 2: {
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
_m = tmpMeta[2];
_args = tmpMeta[3];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
_cache = omc_Ceval_cevalAstEltargs(threadData, _cache, _env, _args, _impl, _msg, _info ,&_res);
tmpMeta[2] = mmc_mk_cons(_m, _res);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
tmp3_done:
(void)tmp4;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp3_done2;
goto_2:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp4 < 3) {
goto tmp3_top;
}
MMC_THROW_INTERNAL();
tmp3_done2:;
}
}
_outCache = tmpMeta[0+0];
_outAbsynElementArgLst = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outAbsynElementArgLst) { *out_outAbsynElementArgLst = _outAbsynElementArgLst; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalAstEltargs(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inAbsynElementArgLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _info, modelica_metatype *out_outAbsynElementArgLst)
{
modelica_integer tmp1;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
_outCache = omc_Ceval_cevalAstEltargs(threadData, _inCache, _inEnv, _inAbsynElementArgLst, tmp1, _inMsg, _info, out_outAbsynElementArgLst);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalAstModification(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inModification, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_metatype _info, modelica_metatype *out_outModification)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outModification = NULL;
modelica_metatype tmpMeta[6] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_boolean tmp4_4;modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inModification;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_metatype _e_1 = NULL;
modelica_metatype _e = NULL;
modelica_metatype _eltargs_1 = NULL;
modelica_metatype _eltargs = NULL;
modelica_metatype _env = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_metatype _cache = NULL;
modelica_metatype _info2 = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 2; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[3],1,2) == 0) goto tmp3_end;
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[3]), 2));
tmpMeta[5] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[3]), 3));
_eltargs = tmpMeta[2];
_e = tmpMeta[4];
_info2 = tmpMeta[5];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
_cache = omc_Ceval_cevalAstExp(threadData, _cache, _env, _e, _impl, _msg, _info ,&_e_1);
_cache = omc_Ceval_cevalAstEltargs(threadData, _cache, _env, _eltargs, _impl, _msg, _info ,&_eltargs_1);
tmpMeta[2] = mmc_mk_box3(4, &Absyn_EqMod_EQMOD__desc, _e_1, _info2);
tmpMeta[3] = mmc_mk_box3(3, &Absyn_Modification_CLASSMOD__desc, _eltargs_1, tmpMeta[2]);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[3];
goto tmp3_done;
}
case 1: {
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[3],0,0) == 0) goto tmp3_end;
_eltargs = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
_cache = omc_Ceval_cevalAstEltargs(threadData, _cache, _env, _eltargs, _impl, _msg, _info ,&_eltargs_1);
tmpMeta[2] = mmc_mk_box3(3, &Absyn_Modification_CLASSMOD__desc, _eltargs_1, _OMC_LIT6);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outModification = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outModification) { *out_outModification = _outModification; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalAstModification(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inModification, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _info, modelica_metatype *out_outModification)
{
modelica_integer tmp1;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
_outCache = omc_Ceval_cevalAstModification(threadData, _inCache, _inEnv, _inModification, tmp1, _inMsg, _info, out_outModification);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalAstModopt(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inAbsynModificationOption, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_metatype _info, modelica_metatype *out_outAbsynModificationOption)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outAbsynModificationOption = NULL;
modelica_metatype tmpMeta[3] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_boolean tmp4_4;modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inAbsynModificationOption;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_metatype _res = NULL;
modelica_metatype _mod = NULL;
modelica_metatype _env = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_metatype _cache = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 2; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (optionNone(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 1));
_mod = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
_cache = omc_Ceval_cevalAstModification(threadData, _cache, _env, _mod, _impl, _msg, _info ,&_res);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = mmc_mk_some(_res);
goto tmp3_done;
}
case 1: {
if (!optionNone(tmp4_3)) goto tmp3_end;
_cache = tmp4_1;
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = mmc_mk_none();
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outAbsynModificationOption = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outAbsynModificationOption) { *out_outAbsynModificationOption = _outAbsynModificationOption; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalAstModopt(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inAbsynModificationOption, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _info, modelica_metatype *out_outAbsynModificationOption)
{
modelica_integer tmp1;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
_outCache = omc_Ceval_cevalAstModopt(threadData, _inCache, _inEnv, _inAbsynModificationOption, tmp1, _inMsg, _info, out_outAbsynModificationOption);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalAstCitems(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inAbsynComponentItemLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_metatype _info, modelica_metatype *out_outAbsynComponentItemLst)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outAbsynComponentItemLst = NULL;
modelica_metatype tmpMeta[10] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
volatile modelica_metatype tmp4_1;volatile modelica_metatype tmp4_2;volatile modelica_metatype tmp4_3;volatile modelica_boolean tmp4_4;volatile modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inAbsynComponentItemLst;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_metatype _msg = NULL;
modelica_metatype _res = NULL;
modelica_metatype _xs = NULL;
modelica_metatype _modopt_1 = NULL;
modelica_metatype _modopt = NULL;
modelica_metatype _ad_1 = NULL;
modelica_metatype _ad = NULL;
modelica_metatype _env = NULL;
modelica_string _id = NULL;
modelica_metatype _cond = NULL;
modelica_metatype _cmt = NULL;
modelica_boolean _impl;
modelica_metatype _x = NULL;
modelica_metatype _cache = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp3_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp4 < 3; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (!listEmpty(tmp4_3)) goto tmp3_end;
_cache = tmp4_1;
tmp4 += 2;
tmpMeta[2] = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 1: {
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmpMeta[5] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[4]), 2));
tmpMeta[6] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[4]), 3));
tmpMeta[7] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[4]), 4));
tmpMeta[8] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 3));
tmpMeta[9] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 4));
_id = tmpMeta[5];
_ad = tmpMeta[6];
_modopt = tmpMeta[7];
_cond = tmpMeta[8];
_cmt = tmpMeta[9];
_xs = tmpMeta[3];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
_cache = omc_Ceval_cevalAstCitems(threadData, _cache, _env, _xs, _impl, _msg, _info ,&_res);
_cache = omc_Ceval_cevalAstModopt(threadData, _cache, _env, _modopt, _impl, _msg, _info ,&_modopt_1);
_cache = omc_Ceval_cevalAstArraydim(threadData, _cache, _env, _ad, _impl, _msg, _info ,&_ad_1);
tmpMeta[3] = mmc_mk_box4(3, &Absyn_Component_COMPONENT__desc, _id, _ad_1, _modopt_1);
tmpMeta[4] = mmc_mk_box4(3, &Absyn_ComponentItem_COMPONENTITEM__desc, tmpMeta[3], _cond, _cmt);
tmpMeta[2] = mmc_mk_cons(tmpMeta[4], _res);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 2: {
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
_x = tmpMeta[2];
_xs = tmpMeta[3];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
_cache = omc_Ceval_cevalAstCitems(threadData, _cache, _env, _xs, _impl, _msg, _info ,&_res);
tmpMeta[2] = mmc_mk_cons(_x, _res);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
tmp3_done:
(void)tmp4;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp3_done2;
goto_2:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp4 < 3) {
goto tmp3_top;
}
MMC_THROW_INTERNAL();
tmp3_done2:;
}
}
_outCache = tmpMeta[0+0];
_outAbsynComponentItemLst = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outAbsynComponentItemLst) { *out_outAbsynComponentItemLst = _outAbsynComponentItemLst; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalAstCitems(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inAbsynComponentItemLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _info, modelica_metatype *out_outAbsynComponentItemLst)
{
modelica_integer tmp1;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
_outCache = omc_Ceval_cevalAstCitems(threadData, _inCache, _inEnv, _inAbsynComponentItemLst, tmp1, _inMsg, _info, out_outAbsynComponentItemLst);
return _outCache;
}
DLLExport
modelica_metatype omc_Ceval_cevalAstElt(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inElement, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_metatype *out_outElement)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outElement = NULL;
modelica_metatype tmpMeta[11] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_boolean tmp4_4;modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inElement;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_metatype _citems_1 = NULL;
modelica_metatype _citems = NULL;
modelica_metatype _env = NULL;
modelica_boolean _f;
modelica_boolean _impl;
modelica_metatype _r = NULL;
modelica_metatype _io = NULL;
modelica_metatype _attr = NULL;
modelica_metatype _tp = NULL;
modelica_metatype _info = NULL;
modelica_metatype _c = NULL;
modelica_metatype _msg = NULL;
modelica_metatype _cache = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 1; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_integer tmp6;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,0,6) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmp6 = mmc_unbox_integer(tmpMeta[2]);
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
tmpMeta[5] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 5));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[5],3,3) == 0) goto tmp3_end;
tmpMeta[6] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[5]), 2));
tmpMeta[7] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[5]), 3));
tmpMeta[8] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[5]), 4));
tmpMeta[9] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 6));
tmpMeta[10] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 7));
_f = tmp6;
_r = tmpMeta[3];
_io = tmpMeta[4];
_attr = tmpMeta[6];
_tp = tmpMeta[7];
_citems = tmpMeta[8];
_info = tmpMeta[9];
_c = tmpMeta[10];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
_cache = omc_Ceval_cevalAstCitems(threadData, _cache, _env, _citems, _impl, _msg, _info ,&_citems_1);
tmpMeta[2] = mmc_mk_box4(6, &Absyn_ElementSpec_COMPONENTS__desc, _attr, _tp, _citems_1);
tmpMeta[3] = mmc_mk_box7(3, &Absyn_Element_ELEMENT__desc, mmc_mk_boolean(_f), _r, _io, tmpMeta[2], _info, _c);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[3];
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outElement = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outElement) { *out_outElement = _outElement; }
return _outCache;
}
modelica_metatype boxptr_Ceval_cevalAstElt(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inElement, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype *out_outElement)
{
modelica_integer tmp1;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
_outCache = omc_Ceval_cevalAstElt(threadData, _inCache, _inEnv, _inElement, tmp1, _inMsg, out_outElement);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalAstExpListList(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inAbsynExpLstLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_metatype _info, modelica_metatype *out_outAbsynExpLstLst)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outAbsynExpLstLst = NULL;
modelica_metatype tmpMeta[4] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_boolean tmp4_4;modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inAbsynExpLstLst;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_metatype _env = NULL;
modelica_metatype _msg = NULL;
modelica_metatype _e = NULL;
modelica_metatype _res = NULL;
modelica_metatype _es = NULL;
modelica_boolean _impl;
modelica_metatype _cache = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 2; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (!listEmpty(tmp4_3)) goto tmp3_end;
_cache = tmp4_1;
tmpMeta[2] = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 1: {
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
_e = tmpMeta[2];
_es = tmpMeta[3];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
_cache = omc_Ceval_cevalAstExpList(threadData, _cache, _env, _e, _impl, _msg, _info, NULL);
_cache = omc_Ceval_cevalAstExpListList(threadData, _cache, _env, _es, _impl, _msg, _info ,&_res);
tmpMeta[2] = mmc_mk_cons(_e, _res);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outAbsynExpLstLst = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outAbsynExpLstLst) { *out_outAbsynExpLstLst = _outAbsynExpLstLst; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalAstExpListList(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inAbsynExpLstLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _info, modelica_metatype *out_outAbsynExpLstLst)
{
modelica_integer tmp1;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
_outCache = omc_Ceval_cevalAstExpListList(threadData, _inCache, _inEnv, _inAbsynExpLstLst, tmp1, _inMsg, _info, out_outAbsynExpLstLst);
return _outCache;
}
DLLExport
modelica_metatype omc_Ceval_cevalAstExpList(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inAbsynExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_metatype _info, modelica_metatype *out_outAbsynExpLst)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outAbsynExpLst = NULL;
modelica_metatype tmpMeta[4] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_boolean tmp4_4;modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inAbsynExpLst;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_metatype _env = NULL;
modelica_metatype _msg = NULL;
modelica_metatype _e = NULL;
modelica_metatype _res = NULL;
modelica_metatype _es = NULL;
modelica_boolean _impl;
modelica_metatype _cache = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 2; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (!listEmpty(tmp4_3)) goto tmp3_end;
_cache = tmp4_1;
tmpMeta[2] = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 1: {
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
_e = tmpMeta[2];
_es = tmpMeta[3];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
_cache = omc_Ceval_cevalAstExp(threadData, _cache, _env, _e, _impl, _msg, _info, NULL);
_cache = omc_Ceval_cevalAstExpList(threadData, _cache, _env, _es, _impl, _msg, _info ,&_res);
tmpMeta[2] = mmc_mk_cons(_e, _res);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outAbsynExpLst = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outAbsynExpLst) { *out_outAbsynExpLst = _outAbsynExpLst; }
return _outCache;
}
modelica_metatype boxptr_Ceval_cevalAstExpList(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inAbsynExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _info, modelica_metatype *out_outAbsynExpLst)
{
modelica_integer tmp1;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
_outCache = omc_Ceval_cevalAstExpList(threadData, _inCache, _inEnv, _inAbsynExpLst, tmp1, _inMsg, _info, out_outAbsynExpLst);
return _outCache;
}
DLLExport
modelica_metatype omc_Ceval_cevalAstExp(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExp, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_metatype _info, modelica_metatype *out_outExp)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outExp = NULL;
modelica_metatype tmpMeta[10] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
volatile modelica_metatype tmp4_1;volatile modelica_metatype tmp4_2;volatile modelica_metatype tmp4_3;volatile modelica_boolean tmp4_4;volatile modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExp;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_metatype _e = NULL;
modelica_metatype _e1_1 = NULL;
modelica_metatype _e2_1 = NULL;
modelica_metatype _e1 = NULL;
modelica_metatype _e2 = NULL;
modelica_metatype _e_1 = NULL;
modelica_metatype _cond_1 = NULL;
modelica_metatype _then_1 = NULL;
modelica_metatype _else_1 = NULL;
modelica_metatype _cond = NULL;
modelica_metatype _then_ = NULL;
modelica_metatype _else_ = NULL;
modelica_metatype _exp = NULL;
modelica_metatype _e3_1 = NULL;
modelica_metatype _e3 = NULL;
modelica_metatype _env = NULL;
modelica_metatype _op = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_metatype _nest_1 = NULL;
modelica_metatype _nest = NULL;
modelica_metatype _expl_1 = NULL;
modelica_metatype _expl = NULL;
modelica_metatype _cache = NULL;
modelica_metatype _daeExp = NULL;
modelica_metatype _lstExpl_1 = NULL;
modelica_metatype _lstExpl = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp3_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp4 < 20; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,0,1) == 0) goto tmp3_end;
_e = tmp4_3;
_cache = tmp4_1;
tmp4 += 19;
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _e;
goto tmp3_done;
}
case 1: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,1,1) == 0) goto tmp3_end;
_e = tmp4_3;
_cache = tmp4_1;
tmp4 += 18;
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _e;
goto tmp3_done;
}
case 2: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,2,1) == 0) goto tmp3_end;
_e = tmp4_3;
_cache = tmp4_1;
tmp4 += 17;
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _e;
goto tmp3_done;
}
case 3: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,3,1) == 0) goto tmp3_end;
_e = tmp4_3;
_cache = tmp4_1;
tmp4 += 16;
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _e;
goto tmp3_done;
}
case 4: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,4,1) == 0) goto tmp3_end;
_e = tmp4_3;
_cache = tmp4_1;
tmp4 += 15;
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _e;
goto tmp3_done;
}
case 5: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,5,3) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_e1 = tmpMeta[2];
_op = tmpMeta[3];
_e2 = tmpMeta[4];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 14;
_cache = omc_Ceval_cevalAstExp(threadData, _cache, _env, _e1, _impl, _msg, _info ,&_e1_1);
_cache = omc_Ceval_cevalAstExp(threadData, _cache, _env, _e2, _impl, _msg, _info ,&_e2_1);
tmpMeta[2] = mmc_mk_box4(8, &Absyn_Exp_BINARY__desc, _e1_1, _op, _e2_1);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 6: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,6,2) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
_op = tmpMeta[2];
_e = tmpMeta[3];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 13;
_cache = omc_Ceval_cevalAstExp(threadData, _cache, _env, _e, _impl, _msg, _info ,&_e_1);
tmpMeta[2] = mmc_mk_box3(9, &Absyn_Exp_UNARY__desc, _op, _e_1);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 7: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,7,3) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_e1 = tmpMeta[2];
_op = tmpMeta[3];
_e2 = tmpMeta[4];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 12;
_cache = omc_Ceval_cevalAstExp(threadData, _cache, _env, _e1, _impl, _msg, _info ,&_e1_1);
_cache = omc_Ceval_cevalAstExp(threadData, _cache, _env, _e2, _impl, _msg, _info ,&_e2_1);
tmpMeta[2] = mmc_mk_box4(10, &Absyn_Exp_LBINARY__desc, _e1_1, _op, _e2_1);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 8: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,8,2) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
_op = tmpMeta[2];
_e = tmpMeta[3];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 11;
_cache = omc_Ceval_cevalAstExp(threadData, _cache, _env, _e, _impl, _msg, _info ,&_e_1);
tmpMeta[2] = mmc_mk_box3(11, &Absyn_Exp_LUNARY__desc, _op, _e_1);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 9: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,9,3) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_e1 = tmpMeta[2];
_op = tmpMeta[3];
_e2 = tmpMeta[4];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 10;
_cache = omc_Ceval_cevalAstExp(threadData, _cache, _env, _e1, _impl, _msg, _info ,&_e1_1);
_cache = omc_Ceval_cevalAstExp(threadData, _cache, _env, _e2, _impl, _msg, _info ,&_e2_1);
tmpMeta[2] = mmc_mk_box4(12, &Absyn_Exp_RELATION__desc, _e1_1, _op, _e2_1);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 10: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,10,4) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
tmpMeta[5] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 5));
_cond = tmpMeta[2];
_then_ = tmpMeta[3];
_else_ = tmpMeta[4];
_nest = tmpMeta[5];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 9;
_cache = omc_Ceval_cevalAstExp(threadData, _cache, _env, _cond, _impl, _msg, _info ,&_cond_1);
_cache = omc_Ceval_cevalAstExp(threadData, _cache, _env, _then_, _impl, _msg, _info ,&_then_1);
_cache = omc_Ceval_cevalAstExp(threadData, _cache, _env, _else_, _impl, _msg, _info ,&_else_1);
_cache = omc_Ceval_cevalAstExpexpList(threadData, _cache, _env, _nest, _impl, _msg, _info ,&_nest_1);
tmpMeta[2] = mmc_mk_box5(13, &Absyn_Exp_IFEXP__desc, _cond_1, _then_1, _else_1, _nest_1);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 11: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,11,3) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],2,2) == 0) goto tmp3_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
if (4 != MMC_STRLEN(tmpMeta[3]) || strcmp(MMC_STRINGDATA(_OMC_LIT9), MMC_STRINGDATA(tmpMeta[3])) != 0) goto tmp3_end;
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 3));
if (!listEmpty(tmpMeta[4])) goto tmp3_end;
tmpMeta[5] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[5],0,2) == 0) goto tmp3_end;
tmpMeta[6] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[5]), 2));
if (listEmpty(tmpMeta[6])) goto tmp3_end;
tmpMeta[7] = MMC_CAR(tmpMeta[6]);
tmpMeta[8] = MMC_CDR(tmpMeta[6]);
if (!listEmpty(tmpMeta[8])) goto tmp3_end;
tmpMeta[9] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[5]), 3));
if (!listEmpty(tmpMeta[9])) goto tmp3_end;
_e = tmpMeta[7];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
_cache = omc_Static_elabExp(threadData, _cache, _env, _e, _impl, 1, _OMC_LIT7, _info ,&_daeExp ,NULL);
tmpMeta[5] = omc_Ceval_ceval(threadData, _cache, _env, _daeExp, _impl, _msg, ((modelica_integer) 0), &tmpMeta[2]);
_cache = tmpMeta[5];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],12,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[3],6,1) == 0) goto goto_2;
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[3]), 2));
_exp = tmpMeta[4];
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _exp;
goto tmp3_done;
}
case 12: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,11,3) == 0) goto tmp3_end;
_e = tmp4_3;
_cache = tmp4_1;
tmp4 += 7;
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _e;
goto tmp3_done;
}
case 13: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,13,1) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
_expl = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 6;
_cache = omc_Ceval_cevalAstExpList(threadData, _cache, _env, _expl, _impl, _msg, _info ,&_expl_1);
tmpMeta[2] = mmc_mk_box2(16, &Absyn_Exp_ARRAY__desc, _expl_1);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 14: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,14,1) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
_lstExpl = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 5;
_cache = omc_Ceval_cevalAstExpListList(threadData, _cache, _env, _lstExpl, _impl, _msg, _info ,&_lstExpl_1);
tmpMeta[2] = mmc_mk_box2(17, &Absyn_Exp_MATRIX__desc, _lstExpl_1);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 15: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,15,3) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (optionNone(tmpMeta[3])) goto tmp3_end;
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[3]), 1));
tmpMeta[5] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_e1 = tmpMeta[2];
_e2 = tmpMeta[4];
_e3 = tmpMeta[5];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 4;
_cache = omc_Ceval_cevalAstExp(threadData, _cache, _env, _e1, _impl, _msg, _info ,&_e1_1);
_cache = omc_Ceval_cevalAstExp(threadData, _cache, _env, _e2, _impl, _msg, _info ,&_e2_1);
_cache = omc_Ceval_cevalAstExp(threadData, _cache, _env, _e3, _impl, _msg, _info ,&_e3_1);
tmpMeta[2] = mmc_mk_box4(18, &Absyn_Exp_RANGE__desc, _e1_1, mmc_mk_some(_e2_1), _e3_1);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 16: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,15,3) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (!optionNone(tmpMeta[3])) goto tmp3_end;
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_e1 = tmpMeta[2];
_e3 = tmpMeta[4];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 3;
_cache = omc_Ceval_cevalAstExp(threadData, _cache, _env, _e1, _impl, _msg, _info ,&_e1_1);
_cache = omc_Ceval_cevalAstExp(threadData, _cache, _env, _e3, _impl, _msg, _info ,&_e3_1);
tmpMeta[2] = mmc_mk_box4(18, &Absyn_Exp_RANGE__desc, _e1_1, mmc_mk_none(), _e3_1);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 17: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,16,1) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
_expl = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 2;
_cache = omc_Ceval_cevalAstExpList(threadData, _cache, _env, _expl, _impl, _msg, _info ,&_expl_1);
tmpMeta[2] = mmc_mk_box2(19, &Absyn_Exp_TUPLE__desc, _expl_1);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 18: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,17,0) == 0) goto tmp3_end;
_cache = tmp4_1;
tmp4 += 1;
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _OMC_LIT8;
goto tmp3_done;
}
case 19: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,18,1) == 0) goto tmp3_end;
_e = tmp4_3;
_cache = tmp4_1;
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _e;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
tmp3_done:
(void)tmp4;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp3_done2;
goto_2:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp4 < 20) {
goto tmp3_top;
}
MMC_THROW_INTERNAL();
tmp3_done2:;
}
}
_outCache = tmpMeta[0+0];
_outExp = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outExp) { *out_outExp = _outExp; }
return _outCache;
}
modelica_metatype boxptr_Ceval_cevalAstExp(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExp, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _info, modelica_metatype *out_outExp)
{
modelica_integer tmp1;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
_outCache = omc_Ceval_cevalAstExp(threadData, _inCache, _inEnv, _inExp, tmp1, _inMsg, _info, out_outExp);
return _outCache;
}
DLLExport
modelica_metatype omc_Ceval_cevalSimpleWithFunctionTreeReturnExp(threadData_t *threadData, modelica_metatype _exp, modelica_metatype _functions)
{
modelica_metatype _oexp = NULL;
modelica_metatype _val = NULL;
modelica_metatype _cache = NULL;
modelica_metatype _structuralParameters = NULL;
modelica_metatype _functionTree = NULL;
modelica_metatype tmpMeta[1] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_structuralParameters = _OMC_LIT11;
_functionTree = omc_Mutable_create(threadData, _functions);
tmpMeta[0] = mmc_mk_box5(3, &FCore_Cache_CACHE__desc, mmc_mk_none(), _functionTree, _structuralParameters, _OMC_LIT12);
_cache = tmpMeta[0];
omc_Ceval_ceval(threadData, _cache, omc_FGraph_empty(threadData), _exp, 0, _OMC_LIT13, ((modelica_integer) 0) ,&_val);
_oexp = omc_ValuesUtil_valueExp(threadData, _val, mmc_mk_some(_exp));
_return: OMC_LABEL_UNUSED
return _oexp;
}
DLLExport
modelica_metatype omc_Ceval_cevalSimple(threadData_t *threadData, modelica_metatype _exp)
{
modelica_metatype _val = NULL;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
omc_Ceval_ceval(threadData, omc_FCore_emptyCache(threadData), omc_FGraph_empty(threadData), _exp, 0, _OMC_LIT13, ((modelica_integer) 0) ,&_val);
_return: OMC_LABEL_UNUSED
return _val;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_backpatchArrayReduction3(threadData_t *threadData, modelica_metatype _inVals, modelica_metatype _inDims, modelica_fnptr _makeSequence)
{
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[3] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp3_1;modelica_metatype tmp3_2;
tmp3_1 = _inVals;
tmp3_2 = _inDims;
{
modelica_integer _dim;
modelica_metatype _valMatrix = NULL;
modelica_metatype _vals = NULL;
modelica_metatype _dims = NULL;
volatile mmc_switch_type tmp3;
int tmp4;
tmp3 = 0;
for (; tmp3 < 2; tmp3++) {
switch (MMC_SWITCH_CAST(tmp3)) {
case 0: {
if (listEmpty(tmp3_2)) goto tmp2_end;
tmpMeta[1] = MMC_CAR(tmp3_2);
tmpMeta[2] = MMC_CDR(tmp3_2);
if (!listEmpty(tmpMeta[2])) goto tmp2_end;
_vals = tmp3_1;
tmpMeta[0] = (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_makeSequence), 2))) ? ((modelica_metatype(*)(threadData_t*, modelica_metatype, modelica_metatype)) (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_makeSequence), 1)))) (threadData, (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_makeSequence), 2))), _vals) : ((modelica_metatype(*)(threadData_t*, modelica_metatype)) (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_makeSequence), 1)))) (threadData, _vals);
goto tmp2_done;
}
case 1: {
modelica_integer tmp5;
if (listEmpty(tmp3_2)) goto tmp2_end;
tmpMeta[1] = MMC_CAR(tmp3_2);
tmpMeta[2] = MMC_CDR(tmp3_2);
tmp5 = mmc_unbox_integer(tmpMeta[1]);
_dim = tmp5;
_dims = tmpMeta[2];
_vals = tmp3_1;
_valMatrix = omc_List_partition(threadData, _vals, _dim);
_vals = omc_List_map(threadData, _valMatrix, ((modelica_fnptr) _makeSequence));
_inVals = _vals;
_inDims = _dims;
goto _tailrecursive;
goto tmp2_done;
}
}
goto tmp2_end;
tmp2_end: ;
}
goto goto_1;
goto_1:;
MMC_THROW_INTERNAL();
goto tmp2_done;
tmp2_done:;
}
}
_outValue = tmpMeta[0];
_return: OMC_LABEL_UNUSED
return _outValue;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_backpatchArrayReduction(threadData_t *threadData, modelica_metatype _path, modelica_metatype _iterType, modelica_metatype _inValue, modelica_metatype _dims)
{
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[3] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp3_1;modelica_metatype tmp3_2;modelica_metatype tmp3_3;modelica_metatype tmp3_4;
tmp3_1 = _path;
tmp3_2 = _iterType;
tmp3_3 = _inValue;
tmp3_4 = _dims;
{
modelica_metatype _vals = NULL;
modelica_metatype _value = NULL;
volatile mmc_switch_type tmp3;
int tmp4;
tmp3 = 0;
for (; tmp3 < 5; tmp3++) {
switch (MMC_SWITCH_CAST(tmp3)) {
case 0: {
if (listEmpty(tmp3_4)) goto tmp2_end;
tmpMeta[1] = MMC_CAR(tmp3_4);
tmpMeta[2] = MMC_CDR(tmp3_4);
if (!listEmpty(tmpMeta[2])) goto tmp2_end;
_value = tmp3_3;
tmpMeta[0] = _value;
goto tmp2_done;
}
case 1: {
if (mmc__uniontype__metarecord__typedef__equal(tmp3_2,0,0) == 0) goto tmp2_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp3_3,5,2) == 0) goto tmp2_end;
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_3), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,1,1) == 0) goto tmp2_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
if (5 != MMC_STRLEN(tmpMeta[2]) || strcmp(MMC_STRINGDATA(_OMC_LIT14), MMC_STRINGDATA(tmpMeta[2])) != 0) goto tmp2_end;
_vals = tmpMeta[1];
tmpMeta[0] = omc_Ceval_backpatchArrayReduction3(threadData, _vals, listReverse(_dims), boxvar_ValuesUtil_makeArray);
goto tmp2_done;
}
case 2: {
if (mmc__uniontype__metarecord__typedef__equal(tmp3_2,0,0) == 0) goto tmp2_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp3_3,6,1) == 0) goto tmp2_end;
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_3), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,1,1) == 0) goto tmp2_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
if (4 != MMC_STRLEN(tmpMeta[2]) || strcmp(MMC_STRINGDATA(_OMC_LIT15), MMC_STRINGDATA(tmpMeta[2])) != 0) goto tmp2_end;
_vals = tmpMeta[1];
tmpMeta[0] = omc_Ceval_backpatchArrayReduction3(threadData, _vals, listReverse(_dims), boxvar_ValuesUtil_makeList);
goto tmp2_done;
}
case 3: {
if (mmc__uniontype__metarecord__typedef__equal(tmp3_2,0,0) == 0) goto tmp2_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp3_3,6,1) == 0) goto tmp2_end;
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_3), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,1,1) == 0) goto tmp2_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
if (11 != MMC_STRLEN(tmpMeta[2]) || strcmp(MMC_STRINGDATA(_OMC_LIT16), MMC_STRINGDATA(tmpMeta[2])) != 0) goto tmp2_end;
_vals = tmpMeta[1];
tmpMeta[0] = omc_Ceval_backpatchArrayReduction3(threadData, _vals, listReverse(_dims), boxvar_ValuesUtil_makeList);
goto tmp2_done;
}
case 4: {
tmpMeta[0] = _inValue;
goto tmp2_done;
}
}
goto tmp2_end;
tmp2_end: ;
}
goto goto_1;
goto_1:;
MMC_THROW_INTERNAL();
goto tmp2_done;
tmp2_done:;
}
}
_outValue = tmpMeta[0];
_return: OMC_LABEL_UNUSED
return _outValue;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_extendFrameForIterators(threadData_t *threadData, modelica_metatype _inEnv, modelica_metatype _inNames, modelica_metatype _inVals, modelica_metatype _inTys)
{
modelica_metatype _outEnv = NULL;
modelica_metatype tmpMeta[7] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp3_1;modelica_metatype tmp3_2;modelica_metatype tmp3_3;modelica_metatype tmp3_4;
tmp3_1 = _inEnv;
tmp3_2 = _inNames;
tmp3_3 = _inVals;
tmp3_4 = _inTys;
{
modelica_string _name = NULL;
modelica_metatype _val = NULL;
modelica_metatype _ty = NULL;
modelica_metatype _env = NULL;
modelica_metatype _names = NULL;
modelica_metatype _vals = NULL;
modelica_metatype _tys = NULL;
volatile mmc_switch_type tmp3;
int tmp4;
tmp3 = 0;
for (; tmp3 < 2; tmp3++) {
switch (MMC_SWITCH_CAST(tmp3)) {
case 0: {
if (!listEmpty(tmp3_2)) goto tmp2_end;
if (!listEmpty(tmp3_3)) goto tmp2_end;
if (!listEmpty(tmp3_4)) goto tmp2_end;
_env = tmp3_1;
tmpMeta[0] = _env;
goto tmp2_done;
}
case 1: {
if (listEmpty(tmp3_2)) goto tmp2_end;
tmpMeta[1] = MMC_CAR(tmp3_2);
tmpMeta[2] = MMC_CDR(tmp3_2);
if (listEmpty(tmp3_3)) goto tmp2_end;
tmpMeta[3] = MMC_CAR(tmp3_3);
tmpMeta[4] = MMC_CDR(tmp3_3);
if (listEmpty(tmp3_4)) goto tmp2_end;
tmpMeta[5] = MMC_CAR(tmp3_4);
tmpMeta[6] = MMC_CDR(tmp3_4);
_name = tmpMeta[1];
_names = tmpMeta[2];
_val = tmpMeta[3];
_vals = tmpMeta[4];
_ty = tmpMeta[5];
_tys = tmpMeta[6];
_env = tmp3_1;
tmpMeta[1] = mmc_mk_box3(5, &DAE_Binding_VALBOUND__desc, _val, _OMC_LIT17);
_env = omc_FGraph_addForIterator(threadData, _env, _name, _ty, tmpMeta[1], _OMC_LIT18, _OMC_LIT20);
_inEnv = _env;
_inNames = _names;
_inVals = _vals;
_inTys = _tys;
goto _tailrecursive;
goto tmp2_done;
}
}
goto tmp2_end;
tmp2_end: ;
}
goto goto_1;
goto_1:;
MMC_THROW_INTERNAL();
goto tmp2_done;
tmp2_done:;
}
}
_outEnv = tmpMeta[0];
_return: OMC_LABEL_UNUSED
return _outEnv;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_filterReductionIterator(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_string _id, modelica_metatype _ty, modelica_metatype _inVals, modelica_metatype _guardExp, modelica_boolean _impl, modelica_metatype _msg, modelica_integer _numIter, modelica_metatype *out_outVals)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outVals = NULL;
modelica_metatype tmpMeta[5] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_metatype tmp4_4;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inVals;
tmp4_4 = _guardExp;
{
modelica_metatype _exp = NULL;
modelica_metatype _val = NULL;
modelica_boolean _b;
modelica_metatype _new_env = NULL;
modelica_metatype _env = NULL;
modelica_metatype _cache = NULL;
modelica_metatype _vals = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 3; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (!listEmpty(tmp4_3)) goto tmp3_end;
_cache = tmp4_1;
tmpMeta[2] = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 1: {
modelica_integer tmp6;
modelica_boolean tmp7;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (optionNone(tmp4_4)) goto tmp3_end;
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_4), 1));
_val = tmpMeta[2];
_vals = tmpMeta[3];
_exp = tmpMeta[4];
_cache = tmp4_1;
_env = tmp4_2;
tmpMeta[2] = mmc_mk_box3(5, &DAE_Binding_VALBOUND__desc, _val, _OMC_LIT17);
_new_env = omc_FGraph_addForIterator(threadData, _env, _id, _ty, tmpMeta[2], _OMC_LIT18, _OMC_LIT20);
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _new_env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],3,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp6 = mmc_unbox_integer(tmpMeta[3]);
_b = tmp6;
_cache = omc_Ceval_filterReductionIterator(threadData, _cache, _env, _id, _ty, _vals, _guardExp, _impl, _msg, _numIter ,&_vals);
tmp7 = (modelica_boolean)_b;
if(tmp7)
{
tmpMeta[2] = mmc_mk_cons(_val, _vals);
tmpMeta[3] = tmpMeta[2];
}
else
{
tmpMeta[3] = _vals;
}
_vals = tmpMeta[3];
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _vals;
goto tmp3_done;
}
case 2: {
if (!optionNone(tmp4_4)) goto tmp3_end;
_cache = tmp4_1;
_vals = tmp4_3;
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _vals;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outVals = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outVals) { *out_outVals = _outVals; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_filterReductionIterator(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _id, modelica_metatype _ty, modelica_metatype _inVals, modelica_metatype _guardExp, modelica_metatype _impl, modelica_metatype _msg, modelica_metatype _numIter, modelica_metatype *out_outVals)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_impl);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_filterReductionIterator(threadData, _inCache, _inEnv, _id, _ty, _inVals, _guardExp, tmp1, _msg, tmp2, out_outVals);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalReductionIterators(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIterators, modelica_boolean _impl, modelica_metatype _msg, modelica_integer _numIter, modelica_metatype *out_vals, modelica_metatype *out_names, modelica_metatype *out_dims, modelica_metatype *out_tys)
{
modelica_metatype _outCache = NULL;
modelica_metatype _vals = NULL;
modelica_metatype _names = NULL;
modelica_metatype _dims = NULL;
modelica_metatype _tys = NULL;
modelica_metatype tmpMeta[11] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inIterators;
{
modelica_metatype _val = NULL;
modelica_metatype _iterVals = NULL;
modelica_integer _dim;
modelica_metatype _ty = NULL;
modelica_string _id = NULL;
modelica_metatype _exp = NULL;
modelica_metatype _guardExp = NULL;
modelica_metatype _cache = NULL;
modelica_metatype _env = NULL;
modelica_metatype _iterators = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 2; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (!listEmpty(tmp4_3)) goto tmp3_end;
_cache = tmp4_1;
tmpMeta[5] = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[6] = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[7] = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[8] = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[5];
tmpMeta[0+2] = tmpMeta[6];
tmpMeta[0+3] = tmpMeta[7];
tmpMeta[0+4] = tmpMeta[8];
goto tmp3_done;
}
case 1: {
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[5] = MMC_CAR(tmp4_3);
tmpMeta[6] = MMC_CDR(tmp4_3);
tmpMeta[7] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[5]), 2));
tmpMeta[8] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[5]), 3));
tmpMeta[9] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[5]), 4));
tmpMeta[10] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[5]), 5));
_id = tmpMeta[7];
_exp = tmpMeta[8];
_guardExp = tmpMeta[9];
_ty = tmpMeta[10];
_iterators = tmpMeta[6];
_cache = tmp4_1;
_env = tmp4_2;
_cache = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter ,&_val);
_iterVals = omc_ValuesUtil_arrayOrListVals(threadData, _val, 1);
_cache = omc_Ceval_filterReductionIterator(threadData, _cache, _env, _id, _ty, _iterVals, _guardExp, _impl, _msg, _numIter ,&_iterVals);
_dim = listLength(_iterVals);
_cache = omc_Ceval_cevalReductionIterators(threadData, _cache, _env, _iterators, _impl, _msg, _numIter ,&_vals ,&_names ,&_dims ,&_tys);
tmpMeta[5] = mmc_mk_cons(_iterVals, _vals);
tmpMeta[6] = mmc_mk_cons(_id, _names);
tmpMeta[7] = mmc_mk_cons(mmc_mk_integer(_dim), _dims);
tmpMeta[8] = mmc_mk_cons(_ty, _tys);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[5];
tmpMeta[0+2] = tmpMeta[6];
tmpMeta[0+3] = tmpMeta[7];
tmpMeta[0+4] = tmpMeta[8];
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_vals = tmpMeta[0+1];
_names = tmpMeta[0+2];
_dims = tmpMeta[0+3];
_tys = tmpMeta[0+4];
_return: OMC_LABEL_UNUSED
if (out_vals) { *out_vals = _vals; }
if (out_names) { *out_names = _names; }
if (out_dims) { *out_dims = _dims; }
if (out_tys) { *out_tys = _tys; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalReductionIterators(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIterators, modelica_metatype _impl, modelica_metatype _msg, modelica_metatype _numIter, modelica_metatype *out_vals, modelica_metatype *out_names, modelica_metatype *out_dims, modelica_metatype *out_tys)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_impl);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalReductionIterators(threadData, _inCache, _inEnv, _inIterators, tmp1, _msg, tmp2, out_vals, out_names, out_dims, out_tys);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_valueCons(threadData_t *threadData, modelica_metatype _inV1, modelica_metatype _inV2)
{
modelica_metatype _res = NULL;
modelica_metatype tmpMeta[3] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp3_1;modelica_metatype tmp3_2;
tmp3_1 = _inV1;
tmp3_2 = _inV2;
{
modelica_metatype _vals = NULL;
modelica_metatype _v1 = NULL;
volatile mmc_switch_type tmp3;
int tmp4;
tmp3 = 0;
for (; tmp3 < 2; tmp3++) {
switch (MMC_SWITCH_CAST(tmp3)) {
case 0: {
if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,14,1) == 0) goto tmp2_end;
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmp3_2,6,1) == 0) goto tmp2_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_2), 2));
_v1 = tmpMeta[1];
_vals = tmpMeta[2];
tmpMeta[1] = mmc_mk_cons(_v1, _vals);
tmpMeta[2] = mmc_mk_box2(9, &Values_Value_LIST__desc, tmpMeta[1]);
tmpMeta[0] = tmpMeta[2];
goto tmp2_done;
}
case 1: {
if (mmc__uniontype__metarecord__typedef__equal(tmp3_2,6,1) == 0) goto tmp2_end;
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_2), 2));
_vals = tmpMeta[1];
_v1 = tmp3_1;
tmpMeta[1] = mmc_mk_cons(_v1, _vals);
tmpMeta[2] = mmc_mk_box2(9, &Values_Value_LIST__desc, tmpMeta[1]);
tmpMeta[0] = tmpMeta[2];
goto tmp2_done;
}
}
goto tmp2_end;
tmp2_end: ;
}
goto goto_1;
goto_1:;
MMC_THROW_INTERNAL();
goto tmp2_done;
tmp2_done:;
}
}
_res = tmpMeta[0];
_return: OMC_LABEL_UNUSED
return _res;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_valueArrayCons(threadData_t *threadData, modelica_metatype _v1, modelica_metatype _v2)
{
modelica_metatype _res = NULL;
modelica_metatype tmpMeta[5] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp3_1;
tmp3_1 = _v2;
{
modelica_metatype _vals = NULL;
modelica_integer _dim_size;
modelica_metatype _rest_dims = NULL;
volatile mmc_switch_type tmp3;
int tmp4;
tmp3 = 0;
for (; tmp3 < 2; tmp3++) {
switch (MMC_SWITCH_CAST(tmp3)) {
case 0: {
modelica_integer tmp5;
if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,5,2) == 0) goto tmp2_end;
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 3));
if (listEmpty(tmpMeta[2])) goto tmp2_end;
tmpMeta[3] = MMC_CAR(tmpMeta[2]);
tmpMeta[4] = MMC_CDR(tmpMeta[2]);
tmp5 = mmc_unbox_integer(tmpMeta[3]);
_vals = tmpMeta[1];
_dim_size = tmp5;
_rest_dims = tmpMeta[4];
_dim_size = ((modelica_integer) 1) + _dim_size;
tmpMeta[1] = mmc_mk_cons(_v1, _vals);
tmpMeta[2] = mmc_mk_cons(mmc_mk_integer(_dim_size), _rest_dims);
tmpMeta[3] = mmc_mk_box3(8, &Values_Value_ARRAY__desc, tmpMeta[1], tmpMeta[2]);
tmpMeta[0] = tmpMeta[3];
goto tmp2_done;
}
case 1: {
tmpMeta[1] = mmc_mk_cons(_v1, mmc_mk_cons(_v2, MMC_REFSTRUCTLIT(mmc_nil)));
tmpMeta[2] = mmc_mk_box3(8, &Values_Value_ARRAY__desc, tmpMeta[1], _OMC_LIT21);
tmpMeta[0] = tmpMeta[2];
goto tmp2_done;
}
}
goto tmp2_end;
tmp2_end: ;
}
goto goto_1;
goto_1:;
MMC_THROW_INTERNAL();
goto tmp2_done;
tmp2_done:;
}
}
_res = tmpMeta[0];
_return: OMC_LABEL_UNUSED
return _res;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalReductionFold(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _opPath, modelica_metatype _inCurValue, modelica_metatype _inValue, modelica_string _foldName, modelica_string _resultName, modelica_metatype _foldExp, modelica_metatype _exprType, modelica_boolean _impl, modelica_metatype _msg, modelica_integer _numIter, modelica_metatype *out_result)
{
modelica_metatype _newCache = NULL;
modelica_metatype _result = NULL;
modelica_metatype tmpMeta[4] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_metatype tmp4_4;
tmp4_1 = _inCache;
tmp4_2 = _opPath;
tmp4_3 = _inCurValue;
tmp4_4 = _foldExp;
{
modelica_metatype _exp = NULL;
modelica_metatype _value = NULL;
modelica_metatype _cache = NULL;
modelica_metatype _env = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 5; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (optionNone(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 1));
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,1,1) == 0) goto tmp3_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_2), 2));
if (5 != MMC_STRLEN(tmpMeta[3]) || strcmp(MMC_STRINGDATA(_OMC_LIT14), MMC_STRINGDATA(tmpMeta[3])) != 0) goto tmp3_end;
_value = tmpMeta[2];
_cache = tmp4_1;
_value = omc_Ceval_valueArrayCons(threadData, omc_ValuesUtil_unboxIfBoxedVal(threadData, _inValue), _value);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = mmc_mk_some(_value);
goto tmp3_done;
}
case 1: {
if (optionNone(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 1));
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,1,1) == 0) goto tmp3_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_2), 2));
if (4 != MMC_STRLEN(tmpMeta[3]) || strcmp(MMC_STRINGDATA(_OMC_LIT15), MMC_STRINGDATA(tmpMeta[3])) != 0) goto tmp3_end;
_value = tmpMeta[2];
_cache = tmp4_1;
_value = omc_Ceval_valueCons(threadData, omc_ValuesUtil_unboxIfBoxedVal(threadData, _inValue), _value);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = mmc_mk_some(_value);
goto tmp3_done;
}
case 2: {
if (optionNone(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 1));
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,1,1) == 0) goto tmp3_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_2), 2));
if (11 != MMC_STRLEN(tmpMeta[3]) || strcmp(MMC_STRINGDATA(_OMC_LIT16), MMC_STRINGDATA(tmpMeta[3])) != 0) goto tmp3_end;
_value = tmpMeta[2];
_cache = tmp4_1;
_value = omc_Ceval_valueCons(threadData, omc_ValuesUtil_unboxIfBoxedVal(threadData, _inValue), _value);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = mmc_mk_some(_value);
goto tmp3_done;
}
case 3: {
if (!optionNone(tmp4_3)) goto tmp3_end;
_cache = tmp4_1;
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = mmc_mk_some(_inValue);
goto tmp3_done;
}
case 4: {
if (optionNone(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 1));
if (optionNone(tmp4_4)) goto tmp3_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_4), 1));
_value = tmpMeta[2];
_exp = tmpMeta[3];
_cache = tmp4_1;
tmpMeta[2] = mmc_mk_box3(5, &DAE_Binding_VALBOUND__desc, _inValue, _OMC_LIT17);
_env = omc_FGraph_addForIterator(threadData, _inEnv, _foldName, _exprType, tmpMeta[2], _OMC_LIT18, _OMC_LIT20);
tmpMeta[2] = mmc_mk_box3(5, &DAE_Binding_VALBOUND__desc, _value, _OMC_LIT17);
_env = omc_FGraph_addForIterator(threadData, _env, _resultName, _exprType, tmpMeta[2], _OMC_LIT18, _OMC_LIT20);
_cache = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter ,&_value);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = mmc_mk_some(_value);
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_newCache = tmpMeta[0+0];
_result = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_result) { *out_result = _result; }
return _newCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalReductionFold(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _opPath, modelica_metatype _inCurValue, modelica_metatype _inValue, modelica_metatype _foldName, modelica_metatype _resultName, modelica_metatype _foldExp, modelica_metatype _exprType, modelica_metatype _impl, modelica_metatype _msg, modelica_metatype _numIter, modelica_metatype *out_result)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _newCache = NULL;
tmp1 = mmc_unbox_integer(_impl);
tmp2 = mmc_unbox_integer(_numIter);
_newCache = omc_Ceval_cevalReductionFold(threadData, _inCache, _inEnv, _opPath, _inCurValue, _inValue, _foldName, _resultName, _foldExp, _exprType, tmp1, _msg, tmp2, out_result);
return _newCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalReductionEvalAndFold(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _opPath, modelica_metatype _inCurValue, modelica_metatype _exp, modelica_metatype _exprType, modelica_string _foldName, modelica_string _resultName, modelica_metatype _foldExp, modelica_boolean _impl, modelica_metatype _msg, modelica_integer _numIter, modelica_metatype *out_result)
{
modelica_metatype _newCache = NULL;
modelica_metatype _result = NULL;
modelica_metatype tmpMeta[2] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inCurValue;
{
modelica_metatype _value = NULL;
modelica_metatype _curValue = NULL;
modelica_metatype _cache = NULL;
modelica_metatype _env = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 1; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
_cache = tmp4_1;
_env = tmp4_2;
_curValue = tmp4_3;
_cache = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter ,&_value);
tmpMeta[0+0] = omc_Ceval_cevalReductionFold(threadData, _cache, _env, _opPath, _curValue, _value, _foldName, _resultName, _foldExp, _exprType, _impl, _msg, _numIter, &tmpMeta[0+1]);
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_newCache = tmpMeta[0+0];
_result = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_result) { *out_result = _result; }
return _newCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalReductionEvalAndFold(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _opPath, modelica_metatype _inCurValue, modelica_metatype _exp, modelica_metatype _exprType, modelica_metatype _foldName, modelica_metatype _resultName, modelica_metatype _foldExp, modelica_metatype _impl, modelica_metatype _msg, modelica_metatype _numIter, modelica_metatype *out_result)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _newCache = NULL;
tmp1 = mmc_unbox_integer(_impl);
tmp2 = mmc_unbox_integer(_numIter);
_newCache = omc_Ceval_cevalReductionEvalAndFold(threadData, _inCache, _inEnv, _opPath, _inCurValue, _exp, _exprType, _foldName, _resultName, _foldExp, tmp1, _msg, tmp2, out_result);
return _newCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalReduction(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _opPath, modelica_metatype _inCurValue, modelica_metatype _exp, modelica_metatype _exprType, modelica_string _foldName, modelica_string _resultName, modelica_metatype _foldExp, modelica_metatype _iteratorNames, modelica_metatype _inValueMatrix, modelica_metatype _iterTypes, modelica_boolean _impl, modelica_metatype _msg, modelica_integer _numIter, modelica_metatype *out_result)
{
modelica_metatype _newCache = NULL;
modelica_metatype _result = NULL;
modelica_metatype tmpMeta[6] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_metatype tmp4_4;modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _opPath;
tmp4_4 = _inCurValue;
tmp4_5 = _inValueMatrix;
{
modelica_metatype _vals = NULL;
modelica_metatype _new_env = NULL;
modelica_metatype _env = NULL;
modelica_metatype _cache = NULL;
modelica_metatype _dims = NULL;
modelica_metatype _valueMatrix = NULL;
modelica_metatype _curValue = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 5; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (!listEmpty(tmp4_5)) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,1,1) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
if (4 != MMC_STRLEN(tmpMeta[2]) || strcmp(MMC_STRINGDATA(_OMC_LIT15), MMC_STRINGDATA(tmpMeta[2])) != 0) goto tmp3_end;
if (optionNone(tmp4_4)) goto tmp3_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_4), 1));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[3],6,1) == 0) goto tmp3_end;
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[3]), 2));
_vals = tmpMeta[4];
_cache = tmp4_1;
_vals = listReverse(_vals);
tmpMeta[2] = mmc_mk_box2(9, &Values_Value_LIST__desc, _vals);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = mmc_mk_some(tmpMeta[2]);
goto tmp3_done;
}
case 1: {
if (!listEmpty(tmp4_5)) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,1,1) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
if (11 != MMC_STRLEN(tmpMeta[2]) || strcmp(MMC_STRINGDATA(_OMC_LIT16), MMC_STRINGDATA(tmpMeta[2])) != 0) goto tmp3_end;
if (optionNone(tmp4_4)) goto tmp3_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_4), 1));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[3],6,1) == 0) goto tmp3_end;
_cache = tmp4_1;
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _inCurValue;
goto tmp3_done;
}
case 2: {
if (!listEmpty(tmp4_5)) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,1,1) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
if (5 != MMC_STRLEN(tmpMeta[2]) || strcmp(MMC_STRINGDATA(_OMC_LIT14), MMC_STRINGDATA(tmpMeta[2])) != 0) goto tmp3_end;
if (optionNone(tmp4_4)) goto tmp3_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_4), 1));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[3],5,2) == 0) goto tmp3_end;
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[3]), 2));
tmpMeta[5] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[3]), 3));
_vals = tmpMeta[4];
_dims = tmpMeta[5];
_cache = tmp4_1;
_vals = listReverse(_vals);
tmpMeta[2] = mmc_mk_box3(8, &Values_Value_ARRAY__desc, _vals, _dims);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = mmc_mk_some(tmpMeta[2]);
goto tmp3_done;
}
case 3: {
if (!listEmpty(tmp4_5)) goto tmp3_end;
_cache = tmp4_1;
_curValue = tmp4_4;
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _curValue;
goto tmp3_done;
}
case 4: {
if (listEmpty(tmp4_5)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_5);
tmpMeta[3] = MMC_CDR(tmp4_5);
_vals = tmpMeta[2];
_valueMatrix = tmpMeta[3];
_cache = tmp4_1;
_env = tmp4_2;
_curValue = tmp4_4;
_new_env = omc_Ceval_extendFrameForIterators(threadData, _env, _iteratorNames, _vals, _iterTypes);
_cache = omc_Ceval_cevalReductionEvalAndFold(threadData, _cache, _new_env, _opPath, _curValue, _exp, _exprType, _foldName, _resultName, _foldExp, _impl, _msg, ((modelica_integer) 1) + _numIter ,&_curValue);
_inCache = _cache;
_inEnv = _env;
_inCurValue = _curValue;
_inValueMatrix = _valueMatrix;
goto _tailrecursive;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_newCache = tmpMeta[0+0];
_result = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_result) { *out_result = _result; }
return _newCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalReduction(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _opPath, modelica_metatype _inCurValue, modelica_metatype _exp, modelica_metatype _exprType, modelica_metatype _foldName, modelica_metatype _resultName, modelica_metatype _foldExp, modelica_metatype _iteratorNames, modelica_metatype _inValueMatrix, modelica_metatype _iterTypes, modelica_metatype _impl, modelica_metatype _msg, modelica_metatype _numIter, modelica_metatype *out_result)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _newCache = NULL;
tmp1 = mmc_unbox_integer(_impl);
tmp2 = mmc_unbox_integer(_numIter);
_newCache = omc_Ceval_cevalReduction(threadData, _inCache, _inEnv, _opPath, _inCurValue, _exp, _exprType, _foldName, _resultName, _foldExp, _iteratorNames, _inValueMatrix, _iterTypes, tmp1, _msg, tmp2, out_result);
return _newCache;
}
PROTECTED_FUNCTION_STATIC modelica_boolean omc_Ceval_dimensionSliceInRange(threadData_t *threadData, modelica_metatype _arr, modelica_integer _dimSize)
{
modelica_boolean _inRange;
modelica_boolean tmp1 = 0;
modelica_metatype tmpMeta[7] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
volatile modelica_metatype tmp4_1;
tmp4_1 = _arr;
{
modelica_integer _indx;
modelica_integer _dim;
modelica_metatype _vlst = NULL;
modelica_metatype _dims = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp3_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp4 < 3; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,5,2) == 0) goto tmp3_end;
tmpMeta[0] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 2));
if (!listEmpty(tmpMeta[0])) goto tmp3_end;
tmp4 += 1;
tmp1 = 1;
goto tmp3_done;
}
case 1: {
modelica_integer tmp6;
modelica_integer tmp7;
modelica_boolean tmp8;
modelica_boolean tmp9;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,5,2) == 0) goto tmp3_end;
tmpMeta[0] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 2));
if (listEmpty(tmpMeta[0])) goto tmp3_end;
tmpMeta[1] = MMC_CAR(tmpMeta[0]);
tmpMeta[2] = MMC_CDR(tmpMeta[0]);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[1],0,1) == 0) goto tmp3_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[1]), 2));
tmp6 = mmc_unbox_integer(tmpMeta[3]);
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 3));
if (listEmpty(tmpMeta[4])) goto tmp3_end;
tmpMeta[5] = MMC_CAR(tmpMeta[4]);
tmpMeta[6] = MMC_CDR(tmpMeta[4]);
tmp7 = mmc_unbox_integer(tmpMeta[5]);
_indx = tmp6;
_vlst = tmpMeta[2];
_dim = tmp7;
_dims = tmpMeta[6];
_dim = ((modelica_integer) -1) + _dim;
tmpMeta[0] = mmc_mk_cons(mmc_mk_integer(_dim), _dims);
_dims = tmpMeta[0];
tmp8 = (_indx <= _dimSize);
if (1 != tmp8) goto goto_2;
tmpMeta[0] = mmc_mk_box3(8, &Values_Value_ARRAY__desc, _vlst, _dims);
tmp9 = omc_Ceval_dimensionSliceInRange(threadData, tmpMeta[0], _dimSize);
if (1 != tmp9) goto goto_2;
tmp1 = 1;
goto tmp3_done;
}
case 2: {
tmp1 = 0;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
tmp3_done:
(void)tmp4;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp3_done2;
goto_2:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp4 < 3) {
goto tmp3_top;
}
MMC_THROW_INTERNAL();
tmp3_done2:;
}
}
_inRange = tmp1;
_return: OMC_LABEL_UNUSED
return _inRange;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_dimensionSliceInRange(threadData_t *threadData, modelica_metatype _arr, modelica_metatype _dimSize)
{
modelica_integer tmp1;
modelica_boolean _inRange;
modelica_metatype out_inRange;
tmp1 = mmc_unbox_integer(_dimSize);
_inRange = omc_Ceval_dimensionSliceInRange(threadData, _arr, tmp1);
out_inRange = mmc_mk_icon(_inRange);
return out_inRange;
}
PROTECTED_FUNCTION_STATIC modelica_boolean omc_Ceval_crefEqualValue(threadData_t *threadData, modelica_metatype _c, modelica_metatype _v)
{
modelica_boolean _outBoolean;
modelica_boolean tmp1 = 0;
modelica_metatype tmpMeta[3] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;
tmp4_1 = _v;
{
modelica_metatype _cr = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 2; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,1,4) == 0) goto tmp3_end;
tmpMeta[0] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[0],6,2) == 0) goto tmp3_end;
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[0]), 2));
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 3));
if (!optionNone(tmpMeta[2])) goto tmp3_end;
_cr = tmpMeta[1];
tmp1 = omc_ComponentReference_crefEqual(threadData, _c, _cr);
goto tmp3_done;
}
case 1: {
tmp1 = 0;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outBoolean = tmp1;
_return: OMC_LABEL_UNUSED
return _outBoolean;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_crefEqualValue(threadData_t *threadData, modelica_metatype _c, modelica_metatype _v)
{
modelica_boolean _outBoolean;
modelica_metatype out_outBoolean;
_outBoolean = omc_Ceval_crefEqualValue(threadData, _c, _v);
out_outBoolean = mmc_mk_icon(_outBoolean);
return out_outBoolean;
}
DLLExport
modelica_metatype omc_Ceval_cevalSubscript(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inSubscript, modelica_integer _inInteger, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outSubscript)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outSubscript = NULL;
modelica_metatype tmpMeta[3] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
volatile modelica_metatype tmp4_1;volatile modelica_metatype tmp4_2;volatile modelica_metatype tmp4_3;volatile modelica_boolean tmp4_4;volatile modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inSubscript;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_metatype _env = NULL;
modelica_metatype _v1 = NULL;
modelica_metatype _e1_1 = NULL;
modelica_metatype _e1 = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_metatype _cache = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp3_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp4 < 4; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,0,0) == 0) goto tmp3_end;
_cache = tmp4_1;
tmp4 += 3;
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _OMC_LIT22;
goto tmp3_done;
}
case 1: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,2,1) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],5,2) == 0) goto tmp3_end;
_cache = tmp4_1;
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _inSubscript;
goto tmp3_done;
}
case 2: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,2,1) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
_e1 = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 1;
_cache = omc_Ceval_ceval(threadData, _cache, _env, _e1, _impl, _msg, ((modelica_integer) 1) + _numIter ,&_v1);
{
modelica_metatype tmp8_1;
tmp8_1 = _v1;
{
int tmp8;
{
switch (MMC_SWITCH_CAST(valueConstructor(tmp8_1))) {
case 3: {
tmpMeta[2] = omc_ValuesUtil_valueExp(threadData, _v1, mmc_mk_none());
goto tmp7_done;
}
case 7: {
tmpMeta[2] = omc_ValuesUtil_valueExp(threadData, _v1, mmc_mk_none());
goto tmp7_done;
}
case 6: {
tmpMeta[2] = omc_ValuesUtil_valueExp(threadData, _v1, mmc_mk_none());
goto tmp7_done;
}
}
goto tmp7_end;
tmp7_end: ;
}
goto goto_6;
goto_6:;
goto goto_2;
goto tmp7_done;
tmp7_done:;
}
}
_e1_1 = tmpMeta[2];
tmpMeta[2] = mmc_mk_box2(5, &DAE_Subscript_INDEX__desc, _e1_1);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 3: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,1,1) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
_e1 = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
_cache = omc_Ceval_ceval(threadData, _cache, _env, _e1, _impl, _msg, ((modelica_integer) 1) + _numIter ,&_v1);
_e1_1 = omc_ValuesUtil_valueExp(threadData, _v1, mmc_mk_some(_e1));
tmpMeta[2] = mmc_mk_box2(4, &DAE_Subscript_SLICE__desc, _e1_1);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
tmp3_done:
(void)tmp4;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp3_done2;
goto_2:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp4 < 4) {
goto tmp3_top;
}
MMC_THROW_INTERNAL();
tmp3_done2:;
}
}
_outCache = tmpMeta[0+0];
_outSubscript = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outSubscript) { *out_outSubscript = _outSubscript; }
return _outCache;
}
modelica_metatype boxptr_Ceval_cevalSubscript(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inSubscript, modelica_metatype _inInteger, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outSubscript)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_integer tmp3;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inInteger);
tmp2 = mmc_unbox_integer(_inBoolean);
tmp3 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalSubscript(threadData, _inCache, _inEnv, _inSubscript, tmp1, tmp2, _inMsg, tmp3, out_outSubscript);
return _outCache;
}
DLLExport
modelica_metatype omc_Ceval_cevalSubscripts(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpSubscriptLst, modelica_metatype _inIntegerLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outExpSubscriptLst)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outExpSubscriptLst = NULL;
modelica_metatype tmpMeta[6] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
volatile modelica_metatype tmp4_1;volatile modelica_metatype tmp4_2;volatile modelica_metatype tmp4_3;volatile modelica_metatype tmp4_4;volatile modelica_boolean tmp4_5;volatile modelica_metatype tmp4_6;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExpSubscriptLst;
tmp4_4 = _inIntegerLst;
tmp4_5 = _inBoolean;
tmp4_6 = _inMsg;
{
modelica_metatype _sub_1 = NULL;
modelica_metatype _sub = NULL;
modelica_metatype _subs_1 = NULL;
modelica_metatype _subs = NULL;
modelica_metatype _env = NULL;
modelica_integer _dim;
modelica_metatype _dims = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_metatype _cache = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp3_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp4 < 3; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (!listEmpty(tmp4_3)) goto tmp3_end;
_cache = tmp4_1;
tmp4 += 2;
tmpMeta[2] = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 1: {
modelica_integer tmp6;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (listEmpty(tmp4_4)) goto tmp3_end;
tmpMeta[4] = MMC_CAR(tmp4_4);
tmpMeta[5] = MMC_CDR(tmp4_4);
tmp6 = mmc_unbox_integer(tmpMeta[4]);
_sub = tmpMeta[2];
_subs = tmpMeta[3];
_dim = tmp6;
_dims = tmpMeta[5];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_5;
_msg = tmp4_6;
_cache = omc_Ceval_cevalSubscript(threadData, _cache, _env, _sub, _dim, _impl, _msg, ((modelica_integer) 1) + _numIter ,&_sub_1);
_cache = omc_Ceval_cevalSubscripts(threadData, _cache, _env, _subs, _dims, _impl, _msg, _numIter ,&_subs_1);
tmpMeta[2] = mmc_mk_cons(_sub_1, _subs_1);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 2: {
modelica_integer tmp7;
modelica_boolean tmp8;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (listEmpty(tmp4_4)) goto tmp3_end;
tmpMeta[4] = MMC_CAR(tmp4_4);
tmpMeta[5] = MMC_CDR(tmp4_4);
tmp7 = mmc_unbox_integer(tmpMeta[4]);
_sub = tmpMeta[2];
_subs = tmpMeta[3];
_dim = tmp7;
_dims = tmpMeta[5];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_5;
_msg = tmp4_6;
tmp8 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
omc_Ceval_cevalSubscript(threadData, _cache, _env, _sub, _dim, _impl, _msg, ((modelica_integer) 1) + _numIter, NULL);
tmp8 = 1;
goto goto_9;
goto_9:;
MMC_CATCH_INTERNAL(mmc_jumper)
if (tmp8) {goto goto_2;}
_cache = omc_Ceval_cevalSubscripts(threadData, _cache, _env, _subs, _dims, _impl, _msg, _numIter ,&_subs_1);
tmpMeta[2] = mmc_mk_cons(_sub, _subs_1);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
tmp3_done:
(void)tmp4;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp3_done2;
goto_2:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp4 < 3) {
goto tmp3_top;
}
MMC_THROW_INTERNAL();
tmp3_done2:;
}
}
_outCache = tmpMeta[0+0];
_outExpSubscriptLst = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outExpSubscriptLst) { *out_outExpSubscriptLst = _outExpSubscriptLst; }
return _outCache;
}
modelica_metatype boxptr_Ceval_cevalSubscripts(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpSubscriptLst, modelica_metatype _inIntegerLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outExpSubscriptLst)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalSubscripts(threadData, _inCache, _inEnv, _inExpSubscriptLst, _inIntegerLst, tmp1, _inMsg, tmp2, out_outExpSubscriptLst);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalSubscriptValueList(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpSubscriptLst, modelica_metatype _inValue, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[4] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_metatype tmp4_4;modelica_boolean tmp4_5;modelica_metatype tmp4_6;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExpSubscriptLst;
tmp4_4 = _inValue;
tmp4_5 = _inBoolean;
tmp4_6 = _inMsg;
{
modelica_metatype _subval = NULL;
modelica_metatype _res = NULL;
modelica_metatype _env = NULL;
modelica_metatype _lst = NULL;
modelica_metatype _subvals = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_metatype _subs = NULL;
modelica_metatype _cache = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 2; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (!listEmpty(tmp4_4)) goto tmp3_end;
_cache = tmp4_1;
tmpMeta[2] = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 1: {
if (listEmpty(tmp4_4)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_4);
tmpMeta[3] = MMC_CDR(tmp4_4);
_subval = tmpMeta[2];
_subvals = tmpMeta[3];
_cache = tmp4_1;
_env = tmp4_2;
_subs = tmp4_3;
_impl = tmp4_5;
_msg = tmp4_6;
_cache = omc_Ceval_cevalSubscriptValue(threadData, _cache, _env, _subs, _subval, _impl, _msg, ((modelica_integer) 1) + _numIter ,&_res);
_cache = omc_Ceval_cevalSubscriptValueList(threadData, _cache, _env, _subs, _subvals, _impl, _msg, _numIter ,&_lst);
tmpMeta[2] = mmc_mk_cons(_res, _lst);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalSubscriptValueList(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpSubscriptLst, modelica_metatype _inValue, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalSubscriptValueList(threadData, _inCache, _inEnv, _inExpSubscriptLst, _inValue, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
DLLExport
modelica_metatype omc_Ceval_cevalSubscriptValue(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpSubscriptLst, modelica_metatype _inValue, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[6] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_metatype tmp4_4;modelica_boolean tmp4_5;modelica_metatype tmp4_6;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExpSubscriptLst;
tmp4_4 = _inValue;
tmp4_5 = _inBoolean;
tmp4_6 = _inMsg;
{
modelica_integer _n;
modelica_metatype _subval = NULL;
modelica_metatype _res = NULL;
modelica_metatype _v = NULL;
modelica_metatype _env = NULL;
modelica_metatype _exp = NULL;
modelica_metatype _subs = NULL;
modelica_metatype _lst = NULL;
modelica_metatype _sliceLst = NULL;
modelica_metatype _subvals = NULL;
modelica_metatype _slice = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_metatype _cache = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 4; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_integer tmp6 = 0;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_4,5,2) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_4), 2));
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[3] = MMC_CAR(tmp4_3);
tmpMeta[4] = MMC_CDR(tmp4_3);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[3],2,1) == 0) goto tmp3_end;
tmpMeta[5] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[3]), 2));
_lst = tmpMeta[2];
_exp = tmpMeta[5];
_subs = tmpMeta[4];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_5;
_msg = tmp4_6;
_cache = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter ,&_v);
{
modelica_metatype tmp9_1;
tmp9_1 = _v;
{
volatile mmc_switch_type tmp9;
int tmp10;
tmp9 = 0;
for (; tmp9 < 2; tmp9++) {
switch (MMC_SWITCH_CAST(tmp9)) {
case 0: {
modelica_integer tmp11;
if (mmc__uniontype__metarecord__typedef__equal(tmp9_1,0,1) == 0) goto tmp8_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp9_1), 2));
tmp11 = mmc_unbox_integer(tmpMeta[2]);
_n = tmp11;
tmp6 = _n;
goto tmp8_done;
}
case 1: {
modelica_integer tmp12;
if (mmc__uniontype__metarecord__typedef__equal(tmp9_1,4,2) == 0) goto tmp8_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp9_1), 3));
tmp12 = mmc_unbox_integer(tmpMeta[2]);
_n = tmp12;
tmp6 = _n;
goto tmp8_done;
}
}
goto tmp8_end;
tmp8_end: ;
}
goto goto_7;
goto_7:;
goto goto_2;
goto tmp8_done;
tmp8_done:;
}
}
_n = tmp6;
_subval = listGet(_lst, _n);
_inCache = _cache;
_inEnv = _env;
_inExpSubscriptLst = _subs;
_inValue = _subval;
_inBoolean = _impl;
_inMsg = _msg;
_numIter = ((modelica_integer) 1) + _numIter;
goto _tailrecursive;
goto tmp3_done;
}
case 1: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_4,5,2) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_4), 2));
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[3] = MMC_CAR(tmp4_3);
tmpMeta[4] = MMC_CDR(tmp4_3);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[3],1,1) == 0) goto tmp3_end;
tmpMeta[5] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[3]), 2));
_lst = tmpMeta[2];
_exp = tmpMeta[5];
_subs = tmpMeta[4];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_5;
_msg = tmp4_6;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],5,2) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
_sliceLst = tmpMeta[3];
_slice = omc_List_map(threadData, _sliceLst, boxvar_ValuesUtil_valueInteger);
_subvals = omc_List_map1r(threadData, _slice, boxvar_listGet, _lst);
_cache = omc_Ceval_cevalSubscriptValueList(threadData, _cache, _env, _subs, _subvals, _impl, _msg, _numIter ,&_lst);
_res = omc_ValuesUtil_makeArray(threadData, _lst);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _res;
goto tmp3_done;
}
case 2: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_4,5,2) == 0) goto tmp3_end;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],0,0) == 0) goto tmp3_end;
_subval = tmp4_4;
_subs = tmpMeta[3];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_5;
_msg = tmp4_6;
if(listEmpty(_subs))
{
_res = _subval;
}
else
{
_cache = omc_Ceval_cevalSubscriptValueList(threadData, _cache, _env, _subs, (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_subval), 2))), _impl, _msg, ((modelica_integer) 1) + _numIter ,&_lst);
_res = omc_ValuesUtil_makeArray(threadData, _lst);
}
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _res;
goto tmp3_done;
}
case 3: {
if (!listEmpty(tmp4_3)) goto tmp3_end;
_cache = tmp4_1;
_v = tmp4_4;
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _v;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
modelica_metatype boxptr_Ceval_cevalSubscriptValue(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpSubscriptLst, modelica_metatype _inValue, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalSubscriptValue(threadData, _inCache, _inEnv, _inExpSubscriptLst, _inValue, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_boolean omc_Ceval_isRecursiveBinding(threadData_t *threadData, modelica_metatype _cr, modelica_metatype _exp)
{
modelica_boolean _res;
modelica_boolean tmp1 = 0;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
{
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp3_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp4 < 2; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
tmp1 = omc_List_map1BoolOr(threadData, omc_Expression_extractCrefsFromExp(threadData, _exp), boxvar_ComponentReference_crefEqual, _cr);
goto tmp3_done;
}
case 1: {
tmp1 = 0;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
tmp3_done:
(void)tmp4;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp3_done2;
goto_2:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp4 < 2) {
goto tmp3_top;
}
MMC_THROW_INTERNAL();
tmp3_done2:;
}
}
_res = tmp1;
_return: OMC_LABEL_UNUSED
return _res;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_isRecursiveBinding(threadData_t *threadData, modelica_metatype _cr, modelica_metatype _exp)
{
modelica_boolean _res;
modelica_metatype out_res;
_res = omc_Ceval_isRecursiveBinding(threadData, _cr, _exp);
out_res = mmc_mk_icon(_res);
return out_res;
}
DLLExport
modelica_metatype omc_Ceval_cevalCrefBinding(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inComponentRef, modelica_metatype _inBinding, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[8] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
volatile modelica_metatype tmp4_1;volatile modelica_metatype tmp4_2;volatile modelica_metatype tmp4_3;volatile modelica_metatype tmp4_4;volatile modelica_boolean tmp4_5;volatile modelica_metatype tmp4_6;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inComponentRef;
tmp4_4 = _inBinding;
tmp4_5 = _inBoolean;
tmp4_6 = _inMsg;
{
modelica_metatype _cr = NULL;
modelica_metatype _e1 = NULL;
modelica_metatype _subsc = NULL;
modelica_metatype _v = NULL;
modelica_metatype _e_val = NULL;
modelica_metatype _env = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_string _expstr = NULL;
modelica_string _s1 = NULL;
modelica_string _s2 = NULL;
modelica_string _str = NULL;
modelica_metatype _exp = NULL;
modelica_metatype _cache = NULL;
modelica_metatype _vl = NULL;
modelica_metatype _tpath = NULL;
modelica_metatype _ty = NULL;
modelica_metatype _info = NULL;
modelica_metatype _binding = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp3_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp4 < 9; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_4,2,2) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_4), 2));
_v = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_cr = tmp4_3;
_impl = tmp4_5;
_msg = tmp4_6;
tmp4 += 7;
_subsc = omc_ComponentReference_crefLastSubs(threadData, _cr);
tmpMeta[0+0] = omc_Ceval_cevalSubscriptValue(threadData, _cache, _env, _subsc, _v, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[0+1]);
goto tmp3_done;
}
case 1: {
modelica_boolean tmp6;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_4,0,0) == 0) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_6,0,1) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_6), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,1,3) == 0) goto tmp3_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
if (!listEmpty(tmpMeta[4])) goto tmp3_end;
_info = tmpMeta[2];
_ty = tmpMeta[3];
_cache = tmp4_1;
_env = tmp4_2;
tmpMeta[2] = omc_Types_arrayElementType(threadData, _ty);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],9,3) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[3],3,1) == 0) goto goto_2;
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[3]), 2));
tmpMeta[5] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 3));
_tpath = tmpMeta[4];
_vl = tmpMeta[5];
tmp6 = omc_Types_allHaveBindings(threadData, _vl);
if (1 != tmp6) goto goto_2;
tmpMeta[2] = MMC_REFSTRUCTLIT(mmc_nil);
_binding = omc_InstBinding_makeRecordBinding(threadData, _cache, _env, _tpath, _ty, _vl, tmpMeta[2], _info);
tmpMeta[0+0] = omc_Ceval_cevalCrefBinding(threadData, _cache, _env, _inComponentRef, _binding, _inBoolean, _inMsg, ((modelica_integer) 1) + _numIter, &tmpMeta[0+1]);
goto tmp3_done;
}
case 2: {
modelica_boolean tmp7;
if (1 != tmp4_5) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_4,0,0) == 0) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_6,0,1) == 0) goto tmp3_end;
tmp4 += 5;
tmp7 = omc_Flags_isSet(threadData, _OMC_LIT26);
if (1 != tmp7) goto goto_2;
omc_Debug_trace(threadData, _OMC_LIT27);
goto goto_2;
goto tmp3_done;
}
case 3: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_4,1,4) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_4), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_4), 4));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[3],0,0) == 0) goto tmp3_end;
_exp = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_cr = tmp4_3;
_impl = tmp4_5;
_msg = tmp4_6;
tmpMeta[2] = _exp;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],27,3) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[3]), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[4],1,1) == 0) goto goto_2;
tmpMeta[5] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 4));
if (listEmpty(tmpMeta[5])) goto goto_2;
tmpMeta[6] = MMC_CAR(tmpMeta[5]);
tmpMeta[7] = MMC_CDR(tmpMeta[5]);
if (!listEmpty(tmpMeta[7])) goto goto_2;
_cache = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter ,&_v);
_subsc = omc_ComponentReference_crefLastSubs(threadData, _cr);
tmpMeta[0+0] = omc_Ceval_cevalSubscriptValue(threadData, _cache, _env, _subsc, _v, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[0+1]);
goto tmp3_done;
}
case 4: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_4,1,4) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_4), 3));
if (optionNone(tmpMeta[2])) goto tmp3_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 1));
_e_val = tmpMeta[3];
_cache = tmp4_1;
_env = tmp4_2;
_cr = tmp4_3;
_impl = tmp4_5;
_msg = tmp4_6;
_subsc = omc_ComponentReference_crefLastSubs(threadData, _cr);
tmpMeta[0+0] = omc_Ceval_cevalSubscriptValue(threadData, _cache, _env, _subsc, _e_val, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[0+1]);
goto tmp3_done;
}
case 5: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_4,1,4) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_4), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_4), 4));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[3],0,0) == 0) goto tmp3_end;
_exp = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_cr = tmp4_3;
_impl = tmp4_5;
_msg = tmp4_6;
tmp4 += 2;
_cache = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter ,&_v);
_subsc = omc_ComponentReference_crefLastSubs(threadData, _cr);
tmpMeta[0+0] = omc_Ceval_cevalSubscriptValue(threadData, _cache, _env, _subsc, _v, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[0+1]);
goto tmp3_done;
}
case 6: {
modelica_boolean tmp8;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_4,1,4) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_4), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_4), 4));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[3],1,0) == 0) goto tmp3_end;
_exp = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_cr = tmp4_3;
_impl = tmp4_5;
_msg = tmp4_6;
tmp4 += 1;
tmp8 = omc_Ceval_isRecursiveBinding(threadData, _cr, _exp);
if (0 != tmp8) goto goto_2;
_cache = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter ,&_v);
_subsc = omc_ComponentReference_crefLastSubs(threadData, _cr);
tmpMeta[0+0] = omc_Ceval_cevalSubscriptValue(threadData, _cache, _env, _subsc, _v, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[0+1]);
goto tmp3_done;
}
case 7: {
modelica_boolean tmp9;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_6,0,1) == 0) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_4,1,4) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_4), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_4), 4));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[3],2,0) == 0) goto tmp3_end;
_exp = tmpMeta[2];
tmp9 = omc_Flags_isSet(threadData, _OMC_LIT26);
if (1 != tmp9) goto goto_2;
omc_Debug_trace(threadData, _OMC_LIT28);
_expstr = omc_ExpressionDump_printExpStr(threadData, _exp);
omc_Debug_trace(threadData, _expstr);
omc_Debug_traceln(threadData, _OMC_LIT29);
goto goto_2;
goto tmp3_done;
}
case 8: {
modelica_boolean tmp10;
_env = tmp4_2;
_e1 = tmp4_3;
tmp10 = omc_Flags_isSet(threadData, _OMC_LIT26);
if (1 != tmp10) goto goto_2;
_s1 = omc_ComponentReference_printComponentRefStr(threadData, _e1);
_s2 = omc_Types_printBindingStr(threadData, _inBinding);
_str = omc_FGraph_printGraphPathStr(threadData, _env);
tmpMeta[2] = mmc_mk_cons(_OMC_LIT30, mmc_mk_cons(_s1, mmc_mk_cons(_OMC_LIT31, mmc_mk_cons(_s2, mmc_mk_cons(_OMC_LIT32, mmc_mk_cons(_str, mmc_mk_cons(_OMC_LIT33, MMC_REFSTRUCTLIT(mmc_nil))))))));
_str = stringAppendList(tmpMeta[2]);
omc_Debug_traceln(threadData, _str);
goto goto_2;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
tmp3_done:
(void)tmp4;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp3_done2;
goto_2:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp4 < 9) {
goto tmp3_top;
}
MMC_THROW_INTERNAL();
tmp3_done2:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
modelica_metatype boxptr_Ceval_cevalCrefBinding(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inComponentRef, modelica_metatype _inBinding, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalCrefBinding(threadData, _inCache, _inEnv, _inComponentRef, _inBinding, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
DLLExport
modelica_metatype omc_Ceval_cevalCref__dispatch(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inCref, modelica_metatype _inAttr, modelica_metatype _inType, modelica_metatype _inBinding, modelica_metatype _constForRange, modelica_metatype _inSplicedExpData, modelica_metatype _inClassEnv, modelica_metatype _inComponentEnv, modelica_string _inFQName, modelica_boolean _inImpl, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[5] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_boolean tmp4_4;modelica_metatype tmp4_5;
tmp4_1 = _inAttr;
tmp4_2 = _inBinding;
tmp4_3 = _constForRange;
tmp4_4 = _inImpl;
tmp4_5 = _inMsg;
{
modelica_metatype _cache = NULL;
modelica_metatype _v = NULL;
modelica_string _str = NULL;
modelica_string _scope_str = NULL;
modelica_string _s1 = NULL;
modelica_string _s2 = NULL;
modelica_string _s3 = NULL;
modelica_metatype _variability = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 3; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,0,0) == 0) goto tmp3_end;
if (optionNone(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 1));
goto goto_2;
goto tmp3_done;
}
case 1: {
if (0 != tmp4_4) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,0,0) == 0) goto tmp3_end;
if (!optionNone(tmp4_3)) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_5,0,1) == 0) goto tmp3_end;
_str = omc_ComponentReference_printComponentRefStr(threadData, _inCref);
_scope_str = omc_FGraph_printGraphPathStr(threadData, _inEnv);
if(omc_Flags_isSet(threadData, _OMC_LIT26))
{
tmpMeta[2] = stringAppend(_OMC_LIT34,_str);
tmpMeta[3] = stringAppend(tmpMeta[2],_OMC_LIT35);
tmpMeta[4] = stringAppend(tmpMeta[3],_scope_str);
omc_Debug_traceln(threadData, tmpMeta[4]);
}
_s1 = omc_FGraph_printGraphPathStr(threadData, _inEnv);
_s2 = omc_ComponentReference_printComponentRefStr(threadData, _inCref);
_s3 = omc_Types_printTypeStr(threadData, _inType);
_v = omc_Types_typeToValue(threadData, _inType);
tmpMeta[2] = mmc_mk_box5(19, &Values_Value_EMPTY__desc, _s1, _s2, _v, _s3);
_v = tmpMeta[2];
tmpMeta[0+0] = _inCache;
tmpMeta[0+1] = _v;
goto tmp3_done;
}
case 2: {
modelica_boolean tmp6;
modelica_boolean tmp7;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 4));
_variability = tmpMeta[2];
tmp6 = ((omc_SCodeUtil_isParameterOrConst(threadData, _variability) || _inImpl) || omc_FGraph_inForLoopScope(threadData, _inEnv));
if (1 != tmp6) goto goto_2;
tmp7 = omc_Ceval_crefEqualValue(threadData, _inCref, _inBinding);
if (0 != tmp7) goto goto_2;
_cache = omc_Ceval_cevalCrefBinding(threadData, _inCache, _inEnv, _inCref, _inBinding, _inImpl, _inMsg, _numIter ,&_v);
_cache = omc_FCore_addEvaluatedCref(threadData, _cache, _variability, omc_ComponentReference_crefStripLastSubs(threadData, _inCref));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _v;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
modelica_metatype boxptr_Ceval_cevalCref__dispatch(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inCref, modelica_metatype _inAttr, modelica_metatype _inType, modelica_metatype _inBinding, modelica_metatype _constForRange, modelica_metatype _inSplicedExpData, modelica_metatype _inClassEnv, modelica_metatype _inComponentEnv, modelica_metatype _inFQName, modelica_metatype _inImpl, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inImpl);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalCref__dispatch(threadData, _inCache, _inEnv, _inCref, _inAttr, _inType, _inBinding, _constForRange, _inSplicedExpData, _inClassEnv, _inComponentEnv, _inFQName, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
DLLExport
modelica_metatype omc_Ceval_cevalCref(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inComponentRef, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[3] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
volatile modelica_metatype tmp4_1;volatile modelica_metatype tmp4_2;volatile modelica_metatype tmp4_3;volatile modelica_boolean tmp4_4;volatile modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inComponentRef;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_metatype _binding = NULL;
modelica_metatype _env = NULL;
modelica_metatype _classEnv = NULL;
modelica_metatype _componentEnv = NULL;
modelica_metatype _c = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_string _scope_str = NULL;
modelica_string _str = NULL;
modelica_string _name = NULL;
modelica_metatype _cache = NULL;
modelica_metatype _const_for_range = NULL;
modelica_metatype _ty = NULL;
modelica_metatype _attr = NULL;
modelica_metatype _splicedExpData = NULL;
modelica_metatype _info = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp3_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp4 < 2; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
_cache = tmp4_1;
_env = tmp4_2;
_c = tmp4_3;
_impl = tmp4_4;
_msg = tmp4_5;
_cache = omc_Lookup_lookupVar(threadData, _cache, _env, _c ,&_attr ,&_ty ,&_binding ,&_const_for_range ,&_splicedExpData ,&_classEnv ,&_componentEnv ,&_name);
tmpMeta[0+0] = omc_Ceval_cevalCref__dispatch(threadData, _cache, _env, _c, _attr, _ty, _binding, _const_for_range, _splicedExpData, _classEnv, _componentEnv, _name, _impl, _msg, _numIter, &tmpMeta[0+1]);
goto tmp3_done;
}
case 1: {
modelica_boolean tmp6;
if (0 != tmp4_4) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_5,0,1) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_5), 2));
_info = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_c = tmp4_3;
tmp6 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
omc_Lookup_lookupVar(threadData, _cache, _env, _c, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
tmp6 = 1;
goto goto_7;
goto_7:;
MMC_CATCH_INTERNAL(mmc_jumper)
if (tmp6) {goto goto_2;}
_scope_str = omc_FGraph_printGraphPathStr(threadData, _env);
_str = omc_ComponentReference_printComponentRefStr(threadData, _c);
tmpMeta[2] = mmc_mk_cons(_str, mmc_mk_cons(_scope_str, MMC_REFSTRUCTLIT(mmc_nil)));
omc_Error_addSourceMessage(threadData, _OMC_LIT40, tmpMeta[2], _info);
goto goto_2;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
tmp3_done:
(void)tmp4;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp3_done2;
goto_2:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp4 < 2) {
goto tmp3_top;
}
MMC_THROW_INTERNAL();
tmp3_done2:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
modelica_metatype boxptr_Ceval_cevalCref(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inComponentRef, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalCref(threadData, _inCache, _inEnv, _inComponentRef, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
DLLExport
modelica_metatype omc_Ceval_cevalList(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValuesValueLst)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValuesValueLst = NULL;
modelica_metatype _expLstNew = NULL;
modelica_metatype _v = NULL;
modelica_metatype tmpMeta[3] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_outCache = _inCache;
tmpMeta[0] = MMC_REFSTRUCTLIT(mmc_nil);
_outValuesValueLst = tmpMeta[0];
_expLstNew = _inExpExpLst;
{
modelica_metatype _exp;
for (tmpMeta[1] = _expLstNew; !listEmpty(tmpMeta[1]); tmpMeta[1]=MMC_CDR(tmpMeta[1]))
{
_exp = MMC_CAR(tmpMeta[1]);
_outCache = omc_Ceval_ceval(threadData, _outCache, _inEnv, _exp, _inBoolean, _inMsg, ((modelica_integer) 1) + _numIter ,&_v);
tmpMeta[2] = mmc_mk_cons(_v, _outValuesValueLst);
_outValuesValueLst = tmpMeta[2];
}
}
_outValuesValueLst = listReverseInPlace(_outValuesValueLst);
_return: OMC_LABEL_UNUSED
if (out_outValuesValueLst) { *out_outValuesValueLst = _outValuesValueLst; }
return _outCache;
}
modelica_metatype boxptr_Ceval_cevalList(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValuesValueLst)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalList(threadData, _inCache, _inEnv, _inExpExpLst, tmp1, _inMsg, tmp2, out_outValuesValueLst);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_makeEnumValue(threadData_t *threadData, modelica_metatype _name, modelica_integer _index, modelica_integer *out_newIndex)
{
modelica_metatype _enumValue = NULL;
modelica_integer _newIndex;
modelica_metatype tmpMeta[1] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
tmpMeta[0] = mmc_mk_box3(7, &Values_Value_ENUM__LITERAL__desc, _name, mmc_mk_integer(_index));
_enumValue = tmpMeta[0];
_newIndex = ((modelica_integer) 1) + _index;
_return: OMC_LABEL_UNUSED
if (out_newIndex) { *out_newIndex = _newIndex; }
return _enumValue;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_makeEnumValue(threadData_t *threadData, modelica_metatype _name, modelica_metatype _index, modelica_metatype *out_newIndex)
{
modelica_integer tmp1;
modelica_integer _newIndex;
modelica_metatype _enumValue = NULL;
tmp1 = mmc_unbox_integer(_index);
_enumValue = omc_Ceval_makeEnumValue(threadData, _name, tmp1, &_newIndex);
if (out_newIndex) { *out_newIndex = mmc_mk_icon(_newIndex); }
return _enumValue;
}
DLLExport
modelica_metatype omc_Ceval_cevalRangeEnum(threadData_t *threadData, modelica_integer _startIndex, modelica_integer _stopIndex, modelica_metatype _enumType)
{
modelica_metatype _enumValList = NULL;
modelica_metatype tmpMeta[3] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp3_1;
tmp3_1 = _enumType;
{
modelica_metatype _enum_type = NULL;
modelica_metatype _enum_names = NULL;
modelica_metatype _enum_paths = NULL;
volatile mmc_switch_type tmp3;
int tmp4;
tmp3 = 0;
for (; tmp3 < 1; tmp3++) {
switch (MMC_SWITCH_CAST(tmp3)) {
case 0: {
if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,5,5) == 0) goto tmp2_end;
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 3));
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 4));
_enum_type = tmpMeta[1];
_enum_names = tmpMeta[2];
if((!(_startIndex <= _stopIndex)))
{
goto goto_1;
}
_enum_names = omc_List_sublist(threadData, _enum_names, _startIndex, ((modelica_integer) 1) + _stopIndex - _startIndex);
_enum_paths = omc_List_map(threadData, _enum_names, boxvar_AbsynUtil_makeIdentPathFromString);
_enum_paths = omc_List_map1r(threadData, _enum_paths, boxvar_AbsynUtil_joinPaths, _enum_type);
tmpMeta[0] = omc_List_mapFold(threadData, _enum_paths, boxvar_Ceval_makeEnumValue, mmc_mk_integer(_startIndex), NULL);
goto tmp2_done;
}
}
goto tmp2_end;
tmp2_end: ;
}
goto goto_1;
goto_1:;
MMC_THROW_INTERNAL();
goto tmp2_done;
tmp2_done:;
}
}
_enumValList = tmpMeta[0];
_return: OMC_LABEL_UNUSED
return _enumValList;
}
modelica_metatype boxptr_Ceval_cevalRangeEnum(threadData_t *threadData, modelica_metatype _startIndex, modelica_metatype _stopIndex, modelica_metatype _enumType)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _enumValList = NULL;
tmp1 = mmc_unbox_integer(_startIndex);
tmp2 = mmc_unbox_integer(_stopIndex);
_enumValList = omc_Ceval_cevalRangeEnum(threadData, tmp1, tmp2, _enumType);
return _enumValList;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalRange(threadData_t *threadData, modelica_metatype _cache, modelica_metatype _env, modelica_metatype _rangeExp, modelica_boolean _impl, modelica_metatype _msg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype _start = NULL;
modelica_metatype _step = NULL;
modelica_metatype _stop = NULL;
modelica_metatype _range_ty = NULL;
modelica_metatype _vstart = NULL;
modelica_metatype _vstop = NULL;
modelica_integer _istep;
modelica_real _rstep;
modelica_metatype _arr = NULL;
modelica_metatype tmpMeta[5] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
tmpMeta[0] = _rangeExp;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[0],18,4) == 0) MMC_THROW_INTERNAL();
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[0]), 2));
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[0]), 3));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[0]), 4));
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[0]), 5));
_range_ty = tmpMeta[1];
_start = tmpMeta[2];
_step = tmpMeta[3];
_stop = tmpMeta[4];
_outCache = omc_Ceval_ceval(threadData, _cache, _env, _start, _impl, _msg, ((modelica_integer) 1) + _numIter ,&_vstart);
_outCache = omc_Ceval_ceval(threadData, _outCache, _env, _stop, _impl, _msg, ((modelica_integer) 1) + _numIter ,&_vstop);
{
modelica_metatype tmp3_1;modelica_metatype tmp3_2;
tmp3_1 = _vstart;
tmp3_2 = _vstop;
{
int tmp3;
{
switch (MMC_SWITCH_CAST(valueConstructor(tmp3_1))) {
case 6: {
if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,3,1) == 0) goto tmp2_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp3_2,3,1) == 0) goto tmp2_end;
{
modelica_metatype __omcQ_24tmpVar1;
modelica_metatype* tmp4;
modelica_metatype __omcQ_24tmpVar0;
int tmp5;
modelica_metatype _b_loopVar = 0;
modelica_metatype _b;
_b_loopVar = omc_ExpressionSimplify_simplifyRangeBool(threadData, mmc_unbox_boolean((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_vstart), 2)))), mmc_unbox_boolean((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_vstop), 2)))));
tmpMeta[2] = MMC_REFSTRUCTLIT(mmc_nil);
__omcQ_24tmpVar1 = tmpMeta[2];
tmp4 = &__omcQ_24tmpVar1;
while(1) {
tmp5 = 1;
if (!listEmpty(_b_loopVar)) {
_b = MMC_CAR(_b_loopVar);
_b_loopVar = MMC_CDR(_b_loopVar);
tmp5--;
}
if (tmp5 == 0) {
__omcQ_24tmpVar0 = omc_ValuesUtil_makeBoolean(threadData, mmc_unbox_boolean(_b));
*tmp4 = mmc_mk_cons(__omcQ_24tmpVar0,0);
tmp4 = &MMC_CDR(*tmp4);
} else if (tmp5 == 1) {
break;
} else {
goto goto_1;
}
}
*tmp4 = mmc_mk_nil();
tmpMeta[1] = __omcQ_24tmpVar1;
}
tmpMeta[0] = tmpMeta[1];
goto tmp2_done;
}
case 3: {
modelica_integer tmp6;
if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,0,1) == 0) goto tmp2_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp3_2,0,1) == 0) goto tmp2_end;
if(isSome(_step))
{
tmpMeta[3] = omc_Ceval_ceval(threadData, _outCache, _env, omc_Util_getOption(threadData, _step), _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[1]);
_outCache = tmpMeta[3];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[1],0,1) == 0) goto goto_1;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[1]), 2));
tmp6 = mmc_unbox_integer(tmpMeta[2]);
_istep = tmp6;
}
else
{
_istep = ((modelica_integer) 1);
}
{
modelica_metatype __omcQ_24tmpVar3;
modelica_metatype* tmp7;
modelica_metatype __omcQ_24tmpVar2;
int tmp8;
modelica_metatype _i_loopVar = 0;
modelica_metatype _i;
_i_loopVar = omc_ExpressionSimplify_simplifyRange(threadData, mmc_unbox_integer((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_vstart), 2)))), _istep, mmc_unbox_integer((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_vstop), 2)))));
tmpMeta[2] = MMC_REFSTRUCTLIT(mmc_nil);
__omcQ_24tmpVar3 = tmpMeta[2];
tmp7 = &__omcQ_24tmpVar3;
while(1) {
tmp8 = 1;
if (!listEmpty(_i_loopVar)) {
_i = MMC_CAR(_i_loopVar);
_i_loopVar = MMC_CDR(_i_loopVar);
tmp8--;
}
if (tmp8 == 0) {
__omcQ_24tmpVar2 = omc_ValuesUtil_makeInteger(threadData, mmc_unbox_integer(_i));
*tmp7 = mmc_mk_cons(__omcQ_24tmpVar2,0);
tmp7 = &MMC_CDR(*tmp7);
} else if (tmp8 == 1) {
break;
} else {
goto goto_1;
}
}
*tmp7 = mmc_mk_nil();
tmpMeta[1] = __omcQ_24tmpVar3;
}
tmpMeta[0] = tmpMeta[1];
goto tmp2_done;
}
case 7: {
if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,4,2) == 0) goto tmp2_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp3_2,4,2) == 0) goto tmp2_end;
tmpMeta[0] = omc_Ceval_cevalRangeEnum(threadData, mmc_unbox_integer((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_vstart), 3)))), mmc_unbox_integer((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_vstop), 3)))), omc_Types_arrayElementType(threadData, _range_ty));
goto tmp2_done;
}
case 4: {
modelica_real tmp9;
if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,1,1) == 0) goto tmp2_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp3_2,1,1) == 0) goto tmp2_end;
if(isSome(_step))
{
tmpMeta[3] = omc_Ceval_ceval(threadData, _outCache, _env, omc_Util_getOption(threadData, _step), _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[1]);
_outCache = tmpMeta[3];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[1],1,1) == 0) goto goto_1;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[1]), 2));
tmp9 = mmc_unbox_real(tmpMeta[2]);
_rstep = tmp9;
}
else
{
_rstep = 1.0;
}
{
modelica_metatype __omcQ_24tmpVar5;
modelica_metatype* tmp10;
modelica_metatype __omcQ_24tmpVar4;
int tmp11;
modelica_metatype _r_loopVar = 0;
modelica_metatype _r;
_r_loopVar = omc_ExpressionSimplify_simplifyRangeReal(threadData, mmc_unbox_real((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_vstart), 2)))), _rstep, mmc_unbox_real((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_vstop), 2)))));
tmpMeta[2] = MMC_REFSTRUCTLIT(mmc_nil);
__omcQ_24tmpVar5 = tmpMeta[2];
tmp10 = &__omcQ_24tmpVar5;
while(1) {
tmp11 = 1;
if (!listEmpty(_r_loopVar)) {
_r = MMC_CAR(_r_loopVar);
_r_loopVar = MMC_CDR(_r_loopVar);
tmp11--;
}
if (tmp11 == 0) {
__omcQ_24tmpVar4 = omc_ValuesUtil_makeReal(threadData, mmc_unbox_real(_r));
*tmp10 = mmc_mk_cons(__omcQ_24tmpVar4,0);
tmp10 = &MMC_CDR(*tmp10);
} else if (tmp11 == 1) {
break;
} else {
goto goto_1;
}
}
*tmp10 = mmc_mk_nil();
tmpMeta[1] = __omcQ_24tmpVar5;
}
tmpMeta[0] = tmpMeta[1];
goto tmp2_done;
}
}
goto tmp2_end;
tmp2_end: ;
}
goto goto_1;
goto_1:;
MMC_THROW_INTERNAL();
goto tmp2_done;
tmp2_done:;
}
}
_arr = tmpMeta[0];
_outValue = omc_ValuesUtil_makeArray(threadData, _arr);
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalRange(threadData_t *threadData, modelica_metatype _cache, modelica_metatype _env, modelica_metatype _rangeExp, modelica_metatype _impl, modelica_metatype _msg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_impl);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalRange(threadData, _cache, _env, _rangeExp, tmp1, _msg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_boolean omc_Ceval_cevalRelationNotEqual(threadData_t *threadData, modelica_metatype _inValue1, modelica_metatype _inValue2)
{
modelica_boolean _result;
modelica_boolean tmp1 = 0;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;
tmp4_1 = _inValue1;
tmp4_2 = _inValue2;
{
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 9; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,2,1) == 0) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,2,1) == 0) goto tmp3_end;
tmp1 = (stringCompare((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue1), 2))), (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue2), 2)))) != ((modelica_integer) 0));
goto tmp3_done;
}
case 1: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,3,1) == 0) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,3,1) == 0) goto tmp3_end;
tmp1 = ((!mmc_unbox_boolean((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue1), 2)))) && mmc_unbox_boolean((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue2), 2))))) || (mmc_unbox_boolean((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue1), 2)))) && !mmc_unbox_boolean((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue2), 2))))));
goto tmp3_done;
}
case 2: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,0,1) == 0) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,0,1) == 0) goto tmp3_end;
tmp1 = (mmc_unbox_integer((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue1), 2)))) != mmc_unbox_integer((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue2), 2)))));
goto tmp3_done;
}
case 3: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,1,1) == 0) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,1,1) == 0) goto tmp3_end;
tmp1 = (mmc_unbox_real((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue1), 2)))) != mmc_unbox_real((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue2), 2)))));
goto tmp3_done;
}
case 4: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,0,1) == 0) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,1,1) == 0) goto tmp3_end;
tmp1 = (((modelica_real)mmc_unbox_integer((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue1), 2))))) != mmc_unbox_real((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue2), 2)))));
goto tmp3_done;
}
case 5: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,1,1) == 0) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,0,1) == 0) goto tmp3_end;
tmp1 = (mmc_unbox_real((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue1), 2)))) != ((modelica_real)mmc_unbox_integer((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue2), 2))))));
goto tmp3_done;
}
case 6: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,4,2) == 0) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,4,2) == 0) goto tmp3_end;
tmp1 = (mmc_unbox_integer((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue1), 3)))) != mmc_unbox_integer((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue2), 3)))));
goto tmp3_done;
}
case 7: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,4,2) == 0) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,0,1) == 0) goto tmp3_end;
tmp1 = (mmc_unbox_integer((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue1), 3)))) != mmc_unbox_integer((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue2), 2)))));
goto tmp3_done;
}
case 8: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,0,1) == 0) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,4,2) == 0) goto tmp3_end;
tmp1 = (mmc_unbox_integer((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue1), 2)))) != mmc_unbox_integer((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue2), 3)))));
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_result = tmp1;
_return: OMC_LABEL_UNUSED
return _result;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalRelationNotEqual(threadData_t *threadData, modelica_metatype _inValue1, modelica_metatype _inValue2)
{
modelica_boolean _result;
modelica_metatype out_result;
_result = omc_Ceval_cevalRelationNotEqual(threadData, _inValue1, _inValue2);
out_result = mmc_mk_icon(_result);
return out_result;
}
PROTECTED_FUNCTION_STATIC modelica_boolean omc_Ceval_cevalRelationEqual(threadData_t *threadData, modelica_metatype _inValue1, modelica_metatype _inValue2)
{
modelica_boolean _result;
modelica_boolean tmp1 = 0;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;
tmp4_1 = _inValue1;
tmp4_2 = _inValue2;
{
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 9; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,2,1) == 0) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,2,1) == 0) goto tmp3_end;
tmp1 = (stringCompare((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue1), 2))), (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue2), 2)))) == ((modelica_integer) 0));
goto tmp3_done;
}
case 1: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,3,1) == 0) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,3,1) == 0) goto tmp3_end;
tmp1 = ((!mmc_unbox_boolean((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue1), 2)))) && !mmc_unbox_boolean((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue2), 2))))) || (mmc_unbox_boolean((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue1), 2)))) && mmc_unbox_boolean((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue2), 2))))));
goto tmp3_done;
}
case 2: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,0,1) == 0) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,0,1) == 0) goto tmp3_end;
tmp1 = (mmc_unbox_integer((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue1), 2)))) == mmc_unbox_integer((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue2), 2)))));
goto tmp3_done;
}
case 3: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,1,1) == 0) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,1,1) == 0) goto tmp3_end;
tmp1 = (mmc_unbox_real((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue1), 2)))) == mmc_unbox_real((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue2), 2)))));
goto tmp3_done;
}
case 4: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,0,1) == 0) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,1,1) == 0) goto tmp3_end;
tmp1 = (((modelica_real)mmc_unbox_integer((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue1), 2))))) == mmc_unbox_real((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue2), 2)))));
goto tmp3_done;
}
case 5: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,1,1) == 0) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,0,1) == 0) goto tmp3_end;
tmp1 = (mmc_unbox_real((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue1), 2)))) == ((modelica_real)mmc_unbox_integer((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue2), 2))))));
goto tmp3_done;
}
case 6: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,4,2) == 0) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,4,2) == 0) goto tmp3_end;
tmp1 = (mmc_unbox_integer((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue1), 3)))) == mmc_unbox_integer((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue2), 3)))));
goto tmp3_done;
}
case 7: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,4,2) == 0) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,0,1) == 0) goto tmp3_end;
tmp1 = (mmc_unbox_integer((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue1), 3)))) == mmc_unbox_integer((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue2), 2)))));
goto tmp3_done;
}
case 8: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,0,1) == 0) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,4,2) == 0) goto tmp3_end;
tmp1 = (mmc_unbox_integer((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue1), 2)))) == mmc_unbox_integer((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue2), 3)))));
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_result = tmp1;
_return: OMC_LABEL_UNUSED
return _result;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalRelationEqual(threadData_t *threadData, modelica_metatype _inValue1, modelica_metatype _inValue2)
{
modelica_boolean _result;
modelica_metatype out_result;
_result = omc_Ceval_cevalRelationEqual(threadData, _inValue1, _inValue2);
out_result = mmc_mk_icon(_result);
return out_result;
}
PROTECTED_FUNCTION_STATIC modelica_boolean omc_Ceval_cevalRelationGreaterEq(threadData_t *threadData, modelica_metatype _inValue1, modelica_metatype _inValue2)
{
modelica_boolean _result;
modelica_boolean tmp1 = 0;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;
tmp4_1 = _inValue1;
tmp4_2 = _inValue2;
{
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 9; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,2,1) == 0) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,2,1) == 0) goto tmp3_end;
tmp1 = (stringCompare((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue1), 2))), (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue2), 2)))) >= ((modelica_integer) 0));
goto tmp3_done;
}
case 1: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,3,1) == 0) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,3,1) == 0) goto tmp3_end;
tmp1 = (mmc_unbox_boolean((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue1), 2)))) || !mmc_unbox_boolean((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue2), 2)))));
goto tmp3_done;
}
case 2: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,0,1) == 0) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,0,1) == 0) goto tmp3_end;
tmp1 = (mmc_unbox_integer((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue1), 2)))) >= mmc_unbox_integer((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue2), 2)))));
goto tmp3_done;
}
case 3: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,1,1) == 0) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,1,1) == 0) goto tmp3_end;
tmp1 = (mmc_unbox_real((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue1), 2)))) >= mmc_unbox_real((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue2), 2)))));
goto tmp3_done;
}
case 4: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,0,1) == 0) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,1,1) == 0) goto tmp3_end;
tmp1 = (((modelica_real)mmc_unbox_integer((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue1), 2))))) >= mmc_unbox_real((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue2), 2)))));
goto tmp3_done;
}
case 5: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,1,1) == 0) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,0,1) == 0) goto tmp3_end;
tmp1 = (mmc_unbox_real((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue1), 2)))) >= ((modelica_real)mmc_unbox_integer((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue2), 2))))));
goto tmp3_done;
}
case 6: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,4,2) == 0) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,4,2) == 0) goto tmp3_end;
tmp1 = (mmc_unbox_integer((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue1), 3)))) >= mmc_unbox_integer((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue2), 3)))));
goto tmp3_done;
}
case 7: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,4,2) == 0) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,0,1) == 0) goto tmp3_end;
tmp1 = (mmc_unbox_integer((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue1), 3)))) >= mmc_unbox_integer((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue2), 2)))));
goto tmp3_done;
}
case 8: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,0,1) == 0) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,4,2) == 0) goto tmp3_end;
tmp1 = (mmc_unbox_integer((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue1), 2)))) >= mmc_unbox_integer((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue2), 3)))));
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_result = tmp1;
_return: OMC_LABEL_UNUSED
return _result;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalRelationGreaterEq(threadData_t *threadData, modelica_metatype _inValue1, modelica_metatype _inValue2)
{
modelica_boolean _result;
modelica_metatype out_result;
_result = omc_Ceval_cevalRelationGreaterEq(threadData, _inValue1, _inValue2);
out_result = mmc_mk_icon(_result);
return out_result;
}
PROTECTED_FUNCTION_STATIC modelica_boolean omc_Ceval_cevalRelationLessEq(threadData_t *threadData, modelica_metatype _inValue1, modelica_metatype _inValue2)
{
modelica_boolean _result;
modelica_boolean tmp1 = 0;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;
tmp4_1 = _inValue1;
tmp4_2 = _inValue2;
{
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 9; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,2,1) == 0) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,2,1) == 0) goto tmp3_end;
tmp1 = (stringCompare((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue1), 2))), (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue2), 2)))) <= ((modelica_integer) 0));
goto tmp3_done;
}
case 1: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,3,1) == 0) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,3,1) == 0) goto tmp3_end;
tmp1 = (!mmc_unbox_boolean((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue1), 2)))) || mmc_unbox_boolean((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue2), 2)))));
goto tmp3_done;
}
case 2: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,0,1) == 0) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,0,1) == 0) goto tmp3_end;
tmp1 = (mmc_unbox_integer((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue1), 2)))) <= mmc_unbox_integer((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue2), 2)))));
goto tmp3_done;
}
case 3: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,1,1) == 0) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,1,1) == 0) goto tmp3_end;
tmp1 = (mmc_unbox_real((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue1), 2)))) <= mmc_unbox_real((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue2), 2)))));
goto tmp3_done;
}
case 4: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,0,1) == 0) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,1,1) == 0) goto tmp3_end;
tmp1 = (((modelica_real)mmc_unbox_integer((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue1), 2))))) <= mmc_unbox_real((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue2), 2)))));
goto tmp3_done;
}
case 5: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,1,1) == 0) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,0,1) == 0) goto tmp3_end;
tmp1 = (mmc_unbox_real((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue1), 2)))) <= ((modelica_real)mmc_unbox_integer((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue2), 2))))));
goto tmp3_done;
}
case 6: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,4,2) == 0) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,4,2) == 0) goto tmp3_end;
tmp1 = (mmc_unbox_integer((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue1), 3)))) <= mmc_unbox_integer((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue2), 3)))));
goto tmp3_done;
}
case 7: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,4,2) == 0) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,0,1) == 0) goto tmp3_end;
tmp1 = (mmc_unbox_integer((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue1), 3)))) <= mmc_unbox_integer((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue2), 2)))));
goto tmp3_done;
}
case 8: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,0,1) == 0) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,4,2) == 0) goto tmp3_end;
tmp1 = (mmc_unbox_integer((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue1), 2)))) <= mmc_unbox_integer((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue2), 3)))));
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_result = tmp1;
_return: OMC_LABEL_UNUSED
return _result;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalRelationLessEq(threadData_t *threadData, modelica_metatype _inValue1, modelica_metatype _inValue2)
{
modelica_boolean _result;
modelica_metatype out_result;
_result = omc_Ceval_cevalRelationLessEq(threadData, _inValue1, _inValue2);
out_result = mmc_mk_icon(_result);
return out_result;
}
PROTECTED_FUNCTION_STATIC modelica_boolean omc_Ceval_cevalRelationLess(threadData_t *threadData, modelica_metatype _inValue1, modelica_metatype _inValue2)
{
modelica_boolean _result;
modelica_boolean tmp1 = 0;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;
tmp4_1 = _inValue1;
tmp4_2 = _inValue2;
{
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 9; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,2,1) == 0) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,2,1) == 0) goto tmp3_end;
tmp1 = (stringCompare((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue1), 2))), (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue2), 2)))) < ((modelica_integer) 0));
goto tmp3_done;
}
case 1: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,3,1) == 0) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,3,1) == 0) goto tmp3_end;
tmp1 = (!mmc_unbox_boolean((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue1), 2)))) && mmc_unbox_boolean((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue2), 2)))));
goto tmp3_done;
}
case 2: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,0,1) == 0) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,0,1) == 0) goto tmp3_end;
tmp1 = (mmc_unbox_integer((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue1), 2)))) < mmc_unbox_integer((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue2), 2)))));
goto tmp3_done;
}
case 3: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,1,1) == 0) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,1,1) == 0) goto tmp3_end;
tmp1 = (mmc_unbox_real((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue1), 2)))) < mmc_unbox_real((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue2), 2)))));
goto tmp3_done;
}
case 4: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,0,1) == 0) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,1,1) == 0) goto tmp3_end;
tmp1 = (((modelica_real)mmc_unbox_integer((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue1), 2))))) < mmc_unbox_real((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue2), 2)))));
goto tmp3_done;
}
case 5: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,1,1) == 0) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,0,1) == 0) goto tmp3_end;
tmp1 = (mmc_unbox_real((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue1), 2)))) < ((modelica_real)mmc_unbox_integer((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue2), 2))))));
goto tmp3_done;
}
case 6: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,4,2) == 0) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,4,2) == 0) goto tmp3_end;
tmp1 = (mmc_unbox_integer((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue1), 3)))) < mmc_unbox_integer((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue2), 3)))));
goto tmp3_done;
}
case 7: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,4,2) == 0) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,0,1) == 0) goto tmp3_end;
tmp1 = (mmc_unbox_integer((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue1), 3)))) < mmc_unbox_integer((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue2), 2)))));
goto tmp3_done;
}
case 8: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,0,1) == 0) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,4,2) == 0) goto tmp3_end;
tmp1 = (mmc_unbox_integer((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue1), 2)))) < mmc_unbox_integer((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inValue2), 3)))));
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_result = tmp1;
_return: OMC_LABEL_UNUSED
return _result;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalRelationLess(threadData_t *threadData, modelica_metatype _inValue1, modelica_metatype _inValue2)
{
modelica_boolean _result;
modelica_metatype out_result;
_result = omc_Ceval_cevalRelationLess(threadData, _inValue1, _inValue2);
out_result = mmc_mk_icon(_result);
return out_result;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalRelation(threadData_t *threadData, modelica_metatype _inValue1, modelica_metatype _inOperator, modelica_metatype _inValue2)
{
modelica_metatype _outValue = NULL;
modelica_boolean _result;
modelica_boolean tmp1 = 0;
modelica_metatype tmpMeta[3] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
volatile modelica_metatype tmp4_1;
tmp4_1 = _inOperator;
{
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp3_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp4 < 7; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,27,1) == 0) goto tmp3_end;
tmp4 += 5;
tmp1 = omc_Ceval_cevalRelationLess(threadData, _inValue2, _inValue1);
goto tmp3_done;
}
case 1: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,25,1) == 0) goto tmp3_end;
tmp4 += 4;
tmp1 = omc_Ceval_cevalRelationLess(threadData, _inValue1, _inValue2);
goto tmp3_done;
}
case 2: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,26,1) == 0) goto tmp3_end;
tmp4 += 3;
tmp1 = omc_Ceval_cevalRelationLessEq(threadData, _inValue1, _inValue2);
goto tmp3_done;
}
case 3: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,28,1) == 0) goto tmp3_end;
tmp4 += 2;
tmp1 = omc_Ceval_cevalRelationGreaterEq(threadData, _inValue1, _inValue2);
goto tmp3_done;
}
case 4: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,29,1) == 0) goto tmp3_end;
tmp4 += 1;
tmp1 = omc_Ceval_cevalRelationEqual(threadData, _inValue1, _inValue2);
goto tmp3_done;
}
case 5: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,30,1) == 0) goto tmp3_end;
tmp1 = omc_Ceval_cevalRelationNotEqual(threadData, _inValue1, _inValue2);
goto tmp3_done;
}
case 6: {
modelica_boolean tmp6;
tmp6 = omc_Flags_isSet(threadData, _OMC_LIT44);
if (1 != tmp6) goto goto_2;
tmpMeta[0] = stringAppend(_OMC_LIT45,omc_ValuesUtil_printValStr(threadData, _inValue1));
tmpMeta[1] = stringAppend(tmpMeta[0],omc_ExpressionDump_relopSymbol(threadData, _inOperator));
tmpMeta[2] = stringAppend(tmpMeta[1],omc_ValuesUtil_printValStr(threadData, _inValue2));
omc_Debug_traceln(threadData, tmpMeta[2]);
goto goto_2;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
tmp3_done:
(void)tmp4;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp3_done2;
goto_2:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp4 < 7) {
goto tmp3_top;
}
MMC_THROW_INTERNAL();
tmp3_done2:;
}
}
_result = tmp1;
tmpMeta[0] = mmc_mk_box2(6, &Values_Value_BOOL__desc, mmc_mk_boolean(_result));
_outValue = tmpMeta[0];
_return: OMC_LABEL_UNUSED
return _outValue;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinFill2(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inFillValue, modelica_metatype _inDims, modelica_boolean _inImpl, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[5] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;
tmp4_1 = _inCache;
tmp4_2 = _inDims;
{
modelica_metatype _dim = NULL;
modelica_metatype _rest_dims = NULL;
modelica_integer _int_dim;
modelica_metatype _array_dims = NULL;
modelica_metatype _fill_value = NULL;
modelica_metatype _fill_vals = NULL;
modelica_metatype _cache = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 2; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (!listEmpty(tmp4_2)) goto tmp3_end;
_cache = tmp4_1;
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _inFillValue;
goto tmp3_done;
}
case 1: {
modelica_integer tmp6;
if (listEmpty(tmp4_2)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_2);
tmpMeta[3] = MMC_CDR(tmp4_2);
_dim = tmpMeta[2];
_rest_dims = tmpMeta[3];
_cache = tmp4_1;
_cache = omc_Ceval_cevalBuiltinFill2(threadData, _cache, _inEnv, _inFillValue, _rest_dims, _inImpl, _inMsg, _numIter ,&_fill_value);
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _inEnv, _dim, _inImpl, _inMsg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],0,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp6 = mmc_unbox_integer(tmpMeta[3]);
_int_dim = tmp6;
_fill_vals = omc_List_fill(threadData, _fill_value, _int_dim);
_array_dims = omc_ValuesUtil_valueDimensions(threadData, _fill_value);
tmpMeta[2] = mmc_mk_cons(mmc_mk_integer(_int_dim), _array_dims);
_array_dims = tmpMeta[2];
tmpMeta[2] = mmc_mk_box3(8, &Values_Value_ARRAY__desc, _fill_vals, _array_dims);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinFill2(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inFillValue, modelica_metatype _inDims, modelica_metatype _inImpl, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inImpl);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalBuiltinFill2(threadData, _inCache, _inEnv, _inFillValue, _inDims, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinFill(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpl, modelica_boolean _inImpl, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[4] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;
tmp4_1 = _inCache;
tmp4_2 = _inExpl;
{
modelica_metatype _fill_exp = NULL;
modelica_metatype _dims = NULL;
modelica_metatype _fill_val = NULL;
modelica_metatype _cache = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 1; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (listEmpty(tmp4_2)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_2);
tmpMeta[3] = MMC_CDR(tmp4_2);
_fill_exp = tmpMeta[2];
_dims = tmpMeta[3];
_cache = tmp4_1;
_cache = omc_Ceval_ceval(threadData, _cache, _inEnv, _fill_exp, _inImpl, _inMsg, ((modelica_integer) 1) + _numIter ,&_fill_val);
tmpMeta[0+0] = omc_Ceval_cevalBuiltinFill2(threadData, _cache, _inEnv, _fill_val, _dims, _inImpl, _inMsg, _numIter, &tmpMeta[0+1]);
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinFill(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpl, modelica_metatype _inImpl, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inImpl);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalBuiltinFill(threadData, _inCache, _inEnv, _inExpl, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinFail(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpl, modelica_boolean _inImpl, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_outCache = _inCache;
_outValue = _OMC_LIT46;
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinFail(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpl, modelica_metatype _inImpl, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inImpl);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalBuiltinFail(threadData, _inCache, _inEnv, _inExpl, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinSizeMatrix(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExp, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[5] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
volatile modelica_metatype tmp4_1;volatile modelica_metatype tmp4_2;volatile modelica_metatype tmp4_3;volatile modelica_boolean tmp4_4;volatile modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExp;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_metatype _tp = NULL;
modelica_metatype _sizelst = NULL;
modelica_metatype _v = NULL;
modelica_metatype _env = NULL;
modelica_metatype _cr = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_metatype _cache = NULL;
modelica_metatype _exp = NULL;
modelica_metatype _dims = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp3_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp4 < 3; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,6,2) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
_cr = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
tmp4 += 1;
_cache = omc_Lookup_lookupVar(threadData, _cache, _env, _cr ,NULL ,&_tp ,NULL ,NULL ,NULL ,NULL ,NULL ,NULL);
_sizelst = omc_Types_getDimensionSizes(threadData, _tp);
_v = omc_ValuesUtil_intlistToValue(threadData, _sizelst);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _v;
goto tmp3_done;
}
case 1: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,17,3) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],6,2) == 0) goto tmp3_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 3));
_dims = tmpMeta[3];
_cache = tmp4_1;
_sizelst = omc_List_map(threadData, _dims, boxvar_Expression_dimensionSize);
_v = omc_ValuesUtil_intlistToValue(threadData, _sizelst);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _v;
goto tmp3_done;
}
case 2: {
_cache = tmp4_1;
_env = tmp4_2;
_exp = tmp4_3;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],5,2) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 3));
_sizelst = tmpMeta[3];
_v = omc_ValuesUtil_intlistToValue(threadData, _sizelst);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _v;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
tmp3_done:
(void)tmp4;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp3_done2;
goto_2:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp4 < 3) {
goto tmp3_top;
}
MMC_THROW_INTERNAL();
tmp3_done2:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinSizeMatrix(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExp, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalBuiltinSizeMatrix(threadData, _inCache, _inEnv, _inExp, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinTranspose2(threadData_t *threadData, modelica_metatype _inValuesValueLst1, modelica_integer _inInteger2, modelica_metatype _inDims)
{
modelica_metatype _outValuesValueLst = NULL;
modelica_metatype tmpMeta[3] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
volatile modelica_metatype tmp3_1;volatile modelica_integer tmp3_2;volatile modelica_metatype tmp3_3;
tmp3_1 = _inValuesValueLst1;
tmp3_2 = _inInteger2;
tmp3_3 = _inDims;
{
modelica_metatype _transposed_row = NULL;
modelica_metatype _rest = NULL;
modelica_metatype _vlst = NULL;
modelica_integer _indx_1;
modelica_integer _indx;
modelica_integer _dim1;
volatile mmc_switch_type tmp3;
int tmp4;
tmp3 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp2_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp3 < 2; tmp3++) {
switch (MMC_SWITCH_CAST(tmp3)) {
case 0: {
modelica_integer tmp5;
if (listEmpty(tmp3_3)) goto tmp2_end;
tmpMeta[1] = MMC_CAR(tmp3_3);
tmpMeta[2] = MMC_CDR(tmp3_3);
tmp5 = mmc_unbox_integer(tmpMeta[1]);
_dim1 = tmp5;
_vlst = tmp3_1;
_indx = tmp3_2;
if((!(_indx <= _dim1)))
{
goto goto_1;
}
_transposed_row = omc_List_map1(threadData, _vlst, boxvar_ValuesUtil_nthArrayelt, mmc_mk_integer(_indx));
_indx_1 = ((modelica_integer) 1) + _indx;
_rest = omc_Ceval_cevalBuiltinTranspose2(threadData, _vlst, _indx_1, _inDims);
tmpMeta[2] = mmc_mk_box3(8, &Values_Value_ARRAY__desc, _transposed_row, _inDims);
tmpMeta[1] = mmc_mk_cons(tmpMeta[2], _rest);
tmpMeta[0] = tmpMeta[1];
goto tmp2_done;
}
case 1: {
tmpMeta[1] = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[0] = tmpMeta[1];
goto tmp2_done;
}
}
goto tmp2_end;
tmp2_end: ;
}
goto goto_1;
tmp2_done:
(void)tmp3;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp2_done2;
goto_1:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp3 < 2) {
goto tmp2_top;
}
MMC_THROW_INTERNAL();
tmp2_done2:;
}
}
_outValuesValueLst = tmpMeta[0];
_return: OMC_LABEL_UNUSED
return _outValuesValueLst;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinTranspose2(threadData_t *threadData, modelica_metatype _inValuesValueLst1, modelica_metatype _inInteger2, modelica_metatype _inDims)
{
modelica_integer tmp1;
modelica_metatype _outValuesValueLst = NULL;
tmp1 = mmc_unbox_integer(_inInteger2);
_outValuesValueLst = omc_Ceval_cevalBuiltinTranspose2(threadData, _inValuesValueLst1, tmp1, _inDims);
return _outValuesValueLst;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinCross(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[8] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
volatile modelica_metatype tmp4_1;volatile modelica_metatype tmp4_2;volatile modelica_metatype tmp4_3;volatile modelica_boolean tmp4_4;volatile modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExpExpLst;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_metatype _xv = NULL;
modelica_metatype _yv = NULL;
modelica_metatype _res = NULL;
modelica_metatype _env = NULL;
modelica_metatype _xe = NULL;
modelica_metatype _ye = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_metatype _cache = NULL;
modelica_string _str = NULL;
modelica_metatype _info = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp3_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp4 < 2; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_integer tmp6;
modelica_integer tmp7;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (listEmpty(tmpMeta[3])) goto tmp3_end;
tmpMeta[4] = MMC_CAR(tmpMeta[3]);
tmpMeta[5] = MMC_CDR(tmpMeta[3]);
if (!listEmpty(tmpMeta[5])) goto tmp3_end;
_xe = tmpMeta[2];
_ye = tmpMeta[4];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[7] = omc_Ceval_ceval(threadData, _cache, _env, _xe, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[7];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],5,2) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 3));
if (listEmpty(tmpMeta[4])) goto goto_2;
tmpMeta[5] = MMC_CAR(tmpMeta[4]);
tmpMeta[6] = MMC_CDR(tmpMeta[4]);
tmp6 = mmc_unbox_integer(tmpMeta[5]);
if (3 != tmp6) goto goto_2;
if (!listEmpty(tmpMeta[6])) goto goto_2;
_xv = tmpMeta[3];
tmpMeta[7] = omc_Ceval_ceval(threadData, _cache, _env, _ye, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[7];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],5,2) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 3));
if (listEmpty(tmpMeta[4])) goto goto_2;
tmpMeta[5] = MMC_CAR(tmpMeta[4]);
tmpMeta[6] = MMC_CDR(tmpMeta[4]);
tmp7 = mmc_unbox_integer(tmpMeta[5]);
if (3 != tmp7) goto goto_2;
if (!listEmpty(tmpMeta[6])) goto goto_2;
_yv = tmpMeta[3];
_res = omc_ValuesUtil_crossProduct(threadData, _xv, _yv);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _res;
goto tmp3_done;
}
case 1: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_5,0,1) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_5), 2));
_info = tmpMeta[2];
tmpMeta[2] = mmc_mk_box2(22, &DAE_Exp_TUPLE__desc, _inExpExpLst);
tmpMeta[3] = stringAppend(_OMC_LIT47,omc_ExpressionDump_printExpStr(threadData, tmpMeta[2]));
_str = tmpMeta[3];
tmpMeta[2] = mmc_mk_cons(_str, MMC_REFSTRUCTLIT(mmc_nil));
omc_Error_addSourceMessage(threadData, _OMC_LIT50, tmpMeta[2], _info);
goto goto_2;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
tmp3_done:
(void)tmp4;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp3_done2;
goto_2:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp4 < 2) {
goto tmp3_top;
}
MMC_THROW_INTERNAL();
tmp3_done2:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinCross(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalBuiltinCross(threadData, _inCache, _inEnv, _inExpExpLst, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinDiagonal(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[10] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
volatile modelica_metatype tmp4_1;volatile modelica_metatype tmp4_2;volatile modelica_metatype tmp4_3;volatile modelica_boolean tmp4_4;volatile modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExpExpLst;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_metatype _vals = NULL;
modelica_integer _dimension;
modelica_metatype _env = NULL;
modelica_metatype _exp = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_metatype _cache = NULL;
modelica_metatype _res = NULL;
modelica_metatype _info = NULL;
modelica_metatype _zero = NULL;
modelica_metatype _ty = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp3_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp4 < 2; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_integer tmp6;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta[3])) goto tmp3_end;
_exp = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[2] = omc_Expression_typeof(threadData, _exp);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],6,2) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
_ty = tmpMeta[3];
tmpMeta[7] = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[7];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],5,2) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 3));
if (listEmpty(tmpMeta[4])) goto goto_2;
tmpMeta[5] = MMC_CAR(tmpMeta[4]);
tmpMeta[6] = MMC_CDR(tmpMeta[4]);
tmp6 = mmc_unbox_integer(tmpMeta[5]);
if (!listEmpty(tmpMeta[6])) goto goto_2;
_vals = tmpMeta[3];
_dimension = tmp6;
_zero = omc_ValuesUtil_makeZero(threadData, _ty);
{
modelica_metatype __omcQ_24tmpVar9;
modelica_metatype* tmp7;
modelica_metatype __omcQ_24tmpVar8;
int tmp12;
modelica_integer tmp13;
modelica_integer tmp14;
modelica_integer _j;
tmp13 = 1;
tmp14 = _dimension;
_j = ((modelica_integer) 1);
_j = (((modelica_integer) 1) /* Range start-value */)-tmp13;
tmpMeta[3] = MMC_REFSTRUCTLIT(mmc_nil);
__omcQ_24tmpVar9 = tmpMeta[3];
tmp7 = &__omcQ_24tmpVar9;
while(1) {
tmp12 = 1;
if (tmp13 > 0 ? _j+tmp13 <= tmp14 : _j+tmp13 >= tmp14) {
_j += tmp13;
tmp12--;
}
if (tmp12 == 0) {
{
modelica_metatype __omcQ_24tmpVar7;
modelica_metatype* tmp8;
modelica_metatype __omcQ_24tmpVar6;
int tmp9;
modelica_integer tmp10;
modelica_integer tmp11;
modelica_integer _i;
tmp10 = 1;
tmp11 = _dimension;
_i = ((modelica_integer) 1);
_i = (((modelica_integer) 1) /* Range start-value */)-tmp10;
tmpMeta[5] = MMC_REFSTRUCTLIT(mmc_nil);
__omcQ_24tmpVar7 = tmpMeta[5];
tmp8 = &__omcQ_24tmpVar7;
while(1) {
tmp9 = 1;
if (tmp10 > 0 ? _i+tmp10 <= tmp11 : _i+tmp10 >= tmp11) {
_i += tmp10;
tmp9--;
}
if (tmp9 == 0) {
__omcQ_24tmpVar6 = ((_i == _j)?listGet(_vals, _i):_zero);
*tmp8 = mmc_mk_cons(__omcQ_24tmpVar6,0);
tmp8 = &MMC_CDR(*tmp8);
} else if (tmp9 == 1) {
break;
} else {
goto goto_2;
}
}
*tmp8 = mmc_mk_nil();
tmpMeta[4] = __omcQ_24tmpVar7;
}
tmpMeta[6] = mmc_mk_cons(mmc_mk_integer(_dimension), MMC_REFSTRUCTLIT(mmc_nil));
tmpMeta[7] = mmc_mk_box3(8, &Values_Value_ARRAY__desc, tmpMeta[4], tmpMeta[6]);
__omcQ_24tmpVar8 = tmpMeta[7];
*tmp7 = mmc_mk_cons(__omcQ_24tmpVar8,0);
tmp7 = &MMC_CDR(*tmp7);
} else if (tmp12 == 1) {
break;
} else {
goto goto_2;
}
}
*tmp7 = mmc_mk_nil();
tmpMeta[2] = __omcQ_24tmpVar9;
}
tmpMeta[8] = mmc_mk_cons(mmc_mk_integer(_dimension), mmc_mk_cons(mmc_mk_integer(_dimension), MMC_REFSTRUCTLIT(mmc_nil)));
tmpMeta[9] = mmc_mk_box3(8, &Values_Value_ARRAY__desc, tmpMeta[2], tmpMeta[8]);
_res = tmpMeta[9];
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _res;
goto tmp3_done;
}
case 1: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_5,0,1) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_5), 2));
_info = tmpMeta[2];
omc_Error_addSourceMessage(threadData, _OMC_LIT53, _OMC_LIT55, _info);
goto goto_2;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
tmp3_done:
(void)tmp4;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp3_done2;
goto_2:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp4 < 2) {
goto tmp3_top;
}
MMC_THROW_INTERNAL();
tmp3_done2:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinDiagonal(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalBuiltinDiagonal(threadData, _inCache, _inEnv, _inExpExpLst, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinIntegerEnumeration(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[5] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_boolean tmp4_4;modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExpExpLst;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_integer _ri;
modelica_metatype _env = NULL;
modelica_metatype _exp = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_metatype _cache = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 1; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_integer tmp6;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta[3])) goto tmp3_end;
_exp = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],4,2) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 3));
tmp6 = mmc_unbox_integer(tmpMeta[3]);
_ri = tmp6;
tmpMeta[2] = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(_ri));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinIntegerEnumeration(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalBuiltinIntegerEnumeration(threadData, _inCache, _inEnv, _inExpExpLst, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinRooted(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[4] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_boolean tmp4_4;modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExpExpLst;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_metatype _env = NULL;
modelica_metatype _exp = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_metatype _cache = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 1; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta[3])) goto tmp3_end;
_exp = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
_cache = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, NULL);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _OMC_LIT56;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinRooted(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalBuiltinRooted(threadData, _inCache, _inEnv, _inExpExpLst, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinBoolean(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[4] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_boolean tmp4_4;modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExpExpLst;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_real _rv;
modelica_integer _iv;
modelica_boolean _bv;
modelica_metatype _env = NULL;
modelica_metatype _exp = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_metatype _cache = NULL;
modelica_boolean _b;
modelica_metatype _v = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 1; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_boolean tmp6 = 0;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta[3])) goto tmp3_end;
_exp = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
_cache = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter ,&_v);
{
modelica_metatype tmp9_1;
tmp9_1 = _v;
{
int tmp9;
{
switch (MMC_SWITCH_CAST(valueConstructor(tmp9_1))) {
case 4: {
modelica_real tmp10;
if (mmc__uniontype__metarecord__typedef__equal(tmp9_1,1,1) == 0) goto tmp8_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp9_1), 2));
tmp10 = mmc_unbox_real(tmpMeta[2]);
_rv = tmp10;
tmp6 = (!(_rv == 0.0));
goto tmp8_done;
}
case 3: {
modelica_integer tmp11;
if (mmc__uniontype__metarecord__typedef__equal(tmp9_1,0,1) == 0) goto tmp8_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp9_1), 2));
tmp11 = mmc_unbox_integer(tmpMeta[2]);
_iv = tmp11;
tmp6 = (!(_iv == ((modelica_integer) 0)));
goto tmp8_done;
}
case 6: {
modelica_integer tmp12;
if (mmc__uniontype__metarecord__typedef__equal(tmp9_1,3,1) == 0) goto tmp8_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp9_1), 2));
tmp12 = mmc_unbox_integer(tmpMeta[2]);
_bv = tmp12;
tmp6 = _bv;
goto tmp8_done;
}
}
goto tmp8_end;
tmp8_end: ;
}
goto goto_7;
goto_7:;
goto goto_2;
goto tmp8_done;
tmp8_done:;
}
}
_b = tmp6;
tmpMeta[2] = mmc_mk_box2(6, &Values_Value_BOOL__desc, mmc_mk_boolean(_b));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinBoolean(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalBuiltinBoolean(threadData, _inCache, _inEnv, _inExpExpLst, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinInteger(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[5] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_boolean tmp4_4;modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExpExpLst;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_real _rv;
modelica_integer _ri;
modelica_metatype _env = NULL;
modelica_metatype _exp = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_metatype _cache = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 1; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_real tmp6;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta[3])) goto tmp3_end;
_exp = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],1,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp6 = mmc_unbox_real(tmpMeta[3]);
_rv = tmp6;
_ri = ((modelica_integer)floor(_rv));
tmpMeta[2] = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(_ri));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinInteger(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalBuiltinInteger(threadData, _inCache, _inEnv, _inExpExpLst, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinRem(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[7] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
volatile modelica_metatype tmp4_1;volatile modelica_metatype tmp4_2;volatile modelica_metatype tmp4_3;volatile modelica_boolean tmp4_4;volatile modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExpExpLst;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_real _rv1;
modelica_real _rv2;
modelica_real _rvd;
modelica_real _dr;
modelica_integer _ri;
modelica_integer _ri1;
modelica_integer _ri2;
modelica_integer _ri_1;
modelica_integer _di;
modelica_metatype _env = NULL;
modelica_metatype _exp1 = NULL;
modelica_metatype _exp2 = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_string _exp1_str = NULL;
modelica_string _exp2_str = NULL;
modelica_metatype _cache = NULL;
modelica_metatype _info = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp3_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp4 < 6; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_real tmp6;
modelica_real tmp7;
modelica_real tmp8;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (listEmpty(tmpMeta[3])) goto tmp3_end;
tmpMeta[4] = MMC_CAR(tmpMeta[3]);
tmpMeta[5] = MMC_CDR(tmpMeta[3]);
if (!listEmpty(tmpMeta[5])) goto tmp3_end;
_exp1 = tmpMeta[2];
_exp2 = tmpMeta[4];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _exp1, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],1,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp6 = mmc_unbox_real(tmpMeta[3]);
_rv1 = tmp6;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _exp2, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],1,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp7 = mmc_unbox_real(tmpMeta[3]);
_rv2 = tmp7;
tmpMeta[4] = mmc_mk_cons(_exp1, mmc_mk_cons(_exp2, MMC_REFSTRUCTLIT(mmc_nil)));
tmpMeta[5] = omc_Ceval_cevalBuiltinDiv(threadData, _cache, _env, tmpMeta[4], _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[5];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],1,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp8 = mmc_unbox_real(tmpMeta[3]);
_dr = tmp8;
_rvd = _rv1 - ((_rv2) * (_dr));
tmpMeta[2] = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rvd));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 1: {
modelica_integer tmp9;
modelica_real tmp10;
modelica_real tmp11;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (listEmpty(tmpMeta[3])) goto tmp3_end;
tmpMeta[4] = MMC_CAR(tmpMeta[3]);
tmpMeta[5] = MMC_CDR(tmpMeta[3]);
if (!listEmpty(tmpMeta[5])) goto tmp3_end;
_exp1 = tmpMeta[2];
_exp2 = tmpMeta[4];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _exp1, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],0,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp9 = mmc_unbox_integer(tmpMeta[3]);
_ri = tmp9;
_rv1 = ((modelica_real)_ri);
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _exp2, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],1,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp10 = mmc_unbox_real(tmpMeta[3]);
_rv2 = tmp10;
tmpMeta[4] = mmc_mk_cons(_exp1, mmc_mk_cons(_exp2, MMC_REFSTRUCTLIT(mmc_nil)));
tmpMeta[5] = omc_Ceval_cevalBuiltinDiv(threadData, _cache, _env, tmpMeta[4], _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[5];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],1,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp11 = mmc_unbox_real(tmpMeta[3]);
_dr = tmp11;
_rvd = _rv1 - ((_rv2) * (_dr));
tmpMeta[2] = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rvd));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 2: {
modelica_real tmp12;
modelica_integer tmp13;
modelica_real tmp14;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (listEmpty(tmpMeta[3])) goto tmp3_end;
tmpMeta[4] = MMC_CAR(tmpMeta[3]);
tmpMeta[5] = MMC_CDR(tmpMeta[3]);
if (!listEmpty(tmpMeta[5])) goto tmp3_end;
_exp1 = tmpMeta[2];
_exp2 = tmpMeta[4];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _exp1, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],1,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp12 = mmc_unbox_real(tmpMeta[3]);
_rv1 = tmp12;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _exp2, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],0,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp13 = mmc_unbox_integer(tmpMeta[3]);
_ri = tmp13;
_rv2 = ((modelica_real)_ri);
tmpMeta[4] = mmc_mk_cons(_exp1, mmc_mk_cons(_exp2, MMC_REFSTRUCTLIT(mmc_nil)));
tmpMeta[5] = omc_Ceval_cevalBuiltinDiv(threadData, _cache, _env, tmpMeta[4], _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[5];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],1,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp14 = mmc_unbox_real(tmpMeta[3]);
_dr = tmp14;
_rvd = _rv1 - ((_rv2) * (_dr));
tmpMeta[2] = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rvd));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 3: {
modelica_integer tmp15;
modelica_integer tmp16;
modelica_integer tmp17;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (listEmpty(tmpMeta[3])) goto tmp3_end;
tmpMeta[4] = MMC_CAR(tmpMeta[3]);
tmpMeta[5] = MMC_CDR(tmpMeta[3]);
if (!listEmpty(tmpMeta[5])) goto tmp3_end;
_exp1 = tmpMeta[2];
_exp2 = tmpMeta[4];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _exp1, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],0,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp15 = mmc_unbox_integer(tmpMeta[3]);
_ri1 = tmp15;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _exp2, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],0,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp16 = mmc_unbox_integer(tmpMeta[3]);
_ri2 = tmp16;
tmpMeta[4] = mmc_mk_cons(_exp1, mmc_mk_cons(_exp2, MMC_REFSTRUCTLIT(mmc_nil)));
tmpMeta[5] = omc_Ceval_cevalBuiltinDiv(threadData, _cache, _env, tmpMeta[4], _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[5];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],0,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp17 = mmc_unbox_integer(tmpMeta[3]);
_di = tmp17;
_ri_1 = _ri1 - ((_ri2) * (_di));
tmpMeta[2] = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(_ri_1));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 4: {
modelica_real tmp18;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_5,0,1) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_5), 2));
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[3] = MMC_CAR(tmp4_3);
tmpMeta[4] = MMC_CDR(tmp4_3);
if (listEmpty(tmpMeta[4])) goto tmp3_end;
tmpMeta[5] = MMC_CAR(tmpMeta[4]);
tmpMeta[6] = MMC_CDR(tmpMeta[4]);
if (!listEmpty(tmpMeta[6])) goto tmp3_end;
_info = tmpMeta[2];
_exp1 = tmpMeta[3];
_exp2 = tmpMeta[5];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
omc_Ceval_ceval(threadData, _cache, _env, _exp2, _impl, _inMsg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],1,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp18 = mmc_unbox_real(tmpMeta[3]);
_rv2 = tmp18;
if((!(_rv2 == 0.0)))
{
goto goto_2;
}
_exp1_str = omc_ExpressionDump_printExpStr(threadData, _exp1);
_exp2_str = omc_ExpressionDump_printExpStr(threadData, _exp2);
tmpMeta[2] = mmc_mk_cons(_exp1_str, mmc_mk_cons(_exp2_str, MMC_REFSTRUCTLIT(mmc_nil)));
omc_Error_addSourceMessage(threadData, _OMC_LIT59, tmpMeta[2], _info);
goto goto_2;
goto tmp3_done;
}
case 5: {
modelica_integer tmp19;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_5,0,1) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_5), 2));
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[3] = MMC_CAR(tmp4_3);
tmpMeta[4] = MMC_CDR(tmp4_3);
if (listEmpty(tmpMeta[4])) goto tmp3_end;
tmpMeta[5] = MMC_CAR(tmpMeta[4]);
tmpMeta[6] = MMC_CDR(tmpMeta[4]);
if (!listEmpty(tmpMeta[6])) goto tmp3_end;
_info = tmpMeta[2];
_exp1 = tmpMeta[3];
_exp2 = tmpMeta[5];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
omc_Ceval_ceval(threadData, _cache, _env, _exp2, _impl, _inMsg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],0,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp19 = mmc_unbox_integer(tmpMeta[3]);
_ri2 = tmp19;
if((!(_ri2 == ((modelica_integer) 0))))
{
goto goto_2;
}
_exp1_str = omc_ExpressionDump_printExpStr(threadData, _exp1);
_exp2_str = omc_ExpressionDump_printExpStr(threadData, _exp2);
tmpMeta[2] = mmc_mk_cons(_exp1_str, mmc_mk_cons(_exp2_str, MMC_REFSTRUCTLIT(mmc_nil)));
omc_Error_addSourceMessage(threadData, _OMC_LIT59, tmpMeta[2], _info);
goto goto_2;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
tmp3_done:
(void)tmp4;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp3_done2;
goto_2:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp4 < 6) {
goto tmp3_top;
}
MMC_THROW_INTERNAL();
tmp3_done2:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinRem(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalBuiltinRem(threadData, _inCache, _inEnv, _inExpExpLst, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinMinArr(threadData_t *threadData, modelica_metatype _inValue)
{
modelica_metatype _outValue = NULL;
modelica_metatype _vals = NULL;
modelica_metatype tmpMeta[2] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
tmpMeta[0] = _inValue;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[0],5,2) == 0) MMC_THROW_INTERNAL();
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[0]), 2));
_vals = tmpMeta[1];
{
int tmp1;
modelica_metatype __omcQ_24tmpVar11;
modelica_metatype __omcQ_24tmpVar10;
int tmp2;
modelica_metatype _v_loopVar = 0;
modelica_metatype _v;
_v_loopVar = _vals;
tmp1 = 0;
while(1) {
tmp2 = 1;
if (!listEmpty(_v_loopVar)) {
_v = MMC_CAR(_v_loopVar);
_v_loopVar = MMC_CDR(_v_loopVar);
tmp2--;
}
if (tmp2 == 0) {
__omcQ_24tmpVar10 = _v;
if(tmp1)
{
__omcQ_24tmpVar11 = omc_Ceval_cevalBuiltinMin2(threadData, __omcQ_24tmpVar10, __omcQ_24tmpVar11);
}
else
{
__omcQ_24tmpVar11 = __omcQ_24tmpVar10;
tmp1 = 1;
}
} else if (tmp2 == 1) {
break;
} else {
MMC_THROW_INTERNAL();
}
}
if (!tmp1) MMC_THROW_INTERNAL();
tmpMeta[0] = __omcQ_24tmpVar11;
}
_outValue = tmpMeta[0];
_return: OMC_LABEL_UNUSED
return _outValue;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinMin2(threadData_t *threadData, modelica_metatype _v1, modelica_metatype _v2)
{
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[5] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp3_1;modelica_metatype tmp3_2;
tmp3_1 = _v1;
tmp3_2 = _v2;
{
modelica_integer _i1;
modelica_integer _i2;
modelica_real _r1;
modelica_real _r2;
modelica_boolean _b1;
modelica_boolean _b2;
modelica_string _s1 = NULL;
modelica_string _s2 = NULL;
volatile mmc_switch_type tmp3;
int tmp4;
tmp3 = 0;
for (; tmp3 < 5; tmp3++) {
switch (MMC_SWITCH_CAST(tmp3)) {
case 0: {
modelica_integer tmp5;
modelica_integer tmp6;
if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,0,1) == 0) goto tmp2_end;
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
tmp5 = mmc_unbox_integer(tmpMeta[1]);
if (mmc__uniontype__metarecord__typedef__equal(tmp3_2,0,1) == 0) goto tmp2_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_2), 2));
tmp6 = mmc_unbox_integer(tmpMeta[2]);
_i1 = tmp5;
_i2 = tmp6;
tmpMeta[1] = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(modelica_integer_min((modelica_integer)(_i1),(modelica_integer)(_i2))));
tmpMeta[0] = tmpMeta[1];
goto tmp2_done;
}
case 1: {
modelica_real tmp7;
modelica_real tmp8;
if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,1,1) == 0) goto tmp2_end;
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
tmp7 = mmc_unbox_real(tmpMeta[1]);
if (mmc__uniontype__metarecord__typedef__equal(tmp3_2,1,1) == 0) goto tmp2_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_2), 2));
tmp8 = mmc_unbox_real(tmpMeta[2]);
_r1 = tmp7;
_r2 = tmp8;
tmpMeta[1] = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(fmin(_r1,_r2)));
tmpMeta[0] = tmpMeta[1];
goto tmp2_done;
}
case 2: {
modelica_integer tmp9;
modelica_integer tmp10;
if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,3,1) == 0) goto tmp2_end;
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
tmp9 = mmc_unbox_integer(tmpMeta[1]);
if (mmc__uniontype__metarecord__typedef__equal(tmp3_2,3,1) == 0) goto tmp2_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_2), 2));
tmp10 = mmc_unbox_integer(tmpMeta[2]);
_b1 = tmp9;
_b2 = tmp10;
tmpMeta[1] = mmc_mk_box2(6, &Values_Value_BOOL__desc, mmc_mk_boolean((_b1 && _b2)));
tmpMeta[0] = tmpMeta[1];
goto tmp2_done;
}
case 3: {
if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,4,2) == 0) goto tmp2_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp3_2,4,2) == 0) goto tmp2_end;
tmpMeta[0] = ((mmc_unbox_integer((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_v1), 3)))) < mmc_unbox_integer((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_v2), 3)))))?_v1:_v2);
goto tmp2_done;
}
case 4: {
modelica_boolean tmp11;
tmp11 = omc_Flags_isSet(threadData, _OMC_LIT44);
if (1 != tmp11) goto goto_1;
_s1 = omc_ValuesUtil_valString(threadData, _v1);
_s2 = omc_ValuesUtil_valString(threadData, _v2);
tmpMeta[1] = stringAppend(_OMC_LIT60,_s1);
tmpMeta[2] = stringAppend(tmpMeta[1],_OMC_LIT61);
tmpMeta[3] = stringAppend(tmpMeta[2],_s2);
tmpMeta[4] = stringAppend(tmpMeta[3],_OMC_LIT62);
omc_Debug_traceln(threadData, tmpMeta[4]);
goto goto_1;
goto tmp2_done;
}
}
goto tmp2_end;
tmp2_end: ;
}
goto goto_1;
goto_1:;
MMC_THROW_INTERNAL();
goto tmp2_done;
tmp2_done:;
}
}
_outValue = tmpMeta[0];
_return: OMC_LABEL_UNUSED
return _outValue;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinMin(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[6] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_boolean tmp4_4;modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExpExpLst;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_metatype _v = NULL;
modelica_metatype _v1 = NULL;
modelica_metatype _v2 = NULL;
modelica_metatype _v_1 = NULL;
modelica_metatype _env = NULL;
modelica_metatype _arr = NULL;
modelica_metatype _s1 = NULL;
modelica_metatype _s2 = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_metatype _cache = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 2; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta[3])) goto tmp3_end;
_arr = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
_cache = omc_Ceval_ceval(threadData, _cache, _env, _arr, _impl, _msg, ((modelica_integer) 1) + _numIter ,&_v);
_v_1 = omc_Ceval_cevalBuiltinMinArr(threadData, _v);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _v_1;
goto tmp3_done;
}
case 1: {
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (listEmpty(tmpMeta[3])) goto tmp3_end;
tmpMeta[4] = MMC_CAR(tmpMeta[3]);
tmpMeta[5] = MMC_CDR(tmpMeta[3]);
if (!listEmpty(tmpMeta[5])) goto tmp3_end;
_s1 = tmpMeta[2];
_s2 = tmpMeta[4];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
_cache = omc_Ceval_ceval(threadData, _cache, _env, _s1, _impl, _msg, ((modelica_integer) 1) + _numIter ,&_v1);
_cache = omc_Ceval_ceval(threadData, _cache, _env, _s2, _impl, _msg, ((modelica_integer) 1) + _numIter ,&_v2);
_v = omc_Ceval_cevalBuiltinMin2(threadData, _v1, _v2);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _v;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinMin(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalBuiltinMin(threadData, _inCache, _inEnv, _inExpExpLst, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinMaxArr(threadData_t *threadData, modelica_metatype _inValue)
{
modelica_metatype _outValue = NULL;
modelica_metatype _vals = NULL;
modelica_metatype tmpMeta[2] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
tmpMeta[0] = _inValue;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[0],5,2) == 0) MMC_THROW_INTERNAL();
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[0]), 2));
_vals = tmpMeta[1];
{
int tmp1;
modelica_metatype __omcQ_24tmpVar13;
modelica_metatype __omcQ_24tmpVar12;
int tmp2;
modelica_metatype _v_loopVar = 0;
modelica_metatype _v;
_v_loopVar = _vals;
tmp1 = 0;
while(1) {
tmp2 = 1;
if (!listEmpty(_v_loopVar)) {
_v = MMC_CAR(_v_loopVar);
_v_loopVar = MMC_CDR(_v_loopVar);
tmp2--;
}
if (tmp2 == 0) {
__omcQ_24tmpVar12 = _v;
if(tmp1)
{
__omcQ_24tmpVar13 = omc_Ceval_cevalBuiltinMax2(threadData, __omcQ_24tmpVar12, __omcQ_24tmpVar13);
}
else
{
__omcQ_24tmpVar13 = __omcQ_24tmpVar12;
tmp1 = 1;
}
} else if (tmp2 == 1) {
break;
} else {
MMC_THROW_INTERNAL();
}
}
if (!tmp1) MMC_THROW_INTERNAL();
tmpMeta[0] = __omcQ_24tmpVar13;
}
_outValue = tmpMeta[0];
_return: OMC_LABEL_UNUSED
return _outValue;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinMax2(threadData_t *threadData, modelica_metatype _v1, modelica_metatype _v2)
{
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[5] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp3_1;modelica_metatype tmp3_2;
tmp3_1 = _v1;
tmp3_2 = _v2;
{
modelica_integer _i1;
modelica_integer _i2;
modelica_real _r1;
modelica_real _r2;
modelica_boolean _b1;
modelica_boolean _b2;
modelica_string _s1 = NULL;
modelica_string _s2 = NULL;
volatile mmc_switch_type tmp3;
int tmp4;
tmp3 = 0;
for (; tmp3 < 5; tmp3++) {
switch (MMC_SWITCH_CAST(tmp3)) {
case 0: {
modelica_integer tmp5;
modelica_integer tmp6;
if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,0,1) == 0) goto tmp2_end;
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
tmp5 = mmc_unbox_integer(tmpMeta[1]);
if (mmc__uniontype__metarecord__typedef__equal(tmp3_2,0,1) == 0) goto tmp2_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_2), 2));
tmp6 = mmc_unbox_integer(tmpMeta[2]);
_i1 = tmp5;
_i2 = tmp6;
tmpMeta[1] = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(modelica_integer_max((modelica_integer)(_i1),(modelica_integer)(_i2))));
tmpMeta[0] = tmpMeta[1];
goto tmp2_done;
}
case 1: {
modelica_real tmp7;
modelica_real tmp8;
if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,1,1) == 0) goto tmp2_end;
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
tmp7 = mmc_unbox_real(tmpMeta[1]);
if (mmc__uniontype__metarecord__typedef__equal(tmp3_2,1,1) == 0) goto tmp2_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_2), 2));
tmp8 = mmc_unbox_real(tmpMeta[2]);
_r1 = tmp7;
_r2 = tmp8;
tmpMeta[1] = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(fmax(_r1,_r2)));
tmpMeta[0] = tmpMeta[1];
goto tmp2_done;
}
case 2: {
modelica_integer tmp9;
modelica_integer tmp10;
if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,3,1) == 0) goto tmp2_end;
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
tmp9 = mmc_unbox_integer(tmpMeta[1]);
if (mmc__uniontype__metarecord__typedef__equal(tmp3_2,3,1) == 0) goto tmp2_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_2), 2));
tmp10 = mmc_unbox_integer(tmpMeta[2]);
_b1 = tmp9;
_b2 = tmp10;
tmpMeta[1] = mmc_mk_box2(6, &Values_Value_BOOL__desc, mmc_mk_boolean((_b1 || _b2)));
tmpMeta[0] = tmpMeta[1];
goto tmp2_done;
}
case 3: {
if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,4,2) == 0) goto tmp2_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp3_2,4,2) == 0) goto tmp2_end;
tmpMeta[0] = ((mmc_unbox_integer((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_v1), 3)))) > mmc_unbox_integer((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_v2), 3)))))?_v1:_v2);
goto tmp2_done;
}
case 4: {
modelica_boolean tmp11;
tmp11 = omc_Flags_isSet(threadData, _OMC_LIT44);
if (1 != tmp11) goto goto_1;
_s1 = omc_ValuesUtil_valString(threadData, _v1);
_s2 = omc_ValuesUtil_valString(threadData, _v2);
tmpMeta[1] = stringAppend(_OMC_LIT60,_s1);
tmpMeta[2] = stringAppend(tmpMeta[1],_OMC_LIT61);
tmpMeta[3] = stringAppend(tmpMeta[2],_s2);
tmpMeta[4] = stringAppend(tmpMeta[3],_OMC_LIT62);
omc_Debug_traceln(threadData, tmpMeta[4]);
goto goto_1;
goto tmp2_done;
}
}
goto tmp2_end;
tmp2_end: ;
}
goto goto_1;
goto_1:;
MMC_THROW_INTERNAL();
goto tmp2_done;
tmp2_done:;
}
}
_outValue = tmpMeta[0];
_return: OMC_LABEL_UNUSED
return _outValue;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinMax(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[6] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_boolean tmp4_4;modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExpExpLst;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_metatype _v = NULL;
modelica_metatype _v1 = NULL;
modelica_metatype _v2 = NULL;
modelica_metatype _v_1 = NULL;
modelica_metatype _env = NULL;
modelica_metatype _arr = NULL;
modelica_metatype _s1 = NULL;
modelica_metatype _s2 = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_metatype _cache = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 2; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta[3])) goto tmp3_end;
_arr = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
_cache = omc_Ceval_ceval(threadData, _cache, _env, _arr, _impl, _msg, ((modelica_integer) 1) + _numIter ,&_v);
_v_1 = omc_Ceval_cevalBuiltinMaxArr(threadData, _v);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _v_1;
goto tmp3_done;
}
case 1: {
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (listEmpty(tmpMeta[3])) goto tmp3_end;
tmpMeta[4] = MMC_CAR(tmpMeta[3]);
tmpMeta[5] = MMC_CDR(tmpMeta[3]);
if (!listEmpty(tmpMeta[5])) goto tmp3_end;
_s1 = tmpMeta[2];
_s2 = tmpMeta[4];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
_cache = omc_Ceval_ceval(threadData, _cache, _env, _s1, _impl, _msg, ((modelica_integer) 1) + _numIter ,&_v1);
_cache = omc_Ceval_ceval(threadData, _cache, _env, _s2, _impl, _msg, ((modelica_integer) 1) + _numIter ,&_v2);
_v = omc_Ceval_cevalBuiltinMax2(threadData, _v1, _v2);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _v;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinMax(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalBuiltinMax(threadData, _inCache, _inEnv, _inExpExpLst, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinSum(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[5] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_boolean tmp4_4;modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExpExpLst;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_metatype _v = NULL;
modelica_metatype _vals = NULL;
modelica_metatype _env = NULL;
modelica_metatype _arr = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_metatype _cache = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 1; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta[3])) goto tmp3_end;
_arr = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _arr, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],5,2) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
_vals = tmpMeta[3];
if(omc_Types_isInteger(threadData, omc_Expression_typeof(threadData, _arr)))
{
if(listEmpty(_vals))
{
_v = _OMC_LIT64;
}
else
{
tmpMeta[2] = omc_ValuesUtil_sumArrayelt(threadData, _vals);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],0,1) == 0) goto goto_2;
_v = tmpMeta[2];
}
}
else
{
if(listEmpty(_vals))
{
_v = _OMC_LIT63;
}
else
{
tmpMeta[2] = omc_ValuesUtil_sumArrayelt(threadData, _vals);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],1,1) == 0) goto goto_2;
_v = tmpMeta[2];
}
}
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _v;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinSum(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalBuiltinSum(threadData, _inCache, _inEnv, _inExpExpLst, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinMod(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _impl, modelica_metatype _msg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _cache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype _v1 = NULL;
modelica_metatype _v2 = NULL;
modelica_metatype _exp1 = NULL;
modelica_metatype _exp2 = NULL;
modelica_metatype tmpMeta[5] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_cache = _inCache;
tmpMeta[0] = _inExpExpLst;
if (listEmpty(tmpMeta[0])) MMC_THROW_INTERNAL();
tmpMeta[1] = MMC_CAR(tmpMeta[0]);
tmpMeta[2] = MMC_CDR(tmpMeta[0]);
if (listEmpty(tmpMeta[2])) MMC_THROW_INTERNAL();
tmpMeta[3] = MMC_CAR(tmpMeta[2]);
tmpMeta[4] = MMC_CDR(tmpMeta[2]);
if (!listEmpty(tmpMeta[4])) MMC_THROW_INTERNAL();
_exp1 = tmpMeta[1];
_exp2 = tmpMeta[3];
_cache = omc_Ceval_ceval(threadData, _cache, _inEnv, _exp1, _impl, _msg, ((modelica_integer) 1) + _numIter ,&_v1);
_cache = omc_Ceval_ceval(threadData, _cache, _inEnv, _exp2, _impl, _msg, ((modelica_integer) 1) + _numIter ,&_v2);
{
modelica_metatype tmp3_1;modelica_metatype tmp3_2;modelica_metatype tmp3_3;
tmp3_1 = _v1;
tmp3_2 = _v2;
tmp3_3 = _msg;
{
modelica_real _rv1;
modelica_real _rv2;
modelica_integer _ri;
modelica_integer _ri1;
modelica_integer _ri2;
modelica_string _lhs_str = NULL;
modelica_string _rhs_str = NULL;
modelica_metatype _info = NULL;
volatile mmc_switch_type tmp3;
int tmp4;
tmp3 = 0;
for (; tmp3 < 6; tmp3++) {
switch (MMC_SWITCH_CAST(tmp3)) {
case 0: {
modelica_real tmp5;
modelica_real tmp6;
if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,1,1) == 0) goto tmp2_end;
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
tmp5 = mmc_unbox_real(tmpMeta[1]);
if (mmc__uniontype__metarecord__typedef__equal(tmp3_2,1,1) == 0) goto tmp2_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_2), 2));
tmp6 = mmc_unbox_real(tmpMeta[2]);
_rv1 = tmp5;
_rv2 = tmp6;
tmpMeta[1] = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(modelica_real_mod(_rv1, _rv2)));
tmpMeta[0] = tmpMeta[1];
goto tmp2_done;
}
case 1: {
modelica_integer tmp7;
modelica_real tmp8;
if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,0,1) == 0) goto tmp2_end;
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
tmp7 = mmc_unbox_integer(tmpMeta[1]);
if (mmc__uniontype__metarecord__typedef__equal(tmp3_2,1,1) == 0) goto tmp2_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_2), 2));
tmp8 = mmc_unbox_real(tmpMeta[2]);
_ri = tmp7;
_rv2 = tmp8;
tmpMeta[1] = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(modelica_real_mod(((modelica_real)_ri), _rv2)));
tmpMeta[0] = tmpMeta[1];
goto tmp2_done;
}
case 2: {
modelica_real tmp9;
modelica_integer tmp10;
if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,1,1) == 0) goto tmp2_end;
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
tmp9 = mmc_unbox_real(tmpMeta[1]);
if (mmc__uniontype__metarecord__typedef__equal(tmp3_2,0,1) == 0) goto tmp2_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_2), 2));
tmp10 = mmc_unbox_integer(tmpMeta[2]);
_rv1 = tmp9;
_ri = tmp10;
tmpMeta[1] = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(modelica_real_mod(_rv1, ((modelica_real)_ri))));
tmpMeta[0] = tmpMeta[1];
goto tmp2_done;
}
case 3: {
modelica_integer tmp11;
modelica_integer tmp12;
if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,0,1) == 0) goto tmp2_end;
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
tmp11 = mmc_unbox_integer(tmpMeta[1]);
if (mmc__uniontype__metarecord__typedef__equal(tmp3_2,0,1) == 0) goto tmp2_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_2), 2));
tmp12 = mmc_unbox_integer(tmpMeta[2]);
_ri1 = tmp11;
_ri2 = tmp12;
tmpMeta[1] = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(modelica_integer_mod(_ri1, _ri2)));
tmpMeta[0] = tmpMeta[1];
goto tmp2_done;
}
case 4: {
modelica_real tmp13;
if (mmc__uniontype__metarecord__typedef__equal(tmp3_2,1,1) == 0) goto tmp2_end;
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_2), 2));
tmp13 = mmc_unbox_real(tmpMeta[1]);
if (mmc__uniontype__metarecord__typedef__equal(tmp3_3,0,1) == 0) goto tmp2_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_3), 2));
_rv2 = tmp13;
_info = tmpMeta[2];
if (!(_rv2 == 0.0)) goto tmp2_end;
_lhs_str = omc_ExpressionDump_printExpStr(threadData, _exp1);
_rhs_str = omc_ExpressionDump_printExpStr(threadData, _exp2);
tmpMeta[1] = mmc_mk_cons(_lhs_str, mmc_mk_cons(_rhs_str, MMC_REFSTRUCTLIT(mmc_nil)));
omc_Error_addSourceMessage(threadData, _OMC_LIT67, tmpMeta[1], _info);
goto goto_1;
goto tmp2_done;
}
case 5: {
modelica_integer tmp14;
if (mmc__uniontype__metarecord__typedef__equal(tmp3_3,0,1) == 0) goto tmp2_end;
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_3), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmp3_2,0,1) == 0) goto tmp2_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_2), 2));
tmp14 = mmc_unbox_integer(tmpMeta[2]);
if (0 != tmp14) goto tmp2_end;
_info = tmpMeta[1];
_lhs_str = omc_ExpressionDump_printExpStr(threadData, _exp1);
_rhs_str = omc_ExpressionDump_printExpStr(threadData, _exp2);
tmpMeta[1] = mmc_mk_cons(_lhs_str, mmc_mk_cons(_rhs_str, MMC_REFSTRUCTLIT(mmc_nil)));
omc_Error_addSourceMessage(threadData, _OMC_LIT67, tmpMeta[1], _info);
goto goto_1;
goto tmp2_done;
}
}
goto tmp2_end;
tmp2_end: ;
}
goto goto_1;
goto_1:;
MMC_THROW_INTERNAL();
goto tmp2_done;
tmp2_done:;
}
}
_outValue = tmpMeta[0];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _cache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinMod(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _impl, modelica_metatype _msg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _cache = NULL;
tmp1 = mmc_unbox_integer(_impl);
tmp2 = mmc_unbox_integer(_numIter);
_cache = omc_Ceval_cevalBuiltinMod(threadData, _inCache, _inEnv, _inExpExpLst, tmp1, _msg, tmp2, out_outValue);
return _cache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinDiv(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[7] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
volatile modelica_metatype tmp4_1;volatile modelica_metatype tmp4_2;volatile modelica_metatype tmp4_3;volatile modelica_boolean tmp4_4;volatile modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExpExpLst;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_real _rv1;
modelica_real _rv2;
modelica_real _rv_1;
modelica_real _rv_2;
modelica_integer _ri;
modelica_integer _ri_1;
modelica_integer _ri1;
modelica_integer _ri2;
modelica_metatype _env = NULL;
modelica_metatype _exp1 = NULL;
modelica_metatype _exp2 = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_string _exp1_str = NULL;
modelica_string _exp2_str = NULL;
modelica_string _lh_str = NULL;
modelica_string _rh_str = NULL;
modelica_metatype _cache = NULL;
modelica_boolean _b;
modelica_metatype _info = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp3_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp4 < 8; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_real tmp6;
modelica_real tmp7;
modelica_real tmp8;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (listEmpty(tmpMeta[3])) goto tmp3_end;
tmpMeta[4] = MMC_CAR(tmpMeta[3]);
tmpMeta[5] = MMC_CDR(tmpMeta[3]);
if (!listEmpty(tmpMeta[5])) goto tmp3_end;
_exp1 = tmpMeta[2];
_exp2 = tmpMeta[4];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _exp1, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],1,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp6 = mmc_unbox_real(tmpMeta[3]);
_rv1 = tmp6;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _exp2, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],1,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp7 = mmc_unbox_real(tmpMeta[3]);
_rv2 = tmp7;
tmp8 = _rv2;
if (tmp8 == 0) {goto goto_2;}
_rv_1 = (_rv1) / tmp8;
_b = (_rv_1 < 0.0);
_rv_2 = (_b?ceil(_rv_1):floor(_rv_1));
tmpMeta[2] = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_2));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 1: {
modelica_integer tmp9;
modelica_real tmp10;
modelica_real tmp11;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (listEmpty(tmpMeta[3])) goto tmp3_end;
tmpMeta[4] = MMC_CAR(tmpMeta[3]);
tmpMeta[5] = MMC_CDR(tmpMeta[3]);
if (!listEmpty(tmpMeta[5])) goto tmp3_end;
_exp1 = tmpMeta[2];
_exp2 = tmpMeta[4];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _exp1, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],0,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp9 = mmc_unbox_integer(tmpMeta[3]);
_ri = tmp9;
_rv1 = ((modelica_real)_ri);
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _exp2, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],1,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp10 = mmc_unbox_real(tmpMeta[3]);
_rv2 = tmp10;
omc_Error_addInternalError(threadData, _OMC_LIT68, _OMC_LIT70);
tmp11 = _rv2;
if (tmp11 == 0) {goto goto_2;}
_rv_1 = (_rv1) / tmp11;
_b = (_rv_1 < 0.0);
_rv_2 = (_b?ceil(_rv_1):floor(_rv_1));
tmpMeta[2] = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_2));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 2: {
modelica_real tmp12;
modelica_integer tmp13;
modelica_real tmp14;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (listEmpty(tmpMeta[3])) goto tmp3_end;
tmpMeta[4] = MMC_CAR(tmpMeta[3]);
tmpMeta[5] = MMC_CDR(tmpMeta[3]);
if (!listEmpty(tmpMeta[5])) goto tmp3_end;
_exp1 = tmpMeta[2];
_exp2 = tmpMeta[4];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _exp1, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],1,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp12 = mmc_unbox_real(tmpMeta[3]);
_rv1 = tmp12;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _exp2, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],0,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp13 = mmc_unbox_integer(tmpMeta[3]);
_ri = tmp13;
omc_Error_addInternalError(threadData, _OMC_LIT71, _OMC_LIT72);
_rv2 = ((modelica_real)_ri);
tmp14 = _rv2;
if (tmp14 == 0) {goto goto_2;}
_rv_1 = (_rv1) / tmp14;
_b = (_rv_1 < 0.0);
_rv_2 = (_b?ceil(_rv_1):floor(_rv_1));
tmpMeta[2] = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_2));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 3: {
modelica_integer tmp15;
modelica_integer tmp16;
modelica_integer tmp17;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (listEmpty(tmpMeta[3])) goto tmp3_end;
tmpMeta[4] = MMC_CAR(tmpMeta[3]);
tmpMeta[5] = MMC_CDR(tmpMeta[3]);
if (!listEmpty(tmpMeta[5])) goto tmp3_end;
_exp1 = tmpMeta[2];
_exp2 = tmpMeta[4];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _exp1, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],0,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp15 = mmc_unbox_integer(tmpMeta[3]);
_ri1 = tmp15;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _exp2, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],0,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp16 = mmc_unbox_integer(tmpMeta[3]);
_ri2 = tmp16;
tmp17 = _ri2;
if (tmp17 == 0) {goto goto_2;}
_ri_1 = ldiv(_ri1,tmp17).quot;
tmpMeta[2] = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(_ri_1));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 4: {
modelica_real tmp18;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_5,0,1) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_5), 2));
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[3] = MMC_CAR(tmp4_3);
tmpMeta[4] = MMC_CDR(tmp4_3);
if (listEmpty(tmpMeta[4])) goto tmp3_end;
tmpMeta[5] = MMC_CAR(tmpMeta[4]);
tmpMeta[6] = MMC_CDR(tmpMeta[4]);
if (!listEmpty(tmpMeta[6])) goto tmp3_end;
_info = tmpMeta[2];
_exp1 = tmpMeta[3];
_exp2 = tmpMeta[5];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
tmp4 += 1;
omc_Ceval_ceval(threadData, _cache, _env, _exp2, _impl, _inMsg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],1,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp18 = mmc_unbox_real(tmpMeta[3]);
_rv2 = tmp18;
if((!(_rv2 == 0.0)))
{
goto goto_2;
}
_exp1_str = omc_ExpressionDump_printExpStr(threadData, _exp1);
_exp2_str = omc_ExpressionDump_printExpStr(threadData, _exp2);
tmpMeta[2] = mmc_mk_cons(_exp1_str, mmc_mk_cons(_exp2_str, MMC_REFSTRUCTLIT(mmc_nil)));
omc_Error_addSourceMessage(threadData, _OMC_LIT75, tmpMeta[2], _info);
goto goto_2;
goto tmp3_done;
}
case 5: {
modelica_real tmp19;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_5,1,0) == 0) goto tmp3_end;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (listEmpty(tmpMeta[3])) goto tmp3_end;
tmpMeta[4] = MMC_CAR(tmpMeta[3]);
tmpMeta[5] = MMC_CDR(tmpMeta[3]);
if (!listEmpty(tmpMeta[5])) goto tmp3_end;
_exp2 = tmpMeta[4];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
tmp4 += 1;
omc_Ceval_ceval(threadData, _cache, _env, _exp2, _impl, _OMC_LIT76, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],1,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp19 = mmc_unbox_real(tmpMeta[3]);
_rv2 = tmp19;
if((!(_rv2 == 0.0)))
{
goto goto_2;
}
goto goto_2;
goto tmp3_done;
}
case 6: {
modelica_integer tmp20;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_5,0,1) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_5), 2));
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[3] = MMC_CAR(tmp4_3);
tmpMeta[4] = MMC_CDR(tmp4_3);
if (listEmpty(tmpMeta[4])) goto tmp3_end;
tmpMeta[5] = MMC_CAR(tmpMeta[4]);
tmpMeta[6] = MMC_CDR(tmpMeta[4]);
if (!listEmpty(tmpMeta[6])) goto tmp3_end;
_info = tmpMeta[2];
_exp1 = tmpMeta[3];
_exp2 = tmpMeta[5];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
tmp4 += 1;
omc_Ceval_ceval(threadData, _cache, _env, _exp2, _impl, _inMsg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],0,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp20 = mmc_unbox_integer(tmpMeta[3]);
_ri2 = tmp20;
if((!(_ri2 == ((modelica_integer) 0))))
{
goto goto_2;
}
_lh_str = omc_ExpressionDump_printExpStr(threadData, _exp1);
_rh_str = omc_ExpressionDump_printExpStr(threadData, _exp2);
tmpMeta[2] = mmc_mk_cons(_lh_str, mmc_mk_cons(_rh_str, MMC_REFSTRUCTLIT(mmc_nil)));
omc_Error_addSourceMessage(threadData, _OMC_LIT75, tmpMeta[2], _info);
goto goto_2;
goto tmp3_done;
}
case 7: {
modelica_integer tmp21;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_5,1,0) == 0) goto tmp3_end;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (listEmpty(tmpMeta[3])) goto tmp3_end;
tmpMeta[4] = MMC_CAR(tmpMeta[3]);
tmpMeta[5] = MMC_CDR(tmpMeta[3]);
if (!listEmpty(tmpMeta[5])) goto tmp3_end;
_exp2 = tmpMeta[4];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
omc_Ceval_ceval(threadData, _cache, _env, _exp2, _impl, _OMC_LIT76, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],0,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp21 = mmc_unbox_integer(tmpMeta[3]);
_ri2 = tmp21;
if((!(_ri2 == ((modelica_integer) 0))))
{
goto goto_2;
}
goto goto_2;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
tmp3_done:
(void)tmp4;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp3_done2;
goto_2:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp4 < 8) {
goto tmp3_top;
}
MMC_THROW_INTERNAL();
tmp3_done2:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinDiv(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalBuiltinDiv(threadData, _inCache, _inEnv, _inExpExpLst, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinAtan2(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[6] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_boolean tmp4_4;modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExpExpLst;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_real _rv;
modelica_real _rv_1;
modelica_real _rv_2;
modelica_metatype _env = NULL;
modelica_metatype _exp1 = NULL;
modelica_metatype _exp2 = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_metatype _cache = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 1; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_real tmp6;
modelica_real tmp7;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (listEmpty(tmpMeta[3])) goto tmp3_end;
tmpMeta[4] = MMC_CAR(tmpMeta[3]);
tmpMeta[5] = MMC_CDR(tmpMeta[3]);
if (!listEmpty(tmpMeta[5])) goto tmp3_end;
_exp1 = tmpMeta[2];
_exp2 = tmpMeta[4];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _exp1, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],1,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp6 = mmc_unbox_real(tmpMeta[3]);
_rv_1 = tmp6;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _exp2, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],1,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp7 = mmc_unbox_real(tmpMeta[3]);
_rv_2 = tmp7;
_rv = atan2(_rv_1, _rv_2);
tmpMeta[2] = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinAtan2(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalBuiltinAtan2(threadData, _inCache, _inEnv, _inExpExpLst, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinAtan(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[5] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_boolean tmp4_4;modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExpExpLst;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_real _rv;
modelica_real _rv_1;
modelica_metatype _env = NULL;
modelica_metatype _exp = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_metatype _cache = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 1; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_real tmp6;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta[3])) goto tmp3_end;
_exp = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],1,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp6 = mmc_unbox_real(tmpMeta[3]);
_rv = tmp6;
_rv_1 = atan(_rv);
tmpMeta[2] = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_1));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinAtan(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalBuiltinAtan(threadData, _inCache, _inEnv, _inExpExpLst, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinAcos(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[5] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_boolean tmp4_4;modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExpExpLst;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_real _rv;
modelica_real _rv_1;
modelica_metatype _env = NULL;
modelica_metatype _exp = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_metatype _cache = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 1; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_real tmp6;
modelica_boolean tmp7;
modelica_real tmp8;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta[3])) goto tmp3_end;
_exp = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],1,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp6 = mmc_unbox_real(tmpMeta[3]);
_rv = tmp6;
tmp7 = ((_rv >= -1.0) && (_rv <= 1.0));
if (1 != tmp7) goto goto_2;
tmp8 = _rv;
if(!(tmp8 >= -1.0 && tmp8 <= 1.0))
{
FILE_INFO info = {"",0,0,0,0,0};
omc_assert(threadData, info, "Model error: Argument of acos(rv) outside the domain -1.0 <= %g <= 1.0", tmp8);
}
_rv_1 = acos(tmp8);
tmpMeta[2] = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_1));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinAcos(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalBuiltinAcos(threadData, _inCache, _inEnv, _inExpExpLst, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinAsin(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[5] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_boolean tmp4_4;modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExpExpLst;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_real _rv;
modelica_real _rv_1;
modelica_metatype _env = NULL;
modelica_metatype _exp = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_metatype _cache = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 1; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_real tmp6;
modelica_boolean tmp7;
modelica_real tmp8;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta[3])) goto tmp3_end;
_exp = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],1,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp6 = mmc_unbox_real(tmpMeta[3]);
_rv = tmp6;
tmp7 = ((_rv >= -1.0) && (_rv <= 1.0));
if (1 != tmp7) goto goto_2;
tmp8 = _rv;
if(!(tmp8 >= -1.0 && tmp8 <= 1.0))
{
FILE_INFO info = {"",0,0,0,0,0};
omc_assert(threadData, info, "Model error: Argument of asin(rv) outside the domain -1.0 <= %g <= 1.0", tmp8);
}
_rv_1 = asin(tmp8);
tmpMeta[2] = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_1));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinAsin(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalBuiltinAsin(threadData, _inCache, _inEnv, _inExpExpLst, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinTanh(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[5] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_boolean tmp4_4;modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExpExpLst;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_real _rv;
modelica_real _rv_1;
modelica_metatype _env = NULL;
modelica_metatype _exp = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_metatype _cache = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 1; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_real tmp6;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta[3])) goto tmp3_end;
_exp = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],1,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp6 = mmc_unbox_real(tmpMeta[3]);
_rv = tmp6;
_rv_1 = tanh(_rv);
tmpMeta[2] = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_1));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinTanh(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalBuiltinTanh(threadData, _inCache, _inEnv, _inExpExpLst, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinTan(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _impl, modelica_metatype _msg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[5] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExpExpLst;
{
modelica_real _rv;
modelica_real _rv_1;
modelica_metatype _env = NULL;
modelica_metatype _exp = NULL;
modelica_metatype _cache = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 1; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_real tmp6;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta[3])) goto tmp3_end;
_exp = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],1,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp6 = mmc_unbox_real(tmpMeta[3]);
_rv = tmp6;
_rv_1 = tan(_rv);
tmpMeta[2] = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_1));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinTan(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _impl, modelica_metatype _msg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_impl);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalBuiltinTan(threadData, _inCache, _inEnv, _inExpExpLst, tmp1, _msg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinLog10(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[5] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_boolean tmp4_4;modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExpExpLst;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_real _rv;
modelica_real _rv_1;
modelica_metatype _env = NULL;
modelica_metatype _exp = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_metatype _cache = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 1; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_real tmp6;
modelica_boolean tmp7;
modelica_real tmp8;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta[3])) goto tmp3_end;
_exp = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],1,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp6 = mmc_unbox_real(tmpMeta[3]);
_rv = tmp6;
tmp7 = (_rv > 0.0);
if (1 != tmp7) goto goto_2;
tmp8 = _rv;
if(!(tmp8 > 0.0))
{
FILE_INFO info = {"",0,0,0,0,0};
omc_assert(threadData, info, "Model error: Argument of log10(rv) was %g should be > 0", tmp8);
}
_rv_1 = log10(tmp8);
tmpMeta[2] = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_1));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinLog10(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalBuiltinLog10(threadData, _inCache, _inEnv, _inExpExpLst, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinLog(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[5] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_boolean tmp4_4;modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExpExpLst;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_real _rv;
modelica_real _rv_1;
modelica_metatype _env = NULL;
modelica_metatype _exp = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_metatype _cache = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 1; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_real tmp6;
modelica_boolean tmp7;
modelica_real tmp8;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta[3])) goto tmp3_end;
_exp = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],1,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp6 = mmc_unbox_real(tmpMeta[3]);
_rv = tmp6;
tmp7 = (_rv > 0.0);
if (1 != tmp7) goto goto_2;
tmp8 = _rv;
if(!(tmp8 > 0.0))
{
FILE_INFO info = {"",0,0,0,0,0};
omc_assert(threadData, info, "Model error: Argument of log(rv) was %g should be > 0", tmp8);
}
_rv_1 = log(tmp8);
tmpMeta[2] = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_1));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinLog(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalBuiltinLog(threadData, _inCache, _inEnv, _inExpExpLst, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinCosh(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[5] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_boolean tmp4_4;modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExpExpLst;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_real _rv;
modelica_real _rv_1;
modelica_metatype _env = NULL;
modelica_metatype _exp = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_metatype _cache = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 1; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_real tmp6;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta[3])) goto tmp3_end;
_exp = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],1,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp6 = mmc_unbox_real(tmpMeta[3]);
_rv = tmp6;
_rv_1 = cosh(_rv);
tmpMeta[2] = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_1));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinCosh(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalBuiltinCosh(threadData, _inCache, _inEnv, _inExpExpLst, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinCos(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[5] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_boolean tmp4_4;modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExpExpLst;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_real _rv;
modelica_real _rv_1;
modelica_metatype _env = NULL;
modelica_metatype _exp = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_metatype _cache = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 1; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_real tmp6;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta[3])) goto tmp3_end;
_exp = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],1,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp6 = mmc_unbox_real(tmpMeta[3]);
_rv = tmp6;
_rv_1 = cos(_rv);
tmpMeta[2] = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_1));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinCos(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalBuiltinCos(threadData, _inCache, _inEnv, _inExpExpLst, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinSinh(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[5] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_boolean tmp4_4;modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExpExpLst;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_real _rv;
modelica_real _rv_1;
modelica_metatype _env = NULL;
modelica_metatype _exp = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_metatype _cache = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 1; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_real tmp6;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta[3])) goto tmp3_end;
_exp = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],1,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp6 = mmc_unbox_real(tmpMeta[3]);
_rv = tmp6;
_rv_1 = sinh(_rv);
tmpMeta[2] = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_1));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinSinh(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalBuiltinSinh(threadData, _inCache, _inEnv, _inExpExpLst, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinSin(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[5] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_boolean tmp4_4;modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExpExpLst;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_real _rv;
modelica_real _rv_1;
modelica_metatype _env = NULL;
modelica_metatype _exp = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_metatype _cache = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 1; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_real tmp6;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta[3])) goto tmp3_end;
_exp = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],1,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp6 = mmc_unbox_real(tmpMeta[3]);
_rv = tmp6;
_rv_1 = sin(_rv);
tmpMeta[2] = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_1));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinSin(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalBuiltinSin(threadData, _inCache, _inEnv, _inExpExpLst, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinSqrt(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[5] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_boolean tmp4_4;modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExpExpLst;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_real _rv;
modelica_real _rv_1;
modelica_metatype _env = NULL;
modelica_metatype _exp = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_metatype _cache = NULL;
modelica_metatype _info = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 1; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_real tmp6;
modelica_real tmp7;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta[3])) goto tmp3_end;
_exp = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],1,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp6 = mmc_unbox_real(tmpMeta[3]);
_rv = tmp6;
if((_rv < 0.0))
{
tmpMeta[2] = _msg;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],0,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
_info = tmpMeta[3];
tmpMeta[2] = MMC_REFSTRUCTLIT(mmc_nil);
omc_Error_addSourceMessage(threadData, _OMC_LIT79, tmpMeta[2], _info);
goto goto_2;
}
else
{
tmp7 = _rv;
if(!(tmp7 >= 0.0))
{
FILE_INFO info = {"",0,0,0,0,0};
omc_assert(threadData, info, "Model error: Argument of sqrt(rv) was %g should be >= 0", tmp7);
}
_rv_1 = sqrt(tmp7);
}
tmpMeta[2] = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_1));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinSqrt(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalBuiltinSqrt(threadData, _inCache, _inEnv, _inExpExpLst, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinCeil(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[5] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_boolean tmp4_4;modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExpExpLst;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_real _rv;
modelica_real _rv_1;
modelica_real _rvt;
modelica_real _realRet;
modelica_integer _ri;
modelica_integer _ri_1;
modelica_metatype _env = NULL;
modelica_metatype _exp = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_metatype _cache = NULL;
modelica_metatype _v = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 1; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_real tmp6;
modelica_boolean tmp7;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta[3])) goto tmp3_end;
_exp = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],1,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp6 = mmc_unbox_real(tmpMeta[3]);
_rv = tmp6;
_rv_1 = floor(_rv);
_ri = ((modelica_integer)floor(_rv_1));
_rvt = ((modelica_real)_ri);
_ri_1 = ((modelica_integer) 1) + _ri;
_realRet = ((modelica_real)_ri_1);
tmp7 = (modelica_boolean)(_rvt == _rv);
if(tmp7)
{
tmpMeta[2] = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rvt));
tmpMeta[4] = tmpMeta[2];
}
else
{
tmpMeta[3] = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_realRet));
tmpMeta[4] = tmpMeta[3];
}
_v = tmpMeta[4];
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _v;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinCeil(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalBuiltinCeil(threadData, _inCache, _inEnv, _inExpExpLst, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinFloor(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[5] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_boolean tmp4_4;modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExpExpLst;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_real _rv;
modelica_real _rv_1;
modelica_metatype _env = NULL;
modelica_metatype _exp = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_metatype _cache = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 1; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_real tmp6;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta[3])) goto tmp3_end;
_exp = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],1,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp6 = mmc_unbox_real(tmpMeta[3]);
_rv = tmp6;
_rv_1 = floor(_rv);
tmpMeta[2] = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_1));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinFloor(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalBuiltinFloor(threadData, _inCache, _inEnv, _inExpExpLst, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_catDimension2(threadData_t *threadData, modelica_metatype _inValuesValueLstLst, modelica_integer _inInteger)
{
modelica_metatype _outValuesValueLstLst = NULL;
modelica_metatype tmpMeta[1] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
volatile modelica_metatype tmp3_1;volatile modelica_integer tmp3_2;
tmp3_1 = _inValuesValueLstLst;
tmp3_2 = _inInteger;
{
modelica_metatype _l_lst = NULL;
modelica_metatype _first_lst = NULL;
modelica_metatype _first_lst_1 = NULL;
modelica_metatype _lst = NULL;
modelica_metatype _rest = NULL;
modelica_metatype _rest_1 = NULL;
modelica_integer _dim;
volatile mmc_switch_type tmp3;
int tmp4;
tmp3 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp2_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp3 < 2; tmp3++) {
switch (MMC_SWITCH_CAST(tmp3)) {
case 0: {
modelica_integer tmp5;
_lst = tmp3_1;
_dim = tmp3_2;
_l_lst = listHead(_lst);
tmp5 = listLength(_l_lst);
if (1 != tmp5) goto goto_1;
_first_lst = omc_List_map(threadData, _lst, boxvar_listHead);
_first_lst_1 = omc_Ceval_catDimension(threadData, _first_lst, _dim);
tmpMeta[0] = omc_List_map(threadData, _first_lst_1, boxvar_List_create);
goto tmp2_done;
}
case 1: {
_lst = tmp3_1;
_dim = tmp3_2;
_first_lst = omc_List_map(threadData, _lst, boxvar_listHead);
_rest = omc_List_map(threadData, _lst, boxvar_List_rest);
_first_lst_1 = omc_Ceval_catDimension(threadData, _first_lst, _dim);
_rest_1 = omc_Ceval_catDimension2(threadData, _rest, _dim);
tmpMeta[0] = omc_List_threadMap(threadData, _rest_1, _first_lst_1, boxvar_List_consr);
goto tmp2_done;
}
}
goto tmp2_end;
tmp2_end: ;
}
goto goto_1;
tmp2_done:
(void)tmp3;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp2_done2;
goto_1:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp3 < 2) {
goto tmp2_top;
}
MMC_THROW_INTERNAL();
tmp2_done2:;
}
}
_outValuesValueLstLst = tmpMeta[0];
_return: OMC_LABEL_UNUSED
return _outValuesValueLstLst;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_catDimension2(threadData_t *threadData, modelica_metatype _inValuesValueLstLst, modelica_metatype _inInteger)
{
modelica_integer tmp1;
modelica_metatype _outValuesValueLstLst = NULL;
tmp1 = mmc_unbox_integer(_inInteger);
_outValuesValueLstLst = omc_Ceval_catDimension2(threadData, _inValuesValueLstLst, tmp1);
return _outValuesValueLstLst;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_catDimension(threadData_t *threadData, modelica_metatype _inValuesValueLst, modelica_integer _inInteger)
{
modelica_metatype _outValuesValueLst = NULL;
modelica_metatype tmpMeta[7] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
volatile modelica_metatype tmp3_1;volatile modelica_integer tmp3_2;
tmp3_1 = _inValuesValueLst;
tmp3_2 = _inInteger;
{
modelica_metatype _vlst_lst = NULL;
modelica_metatype _v_lst_lst = NULL;
modelica_metatype _v_lst_lst_1 = NULL;
modelica_metatype _v_lst_1 = NULL;
modelica_metatype _vlst = NULL;
modelica_integer _dim_1;
modelica_integer _dim;
modelica_integer _i1;
modelica_integer _i2;
modelica_metatype _il = NULL;
volatile mmc_switch_type tmp3;
int tmp4;
tmp3 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp2_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp3 < 2; tmp3++) {
switch (MMC_SWITCH_CAST(tmp3)) {
case 0: {
if (1 != tmp3_2) goto tmp2_end;
_vlst = tmp3_1;
_vlst_lst = omc_List_map(threadData, _vlst, boxvar_ValuesUtil_arrayValues);
tmpMeta[0] = omc_List_flatten(threadData, _vlst_lst);
goto tmp2_done;
}
case 1: {
modelica_integer tmp5;
_vlst = tmp3_1;
_dim = tmp3_2;
_v_lst_lst = omc_List_map(threadData, _vlst, boxvar_ValuesUtil_arrayValues);
_dim_1 = ((modelica_integer) -1) + _dim;
_v_lst_lst_1 = omc_Ceval_catDimension2(threadData, _v_lst_lst, _dim_1);
_v_lst_1 = omc_List_map(threadData, _v_lst_lst_1, boxvar_ValuesUtil_makeArray);
tmpMeta[1] = _v_lst_1;
if (listEmpty(tmpMeta[1])) goto goto_1;
tmpMeta[2] = MMC_CAR(tmpMeta[1]);
tmpMeta[3] = MMC_CDR(tmpMeta[1]);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],5,2) == 0) goto goto_1;
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 3));
if (listEmpty(tmpMeta[4])) goto goto_1;
tmpMeta[5] = MMC_CAR(tmpMeta[4]);
tmpMeta[6] = MMC_CDR(tmpMeta[4]);
tmp5 = mmc_unbox_integer(tmpMeta[5]);
_i2 = tmp5;
_il = tmpMeta[6];
_i1 = listLength(_v_lst_1);
tmpMeta[2] = mmc_mk_cons(mmc_mk_integer(_i1), _il);
tmpMeta[1] = mmc_mk_cons(mmc_mk_integer(_i2), tmpMeta[2]);
tmpMeta[0] = omc_Ceval_cevalBuiltinTranspose2(threadData, _v_lst_1, ((modelica_integer) 1), tmpMeta[1]);
goto tmp2_done;
}
}
goto tmp2_end;
tmp2_end: ;
}
goto goto_1;
tmp2_done:
(void)tmp3;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp2_done2;
goto_1:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp3 < 2) {
goto tmp2_top;
}
MMC_THROW_INTERNAL();
tmp2_done2:;
}
}
_outValuesValueLst = tmpMeta[0];
_return: OMC_LABEL_UNUSED
return _outValuesValueLst;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_catDimension(threadData_t *threadData, modelica_metatype _inValuesValueLst, modelica_metatype _inInteger)
{
modelica_integer tmp1;
modelica_metatype _outValuesValueLst = NULL;
tmp1 = mmc_unbox_integer(_inInteger);
_outValuesValueLst = omc_Ceval_catDimension(threadData, _inValuesValueLst, tmp1);
return _outValuesValueLst;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalCat(threadData_t *threadData, modelica_metatype _v_lst, modelica_integer _dim)
{
modelica_metatype _outValue = NULL;
modelica_metatype _v_lst_1 = NULL;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_v_lst_1 = omc_Ceval_catDimension(threadData, _v_lst, _dim);
_outValue = omc_ValuesUtil_makeArray(threadData, _v_lst_1);
_return: OMC_LABEL_UNUSED
return _outValue;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalCat(threadData_t *threadData, modelica_metatype _v_lst, modelica_metatype _dim)
{
modelica_integer tmp1;
modelica_metatype _outValue = NULL;
tmp1 = mmc_unbox_integer(_dim);
_outValue = omc_Ceval_cevalCat(threadData, _v_lst, tmp1);
return _outValue;
}
PROTECTED_FUNCTION_STATIC modelica_string omc_Ceval_extractValueStringChar(threadData_t *threadData, modelica_metatype _val)
{
modelica_string _str = NULL;
modelica_string tmp1 = 0;
modelica_metatype tmpMeta[1] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;
tmp4_1 = _val;
{
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 1; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_integer tmp6;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,2,1) == 0) goto tmp3_end;
tmpMeta[0] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 2));
_str = tmpMeta[0];
tmp6 = stringLength(_str);
if (1 != tmp6) goto goto_2;
tmp1 = _str;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_str = tmp1;
_return: OMC_LABEL_UNUSED
return _str;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalListFirst(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[7] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_boolean tmp4_4;modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExpExpLst;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_metatype _env = NULL;
modelica_metatype _exp1 = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_metatype _cache = NULL;
modelica_metatype _v = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 1; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta[3])) goto tmp3_end;
_exp1 = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[6] = omc_Ceval_ceval(threadData, _cache, _env, _exp1, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[6];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],6,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
if (listEmpty(tmpMeta[3])) goto goto_2;
tmpMeta[4] = MMC_CAR(tmpMeta[3]);
tmpMeta[5] = MMC_CDR(tmpMeta[3]);
_v = tmpMeta[4];
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = omc_ValuesUtil_boxIfUnboxedVal(threadData, _v);
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalListFirst(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalListFirst(threadData, _inCache, _inEnv, _inExpExpLst, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_makeLoadLibrariesEntry(threadData_t *threadData, modelica_metatype _cl, modelica_metatype _acc)
{
modelica_metatype _out = NULL;
modelica_metatype tmpMeta[4] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp3_1;
tmp3_1 = _cl;
{
modelica_string _name = NULL;
modelica_string _fileName = NULL;
modelica_string _dir = NULL;
modelica_metatype _v = NULL;
modelica_boolean _b;
volatile mmc_switch_type tmp3;
int tmp4;
tmp3 = 0;
for (; tmp3 < 2; tmp3++) {
switch (MMC_SWITCH_CAST(tmp3)) {
case 0: {
if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,2,8) == 0) goto tmp2_end;
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 9));
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[1]), 2));
if (13 != MMC_STRLEN(tmpMeta[2]) || strcmp(MMC_STRINGDATA(_OMC_LIT83), MMC_STRINGDATA(tmpMeta[2])) != 0) goto tmp2_end;
tmpMeta[0] = _acc;
goto tmp2_done;
}
case 1: {
if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,2,8) == 0) goto tmp2_end;
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 9));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
_name = tmpMeta[1];
_fileName = tmpMeta[3];
_dir = omc_System_dirname(threadData, _fileName);
_fileName = omc_System_basename(threadData, _fileName);
tmpMeta[2] = mmc_mk_box2(5, &Values_Value_STRING__desc, _name);
tmpMeta[3] = mmc_mk_box2(5, &Values_Value_STRING__desc, _dir);
tmpMeta[1] = mmc_mk_cons(tmpMeta[2], mmc_mk_cons(tmpMeta[3], MMC_REFSTRUCTLIT(mmc_nil)));
_v = omc_ValuesUtil_makeArray(threadData, tmpMeta[1]);
_b = (((stringEqual(_fileName, _OMC_LIT80)) || (stringEqual(_fileName, _OMC_LIT81))) || (stringEqual(_dir, _OMC_LIT82)));
tmpMeta[0] = omc_List_consOnTrue(threadData, (!_b), _v, _acc);
goto tmp2_done;
}
}
goto tmp2_end;
tmp2_end: ;
}
goto goto_1;
goto_1:;
MMC_THROW_INTERNAL();
goto tmp2_done;
tmp2_done:;
}
}
_out = tmpMeta[0];
_return: OMC_LABEL_UNUSED
return _out;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalIntBitRShift(threadData_t *threadData, modelica_metatype __omcQ_24in_5Fcache, modelica_metatype _env, modelica_metatype _args, modelica_boolean _impl, modelica_metatype _msg, modelica_integer _numIter, modelica_metatype *out_result)
{
modelica_metatype _cache = NULL;
modelica_metatype _result = NULL;
modelica_metatype _e1 = NULL;
modelica_metatype _e2 = NULL;
modelica_integer _i;
modelica_integer _s;
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype tmpMeta[5] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_cache = __omcQ_24in_5Fcache;
tmpMeta[0] = _args;
if (listEmpty(tmpMeta[0])) MMC_THROW_INTERNAL();
tmpMeta[1] = MMC_CAR(tmpMeta[0]);
tmpMeta[2] = MMC_CDR(tmpMeta[0]);
if (listEmpty(tmpMeta[2])) MMC_THROW_INTERNAL();
tmpMeta[3] = MMC_CAR(tmpMeta[2]);
tmpMeta[4] = MMC_CDR(tmpMeta[2]);
_e1 = tmpMeta[1];
_e2 = tmpMeta[3];
tmpMeta[2] = omc_Ceval_ceval(threadData, _cache, _env, _e1, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[0]);
_cache = tmpMeta[2];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[0],0,1) == 0) MMC_THROW_INTERNAL();
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[0]), 2));
tmp1 = mmc_unbox_integer(tmpMeta[1]);
_i = tmp1;
tmpMeta[2] = omc_Ceval_ceval(threadData, _cache, _env, _e2, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[0]);
_cache = tmpMeta[2];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[0],0,1) == 0) MMC_THROW_INTERNAL();
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[0]), 2));
tmp2 = mmc_unbox_integer(tmpMeta[1]);
_s = tmp2;
tmpMeta[0] = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(((_i) >> (_s))));
_result = tmpMeta[0];
_return: OMC_LABEL_UNUSED
if (out_result) { *out_result = _result; }
return _cache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalIntBitRShift(threadData_t *threadData, modelica_metatype __omcQ_24in_5Fcache, modelica_metatype _env, modelica_metatype _args, modelica_metatype _impl, modelica_metatype _msg, modelica_metatype _numIter, modelica_metatype *out_result)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _cache = NULL;
tmp1 = mmc_unbox_integer(_impl);
tmp2 = mmc_unbox_integer(_numIter);
_cache = omc_Ceval_cevalIntBitRShift(threadData, __omcQ_24in_5Fcache, _env, _args, tmp1, _msg, tmp2, out_result);
return _cache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalIntBitLShift(threadData_t *threadData, modelica_metatype __omcQ_24in_5Fcache, modelica_metatype _env, modelica_metatype _args, modelica_boolean _impl, modelica_metatype _msg, modelica_integer _numIter, modelica_metatype *out_result)
{
modelica_metatype _cache = NULL;
modelica_metatype _result = NULL;
modelica_metatype _e1 = NULL;
modelica_metatype _e2 = NULL;
modelica_integer _i;
modelica_integer _s;
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype tmpMeta[5] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_cache = __omcQ_24in_5Fcache;
tmpMeta[0] = _args;
if (listEmpty(tmpMeta[0])) MMC_THROW_INTERNAL();
tmpMeta[1] = MMC_CAR(tmpMeta[0]);
tmpMeta[2] = MMC_CDR(tmpMeta[0]);
if (listEmpty(tmpMeta[2])) MMC_THROW_INTERNAL();
tmpMeta[3] = MMC_CAR(tmpMeta[2]);
tmpMeta[4] = MMC_CDR(tmpMeta[2]);
_e1 = tmpMeta[1];
_e2 = tmpMeta[3];
tmpMeta[2] = omc_Ceval_ceval(threadData, _cache, _env, _e1, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[0]);
_cache = tmpMeta[2];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[0],0,1) == 0) MMC_THROW_INTERNAL();
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[0]), 2));
tmp1 = mmc_unbox_integer(tmpMeta[1]);
_i = tmp1;
tmpMeta[2] = omc_Ceval_ceval(threadData, _cache, _env, _e2, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[0]);
_cache = tmpMeta[2];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[0],0,1) == 0) MMC_THROW_INTERNAL();
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[0]), 2));
tmp2 = mmc_unbox_integer(tmpMeta[1]);
_s = tmp2;
tmpMeta[0] = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(((_i) << (_s))));
_result = tmpMeta[0];
_return: OMC_LABEL_UNUSED
if (out_result) { *out_result = _result; }
return _cache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalIntBitLShift(threadData_t *threadData, modelica_metatype __omcQ_24in_5Fcache, modelica_metatype _env, modelica_metatype _args, modelica_metatype _impl, modelica_metatype _msg, modelica_metatype _numIter, modelica_metatype *out_result)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _cache = NULL;
tmp1 = mmc_unbox_integer(_impl);
tmp2 = mmc_unbox_integer(_numIter);
_cache = omc_Ceval_cevalIntBitLShift(threadData, __omcQ_24in_5Fcache, _env, _args, tmp1, _msg, tmp2, out_result);
return _cache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalIntBitXor(threadData_t *threadData, modelica_metatype __omcQ_24in_5Fcache, modelica_metatype _env, modelica_metatype _args, modelica_boolean _impl, modelica_metatype _msg, modelica_integer _numIter, modelica_metatype *out_result)
{
modelica_metatype _cache = NULL;
modelica_metatype _result = NULL;
modelica_metatype _e1 = NULL;
modelica_metatype _e2 = NULL;
modelica_integer _i1;
modelica_integer _i2;
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype tmpMeta[5] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_cache = __omcQ_24in_5Fcache;
tmpMeta[0] = _args;
if (listEmpty(tmpMeta[0])) MMC_THROW_INTERNAL();
tmpMeta[1] = MMC_CAR(tmpMeta[0]);
tmpMeta[2] = MMC_CDR(tmpMeta[0]);
if (listEmpty(tmpMeta[2])) MMC_THROW_INTERNAL();
tmpMeta[3] = MMC_CAR(tmpMeta[2]);
tmpMeta[4] = MMC_CDR(tmpMeta[2]);
_e1 = tmpMeta[1];
_e2 = tmpMeta[3];
tmpMeta[2] = omc_Ceval_ceval(threadData, _cache, _env, _e1, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[0]);
_cache = tmpMeta[2];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[0],0,1) == 0) MMC_THROW_INTERNAL();
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[0]), 2));
tmp1 = mmc_unbox_integer(tmpMeta[1]);
_i1 = tmp1;
tmpMeta[2] = omc_Ceval_ceval(threadData, _cache, _env, _e2, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[0]);
_cache = tmpMeta[2];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[0],0,1) == 0) MMC_THROW_INTERNAL();
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[0]), 2));
tmp2 = mmc_unbox_integer(tmpMeta[1]);
_i2 = tmp2;
tmpMeta[0] = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(((_i1) ^ (_i2))));
_result = tmpMeta[0];
_return: OMC_LABEL_UNUSED
if (out_result) { *out_result = _result; }
return _cache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalIntBitXor(threadData_t *threadData, modelica_metatype __omcQ_24in_5Fcache, modelica_metatype _env, modelica_metatype _args, modelica_metatype _impl, modelica_metatype _msg, modelica_metatype _numIter, modelica_metatype *out_result)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _cache = NULL;
tmp1 = mmc_unbox_integer(_impl);
tmp2 = mmc_unbox_integer(_numIter);
_cache = omc_Ceval_cevalIntBitXor(threadData, __omcQ_24in_5Fcache, _env, _args, tmp1, _msg, tmp2, out_result);
return _cache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalIntBitOr(threadData_t *threadData, modelica_metatype __omcQ_24in_5Fcache, modelica_metatype _env, modelica_metatype _args, modelica_boolean _impl, modelica_metatype _msg, modelica_integer _numIter, modelica_metatype *out_result)
{
modelica_metatype _cache = NULL;
modelica_metatype _result = NULL;
modelica_metatype _e1 = NULL;
modelica_metatype _e2 = NULL;
modelica_integer _i1;
modelica_integer _i2;
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype tmpMeta[5] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_cache = __omcQ_24in_5Fcache;
tmpMeta[0] = _args;
if (listEmpty(tmpMeta[0])) MMC_THROW_INTERNAL();
tmpMeta[1] = MMC_CAR(tmpMeta[0]);
tmpMeta[2] = MMC_CDR(tmpMeta[0]);
if (listEmpty(tmpMeta[2])) MMC_THROW_INTERNAL();
tmpMeta[3] = MMC_CAR(tmpMeta[2]);
tmpMeta[4] = MMC_CDR(tmpMeta[2]);
_e1 = tmpMeta[1];
_e2 = tmpMeta[3];
tmpMeta[2] = omc_Ceval_ceval(threadData, _cache, _env, _e1, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[0]);
_cache = tmpMeta[2];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[0],0,1) == 0) MMC_THROW_INTERNAL();
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[0]), 2));
tmp1 = mmc_unbox_integer(tmpMeta[1]);
_i1 = tmp1;
tmpMeta[2] = omc_Ceval_ceval(threadData, _cache, _env, _e2, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[0]);
_cache = tmpMeta[2];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[0],0,1) == 0) MMC_THROW_INTERNAL();
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[0]), 2));
tmp2 = mmc_unbox_integer(tmpMeta[1]);
_i2 = tmp2;
tmpMeta[0] = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(((_i1) | (_i2))));
_result = tmpMeta[0];
_return: OMC_LABEL_UNUSED
if (out_result) { *out_result = _result; }
return _cache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalIntBitOr(threadData_t *threadData, modelica_metatype __omcQ_24in_5Fcache, modelica_metatype _env, modelica_metatype _args, modelica_metatype _impl, modelica_metatype _msg, modelica_metatype _numIter, modelica_metatype *out_result)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _cache = NULL;
tmp1 = mmc_unbox_integer(_impl);
tmp2 = mmc_unbox_integer(_numIter);
_cache = omc_Ceval_cevalIntBitOr(threadData, __omcQ_24in_5Fcache, _env, _args, tmp1, _msg, tmp2, out_result);
return _cache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalIntBitAnd(threadData_t *threadData, modelica_metatype __omcQ_24in_5Fcache, modelica_metatype _env, modelica_metatype _args, modelica_boolean _impl, modelica_metatype _msg, modelica_integer _numIter, modelica_metatype *out_result)
{
modelica_metatype _cache = NULL;
modelica_metatype _result = NULL;
modelica_metatype _e1 = NULL;
modelica_metatype _e2 = NULL;
modelica_integer _i1;
modelica_integer _i2;
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype tmpMeta[5] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_cache = __omcQ_24in_5Fcache;
tmpMeta[0] = _args;
if (listEmpty(tmpMeta[0])) MMC_THROW_INTERNAL();
tmpMeta[1] = MMC_CAR(tmpMeta[0]);
tmpMeta[2] = MMC_CDR(tmpMeta[0]);
if (listEmpty(tmpMeta[2])) MMC_THROW_INTERNAL();
tmpMeta[3] = MMC_CAR(tmpMeta[2]);
tmpMeta[4] = MMC_CDR(tmpMeta[2]);
_e1 = tmpMeta[1];
_e2 = tmpMeta[3];
tmpMeta[2] = omc_Ceval_ceval(threadData, _cache, _env, _e1, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[0]);
_cache = tmpMeta[2];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[0],0,1) == 0) MMC_THROW_INTERNAL();
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[0]), 2));
tmp1 = mmc_unbox_integer(tmpMeta[1]);
_i1 = tmp1;
tmpMeta[2] = omc_Ceval_ceval(threadData, _cache, _env, _e2, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[0]);
_cache = tmpMeta[2];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[0],0,1) == 0) MMC_THROW_INTERNAL();
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[0]), 2));
tmp2 = mmc_unbox_integer(tmpMeta[1]);
_i2 = tmp2;
tmpMeta[0] = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(((_i1) & (_i2))));
_result = tmpMeta[0];
_return: OMC_LABEL_UNUSED
if (out_result) { *out_result = _result; }
return _cache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalIntBitAnd(threadData_t *threadData, modelica_metatype __omcQ_24in_5Fcache, modelica_metatype _env, modelica_metatype _args, modelica_metatype _impl, modelica_metatype _msg, modelica_metatype _numIter, modelica_metatype *out_result)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _cache = NULL;
tmp1 = mmc_unbox_integer(_impl);
tmp2 = mmc_unbox_integer(_numIter);
_cache = omc_Ceval_cevalIntBitAnd(threadData, __omcQ_24in_5Fcache, _env, _args, tmp1, _msg, tmp2, out_result);
return _cache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalIntegerMax(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[3] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;
tmp4_1 = _inExpExpLst;
{
modelica_integer _i;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 1; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (!listEmpty(tmp4_1)) goto tmp3_end;
_i = intMaxLit();
tmpMeta[2] = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(_i));
tmpMeta[0+0] = _inCache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalIntegerMax(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalIntegerMax(threadData, _inCache, _inEnv, _inExpExpLst, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalNumBits(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[3] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;
tmp4_1 = _inExpExpLst;
{
modelica_integer _i;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 1; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (!listEmpty(tmp4_1)) goto tmp3_end;
_i = omc_System_numBits(threadData);
tmpMeta[2] = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(_i));
tmpMeta[0+0] = _inCache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalNumBits(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalNumBits(threadData, _inCache, _inEnv, _inExpExpLst, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalAnyString(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[4] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_boolean tmp4_4;modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExpExpLst;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_metatype _env = NULL;
modelica_metatype _exp1 = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_metatype _cache = NULL;
modelica_metatype _v = NULL;
modelica_string _s = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 1; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta[3])) goto tmp3_end;
_exp1 = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
_cache = omc_Ceval_ceval(threadData, _cache, _env, _exp1, _impl, _msg, ((modelica_integer) 1) + _numIter ,&_v);
_s = omc_ValuesUtil_valString(threadData, _v);
tmpMeta[2] = mmc_mk_box2(5, &Values_Value_STRING__desc, _s);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalAnyString(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalAnyString(threadData, _inCache, _inEnv, _inExpExpLst, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalListArrayLiteral(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[5] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_boolean tmp4_4;modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExpExpLst;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_metatype _env = NULL;
modelica_metatype _exp = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_metatype _cache = NULL;
modelica_metatype _vals = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 1; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta[3])) goto tmp3_end;
_exp = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],6,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
_vals = tmpMeta[3];
tmpMeta[2] = mmc_mk_box2(10, &Values_Value_META__ARRAY__desc, _vals);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalListArrayLiteral(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalListArrayLiteral(threadData, _inCache, _inEnv, _inExpExpLst, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalListMember(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[6] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_boolean tmp4_4;modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExpExpLst;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_metatype _env = NULL;
modelica_metatype _exp1 = NULL;
modelica_metatype _exp2 = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_metatype _cache = NULL;
modelica_metatype _vals = NULL;
modelica_metatype _val = NULL;
modelica_boolean _b;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 1; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (listEmpty(tmpMeta[3])) goto tmp3_end;
tmpMeta[4] = MMC_CAR(tmpMeta[3]);
tmpMeta[5] = MMC_CDR(tmpMeta[3]);
if (!listEmpty(tmpMeta[5])) goto tmp3_end;
_exp1 = tmpMeta[2];
_exp2 = tmpMeta[4];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
_cache = omc_Ceval_ceval(threadData, _cache, _env, _exp1, _impl, _msg, ((modelica_integer) 1) + _numIter ,&_val);
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _exp2, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],6,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
_vals = tmpMeta[3];
_b = listMember(_val, _vals);
tmpMeta[2] = mmc_mk_box2(6, &Values_Value_BOOL__desc, mmc_mk_boolean(_b));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalListMember(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalListMember(threadData, _inCache, _inEnv, _inExpExpLst, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalListRest(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[7] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_boolean tmp4_4;modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExpExpLst;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_metatype _env = NULL;
modelica_metatype _exp1 = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_metatype _cache = NULL;
modelica_metatype _valList1 = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 1; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta[3])) goto tmp3_end;
_exp1 = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[6] = omc_Ceval_ceval(threadData, _cache, _env, _exp1, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[6];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],6,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
if (listEmpty(tmpMeta[3])) goto goto_2;
tmpMeta[4] = MMC_CAR(tmpMeta[3]);
tmpMeta[5] = MMC_CDR(tmpMeta[3]);
_valList1 = tmpMeta[5];
tmpMeta[2] = mmc_mk_box2(9, &Values_Value_LIST__desc, _valList1);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalListRest(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalListRest(threadData, _inCache, _inEnv, _inExpExpLst, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalListReverse(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[5] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_boolean tmp4_4;modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExpExpLst;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_metatype _env = NULL;
modelica_metatype _exp1 = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_metatype _cache = NULL;
modelica_metatype _valList = NULL;
modelica_metatype _valList1 = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 1; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta[3])) goto tmp3_end;
_exp1 = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _exp1, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],6,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
_valList1 = tmpMeta[3];
_valList = listReverse(_valList1);
tmpMeta[2] = mmc_mk_box2(9, &Values_Value_LIST__desc, _valList);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalListReverse(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalListReverse(threadData, _inCache, _inEnv, _inExpExpLst, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalListAppend(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[6] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_boolean tmp4_4;modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExpExpLst;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_metatype _env = NULL;
modelica_metatype _exp1 = NULL;
modelica_metatype _exp2 = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_metatype _cache = NULL;
modelica_metatype _valList = NULL;
modelica_metatype _valList1 = NULL;
modelica_metatype _valList2 = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 1; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (listEmpty(tmpMeta[3])) goto tmp3_end;
tmpMeta[4] = MMC_CAR(tmpMeta[3]);
tmpMeta[5] = MMC_CDR(tmpMeta[3]);
if (!listEmpty(tmpMeta[5])) goto tmp3_end;
_exp1 = tmpMeta[2];
_exp2 = tmpMeta[4];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _exp1, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],6,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
_valList1 = tmpMeta[3];
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _exp2, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],6,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
_valList2 = tmpMeta[3];
_valList = listAppend(_valList1, _valList2);
tmpMeta[2] = mmc_mk_box2(9, &Values_Value_LIST__desc, _valList);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalListAppend(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalListAppend(threadData, _inCache, _inEnv, _inExpExpLst, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalListLength(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[5] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_boolean tmp4_4;modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExpExpLst;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_metatype _env = NULL;
modelica_metatype _exp = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_metatype _cache = NULL;
modelica_integer _i;
modelica_metatype _valList = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 1; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta[3])) goto tmp3_end;
_exp = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],6,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
_valList = tmpMeta[3];
_i = listLength(_valList);
tmpMeta[2] = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(_i));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalListLength(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalListLength(threadData, _inCache, _inEnv, _inExpExpLst, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalStringDelimitList(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[6] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_boolean tmp4_4;modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExpExpLst;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_metatype _env = NULL;
modelica_metatype _exp1 = NULL;
modelica_metatype _exp2 = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_metatype _cache = NULL;
modelica_string _str = NULL;
modelica_metatype _chList = NULL;
modelica_metatype _valList = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 1; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (listEmpty(tmpMeta[3])) goto tmp3_end;
tmpMeta[4] = MMC_CAR(tmpMeta[3]);
tmpMeta[5] = MMC_CDR(tmpMeta[3]);
if (!listEmpty(tmpMeta[5])) goto tmp3_end;
_exp1 = tmpMeta[2];
_exp2 = tmpMeta[4];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _exp1, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],6,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
_valList = tmpMeta[3];
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _exp2, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],2,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
_str = tmpMeta[3];
_chList = omc_List_map(threadData, _valList, boxvar_ValuesUtil_extractValueString);
_str = stringDelimitList(_chList, _str);
tmpMeta[2] = mmc_mk_box2(5, &Values_Value_STRING__desc, _str);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalStringDelimitList(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalStringDelimitList(threadData, _inCache, _inEnv, _inExpExpLst, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalStringAppendList(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[5] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_boolean tmp4_4;modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExpExpLst;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_metatype _env = NULL;
modelica_metatype _exp = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_metatype _cache = NULL;
modelica_string _str = NULL;
modelica_metatype _chList = NULL;
modelica_metatype _valList = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 1; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta[3])) goto tmp3_end;
_exp = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],6,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
_valList = tmpMeta[3];
_chList = omc_List_map(threadData, _valList, boxvar_ValuesUtil_extractValueString);
_str = stringAppendList(_chList);
tmpMeta[2] = mmc_mk_box2(5, &Values_Value_STRING__desc, _str);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalStringAppendList(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalStringAppendList(threadData, _inCache, _inEnv, _inExpExpLst, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalListStringCharString(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[5] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_boolean tmp4_4;modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExpExpLst;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_metatype _env = NULL;
modelica_metatype _exp = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_metatype _cache = NULL;
modelica_string _str = NULL;
modelica_metatype _chList = NULL;
modelica_metatype _valList = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 1; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta[3])) goto tmp3_end;
_exp = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],6,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
_valList = tmpMeta[3];
_chList = omc_List_map(threadData, _valList, boxvar_Ceval_extractValueStringChar);
_str = stringAppendList(_chList);
tmpMeta[2] = mmc_mk_box2(5, &Values_Value_STRING__desc, _str);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalListStringCharString(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalListStringCharString(threadData, _inCache, _inEnv, _inExpExpLst, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_generateValueString(threadData_t *threadData, modelica_string _str)
{
modelica_metatype _val = NULL;
modelica_metatype tmpMeta[1] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
tmpMeta[0] = mmc_mk_box2(5, &Values_Value_STRING__desc, _str);
_val = tmpMeta[0];
_return: OMC_LABEL_UNUSED
return _val;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalStringListStringChar(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[5] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_boolean tmp4_4;modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExpExpLst;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_metatype _env = NULL;
modelica_metatype _exp = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_metatype _cache = NULL;
modelica_string _str = NULL;
modelica_metatype _chList = NULL;
modelica_metatype _valList = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 1; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta[3])) goto tmp3_end;
_exp = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],2,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
_str = tmpMeta[3];
_chList = stringListStringChar(_str);
_valList = omc_List_map(threadData, _chList, boxvar_Ceval_generateValueString);
tmpMeta[2] = mmc_mk_box2(9, &Values_Value_LIST__desc, _valList);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalStringListStringChar(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalStringListStringChar(threadData, _inCache, _inEnv, _inExpExpLst, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalStringLength(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[5] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_boolean tmp4_4;modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExpExpLst;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_metatype _env = NULL;
modelica_metatype _exp = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_metatype _cache = NULL;
modelica_string _str = NULL;
modelica_integer _i;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 1; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta[3])) goto tmp3_end;
_exp = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],2,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
_str = tmpMeta[3];
_i = stringLength(_str);
tmpMeta[2] = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(_i));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalStringLength(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalStringLength(threadData, _inCache, _inEnv, _inExpExpLst, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalStringInt(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[5] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_boolean tmp4_4;modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExpExpLst;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_metatype _env = NULL;
modelica_metatype _exp = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_metatype _cache = NULL;
modelica_string _str = NULL;
modelica_integer _i;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 1; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta[3])) goto tmp3_end;
_exp = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],2,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
_str = tmpMeta[3];
_i = stringInt(_str);
tmpMeta[2] = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(_i));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalStringInt(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalStringInt(threadData, _inCache, _inEnv, _inExpExpLst, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalIntStringChar(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[5] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_boolean tmp4_4;modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExpExpLst;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_metatype _env = NULL;
modelica_metatype _exp = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_metatype _cache = NULL;
modelica_string _str = NULL;
modelica_integer _i;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 1; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_integer tmp6;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta[3])) goto tmp3_end;
_exp = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],0,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp6 = mmc_unbox_integer(tmpMeta[3]);
_i = tmp6;
_str = intStringChar(_i);
tmpMeta[2] = mmc_mk_box2(5, &Values_Value_STRING__desc, _str);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalIntStringChar(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalIntStringChar(threadData, _inCache, _inEnv, _inExpExpLst, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalStringCharInt(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[5] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_boolean tmp4_4;modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExpExpLst;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_metatype _env = NULL;
modelica_metatype _exp = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_metatype _cache = NULL;
modelica_string _str = NULL;
modelica_integer _i;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 1; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta[3])) goto tmp3_end;
_exp = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],2,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
_str = tmpMeta[3];
_i = stringCharInt(_str);
tmpMeta[2] = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(_i));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalStringCharInt(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalStringCharInt(threadData, _inCache, _inEnv, _inExpExpLst, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalRealString(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[4] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_boolean tmp4_4;modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExpExpLst;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_metatype _env = NULL;
modelica_metatype _exp = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_metatype _cache = NULL;
modelica_string _str = NULL;
modelica_real _r;
modelica_metatype _v = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 1; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_real tmp6;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta[3])) goto tmp3_end;
_exp = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
_cache = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter ,&_v);
tmpMeta[2] = _v;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],1,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp6 = mmc_unbox_real(tmpMeta[3]);
_r = tmp6;
_str = realString(_r);
tmpMeta[2] = mmc_mk_box2(5, &Values_Value_STRING__desc, _str);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalRealString(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalRealString(threadData, _inCache, _inEnv, _inExpExpLst, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalIntString(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[5] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_boolean tmp4_4;modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExpExpLst;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_metatype _env = NULL;
modelica_metatype _exp = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_metatype _cache = NULL;
modelica_string _str = NULL;
modelica_integer _i;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 1; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_integer tmp6;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta[3])) goto tmp3_end;
_exp = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],0,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp6 = mmc_unbox_integer(tmpMeta[3]);
_i = tmp6;
_str = intString(_i);
tmpMeta[2] = mmc_mk_box2(5, &Values_Value_STRING__desc, _str);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalIntString(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalIntString(threadData, _inCache, _inEnv, _inExpExpLst, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinPrint(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[5] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_boolean tmp4_4;modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExpExpLst;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_metatype _env = NULL;
modelica_metatype _exp = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_metatype _cache = NULL;
modelica_string _str = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 1; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta[3])) goto tmp3_end;
_exp = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],2,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
_str = tmpMeta[3];
fputs(MMC_STRINGDATA(_str),stdout);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _OMC_LIT84;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinPrint(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalBuiltinPrint(threadData, _inCache, _inEnv, _inExpExpLst, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinStringFormat(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_string _inString, modelica_metatype _lengthExp, modelica_metatype _justifiedExp, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_string *out_outString)
{
modelica_metatype _outCache = NULL;
modelica_string _outString = NULL;
modelica_string tmp1_c1 __attribute__((unused)) = 0;
modelica_metatype tmpMeta[5] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;
tmp4_1 = _inCache;
{
modelica_metatype _cache = NULL;
modelica_integer _min_length;
modelica_boolean _left_justified;
modelica_string _str = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 1; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_integer tmp6;
modelica_integer tmp7;
_cache = tmp4_1;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _inEnv, _lengthExp, _inBoolean, _inMsg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],0,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp6 = mmc_unbox_integer(tmpMeta[3]);
_min_length = tmp6;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _inEnv, _justifiedExp, _inBoolean, _inMsg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],3,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp7 = mmc_unbox_integer(tmpMeta[3]);
_left_justified = tmp7;
_str = omc_ExpressionSimplify_cevalBuiltinStringFormat(threadData, _inString, stringLength(_inString), _min_length, _left_justified);
tmpMeta[0+0] = _cache;
tmp1_c1 = _str;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outString = tmp1_c1;
_return: OMC_LABEL_UNUSED
if (out_outString) { *out_outString = _outString; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinStringFormat(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inString, modelica_metatype _lengthExp, modelica_metatype _justifiedExp, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outString)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalBuiltinStringFormat(threadData, _inCache, _inEnv, _inString, _lengthExp, _justifiedExp, tmp1, _inMsg, tmp2, out_outString);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinString(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[10] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_boolean tmp4_4;modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExpExpLst;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_metatype _env = NULL;
modelica_metatype _exp = NULL;
modelica_metatype _len_exp = NULL;
modelica_metatype _justified_exp = NULL;
modelica_metatype _sig_dig = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_metatype _cache = NULL;
modelica_string _str = NULL;
modelica_string _format = NULL;
modelica_integer _i;
modelica_integer _len;
modelica_integer _sig;
modelica_real _r;
modelica_boolean _b;
modelica_boolean _left_just;
modelica_metatype _p = NULL;
modelica_metatype _v = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 2; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_string tmp6 = 0;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (listEmpty(tmpMeta[3])) goto tmp3_end;
tmpMeta[4] = MMC_CAR(tmpMeta[3]);
tmpMeta[5] = MMC_CDR(tmpMeta[3]);
if (listEmpty(tmpMeta[5])) goto tmp3_end;
tmpMeta[6] = MMC_CAR(tmpMeta[5]);
tmpMeta[7] = MMC_CDR(tmpMeta[5]);
if (!listEmpty(tmpMeta[7])) goto tmp3_end;
_exp = tmpMeta[2];
_len_exp = tmpMeta[4];
_justified_exp = tmpMeta[6];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
_cache = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter ,&_v);
{
modelica_metatype tmp9_1;
tmp9_1 = _v;
{
int tmp9;
{
switch (MMC_SWITCH_CAST(valueConstructor(tmp9_1))) {
case 3: {
modelica_integer tmp10;
if (mmc__uniontype__metarecord__typedef__equal(tmp9_1,0,1) == 0) goto tmp8_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp9_1), 2));
tmp10 = mmc_unbox_integer(tmpMeta[2]);
_i = tmp10;
tmp6 = intString(_i);
goto tmp8_done;
}
case 6: {
modelica_integer tmp11;
if (mmc__uniontype__metarecord__typedef__equal(tmp9_1,3,1) == 0) goto tmp8_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp9_1), 2));
tmp11 = mmc_unbox_integer(tmpMeta[2]);
_b = tmp11;
tmp6 = (_b?_OMC_LIT85:_OMC_LIT86);
goto tmp8_done;
}
case 7: {
if (mmc__uniontype__metarecord__typedef__equal(tmp9_1,4,2) == 0) goto tmp8_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp9_1), 2));
_p = tmpMeta[2];
tmp6 = omc_AbsynUtil_pathLastIdent(threadData, _p);
goto tmp8_done;
}
}
goto tmp8_end;
tmp8_end: ;
}
goto goto_7;
goto_7:;
goto goto_2;
goto tmp8_done;
tmp8_done:;
}
}
_str = tmp6;
_cache = omc_Ceval_cevalBuiltinStringFormat(threadData, _cache, _env, _str, _len_exp, _justified_exp, _impl, _msg, ((modelica_integer) 1) + _numIter ,&_str);
tmpMeta[2] = mmc_mk_box2(5, &Values_Value_STRING__desc, _str);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 1: {
modelica_real tmp12;
modelica_integer tmp13;
modelica_integer tmp14;
modelica_integer tmp15;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (listEmpty(tmpMeta[3])) goto tmp3_end;
tmpMeta[4] = MMC_CAR(tmpMeta[3]);
tmpMeta[5] = MMC_CDR(tmpMeta[3]);
if (listEmpty(tmpMeta[5])) goto tmp3_end;
tmpMeta[6] = MMC_CAR(tmpMeta[5]);
tmpMeta[7] = MMC_CDR(tmpMeta[5]);
if (listEmpty(tmpMeta[7])) goto tmp3_end;
tmpMeta[8] = MMC_CAR(tmpMeta[7]);
tmpMeta[9] = MMC_CDR(tmpMeta[7]);
if (!listEmpty(tmpMeta[9])) goto tmp3_end;
_exp = tmpMeta[2];
_sig_dig = tmpMeta[4];
_len_exp = tmpMeta[6];
_justified_exp = tmpMeta[8];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],1,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp12 = mmc_unbox_real(tmpMeta[3]);
_r = tmp12;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _len_exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],0,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp13 = mmc_unbox_integer(tmpMeta[3]);
_len = tmp13;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _justified_exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],3,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp14 = mmc_unbox_integer(tmpMeta[3]);
_left_just = tmp14;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _sig_dig, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],0,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp15 = mmc_unbox_integer(tmpMeta[3]);
_sig = tmp15;
tmpMeta[2] = stringAppend(_OMC_LIT87,(_left_just?_OMC_LIT88:_OMC_LIT1));
tmpMeta[3] = stringAppend(tmpMeta[2],intString(_len));
tmpMeta[4] = stringAppend(tmpMeta[3],_OMC_LIT82);
tmpMeta[5] = stringAppend(tmpMeta[4],intString(_sig));
tmpMeta[6] = stringAppend(tmpMeta[5],_OMC_LIT89);
_format = tmpMeta[6];
_str = omc_System_snprintff(threadData, _format, ((modelica_integer) 20) + _len, _r);
tmpMeta[2] = mmc_mk_box2(5, &Values_Value_STRING__desc, _str);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinString(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalBuiltinString(threadData, _inCache, _inEnv, _inExpExpLst, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinSubstring(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[8] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_boolean tmp4_4;modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExpExpLst;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_metatype _env = NULL;
modelica_metatype _str_exp = NULL;
modelica_metatype _start_exp = NULL;
modelica_metatype _stop_exp = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_metatype _cache = NULL;
modelica_string _str = NULL;
modelica_integer _start;
modelica_integer _stop;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 1; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_integer tmp6;
modelica_integer tmp7;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (listEmpty(tmpMeta[3])) goto tmp3_end;
tmpMeta[4] = MMC_CAR(tmpMeta[3]);
tmpMeta[5] = MMC_CDR(tmpMeta[3]);
if (listEmpty(tmpMeta[5])) goto tmp3_end;
tmpMeta[6] = MMC_CAR(tmpMeta[5]);
tmpMeta[7] = MMC_CDR(tmpMeta[5]);
if (!listEmpty(tmpMeta[7])) goto tmp3_end;
_str_exp = tmpMeta[2];
_start_exp = tmpMeta[4];
_stop_exp = tmpMeta[6];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _str_exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],2,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
_str = tmpMeta[3];
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _start_exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],0,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp6 = mmc_unbox_integer(tmpMeta[3]);
_start = tmp6;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _stop_exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],0,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp7 = mmc_unbox_integer(tmpMeta[3]);
_stop = tmp7;
_str = substring(_str, _start, _stop);
tmpMeta[2] = mmc_mk_box2(5, &Values_Value_STRING__desc, _str);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinSubstring(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalBuiltinSubstring(threadData, _inCache, _inEnv, _inExpExpLst, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinPromote2(threadData_t *threadData, modelica_metatype _inValue, modelica_integer _inInteger)
{
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[5] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
volatile modelica_metatype tmp3_1;volatile modelica_integer tmp3_2;
tmp3_1 = _inValue;
tmp3_2 = _inInteger;
{
modelica_metatype _v = NULL;
modelica_integer _n_1;
modelica_integer _n;
modelica_integer _i;
modelica_metatype _vs_1 = NULL;
modelica_metatype _vs = NULL;
modelica_metatype _il = NULL;
volatile mmc_switch_type tmp3;
int tmp4;
tmp3 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp2_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp3 < 4; tmp3++) {
switch (MMC_SWITCH_CAST(tmp3)) {
case 0: {
if (0 != tmp3_2) goto tmp2_end;
_v = tmp3_1;
tmpMeta[1] = mmc_mk_cons(_v, MMC_REFSTRUCTLIT(mmc_nil));
tmpMeta[2] = mmc_mk_box3(8, &Values_Value_ARRAY__desc, tmpMeta[1], _OMC_LIT90);
tmpMeta[0] = tmpMeta[2];
goto tmp2_done;
}
case 1: {
modelica_integer tmp5;
if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,5,2) == 0) goto tmp2_end;
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 3));
if (listEmpty(tmpMeta[2])) goto tmp2_end;
tmpMeta[3] = MMC_CAR(tmpMeta[2]);
tmpMeta[4] = MMC_CDR(tmpMeta[2]);
tmp5 = mmc_unbox_integer(tmpMeta[3]);
_vs = tmpMeta[1];
_i = tmp5;
_n = tmp3_2;
_n_1 = ((modelica_integer) -1) + _n;
tmpMeta[1] = omc_List_map1(threadData, _vs, boxvar_Ceval_cevalBuiltinPromote2, mmc_mk_integer(_n_1));
if (listEmpty(tmpMeta[1])) goto goto_1;
tmpMeta[2] = MMC_CAR(tmpMeta[1]);
tmpMeta[3] = MMC_CDR(tmpMeta[1]);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],5,2) == 0) goto goto_1;
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 3));
_vs_1 = tmpMeta[1];
_il = tmpMeta[4];
tmpMeta[1] = mmc_mk_cons(mmc_mk_integer(_i), _il);
tmpMeta[2] = mmc_mk_box3(8, &Values_Value_ARRAY__desc, _vs_1, tmpMeta[1]);
tmpMeta[0] = tmpMeta[2];
goto tmp2_done;
}
case 2: {
modelica_boolean tmp6;
_v = tmp3_1;
_n = tmp3_2;
tmp6 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmpMeta[1] = _v;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[1],5,2) == 0) goto goto_7;
tmp6 = 1;
goto goto_7;
goto_7:;
MMC_CATCH_INTERNAL(mmc_jumper)
if (tmp6) {goto goto_1;}
_n_1 = ((modelica_integer) -1) + _n;
tmpMeta[1] = omc_Ceval_cevalBuiltinPromote2(threadData, _v, _n_1);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[1],5,2) == 0) goto goto_1;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[1]), 3));
_v = tmpMeta[1];
_il = tmpMeta[2];
tmpMeta[1] = mmc_mk_cons(_v, MMC_REFSTRUCTLIT(mmc_nil));
tmpMeta[2] = mmc_mk_cons(mmc_mk_integer(((modelica_integer) 1)), _il);
tmpMeta[3] = mmc_mk_box3(8, &Values_Value_ARRAY__desc, tmpMeta[1], tmpMeta[2]);
tmpMeta[0] = tmpMeta[3];
goto tmp2_done;
}
case 3: {
modelica_boolean tmp8;
tmp8 = omc_Flags_isSet(threadData, _OMC_LIT44);
if (1 != tmp8) goto goto_1;
omc_Debug_trace(threadData, _OMC_LIT91);
goto goto_1;
goto tmp2_done;
}
}
goto tmp2_end;
tmp2_end: ;
}
goto goto_1;
tmp2_done:
(void)tmp3;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp2_done2;
goto_1:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp3 < 4) {
goto tmp2_top;
}
MMC_THROW_INTERNAL();
tmp2_done2:;
}
}
_outValue = tmpMeta[0];
_return: OMC_LABEL_UNUSED
return _outValue;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinPromote2(threadData_t *threadData, modelica_metatype _inValue, modelica_metatype _inInteger)
{
modelica_integer tmp1;
modelica_metatype _outValue = NULL;
tmp1 = mmc_unbox_integer(_inInteger);
_outValue = omc_Ceval_cevalBuiltinPromote2(threadData, _inValue, tmp1);
return _outValue;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinPromote(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[6] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_boolean tmp4_4;modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExpExpLst;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_metatype _arr_val = NULL;
modelica_metatype _res = NULL;
modelica_integer _dim_val;
modelica_metatype _env = NULL;
modelica_metatype _arr = NULL;
modelica_metatype _dim = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_metatype _cache = NULL;
modelica_metatype _dims = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 1; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_integer tmp6;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (listEmpty(tmpMeta[3])) goto tmp3_end;
tmpMeta[4] = MMC_CAR(tmpMeta[3]);
tmpMeta[5] = MMC_CDR(tmpMeta[3]);
if (!listEmpty(tmpMeta[5])) goto tmp3_end;
_arr = tmpMeta[2];
_dim = tmpMeta[4];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _arr, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],5,2) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 3));
_arr_val = tmpMeta[2];
_dims = tmpMeta[3];
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _dim, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],0,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp6 = mmc_unbox_integer(tmpMeta[3]);
_dim_val = tmp6;
_res = omc_Ceval_cevalBuiltinPromote2(threadData, _arr_val, _dim_val - listLength(_dims));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _res;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinPromote(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalBuiltinPromote(threadData, _inCache, _inEnv, _inExpExpLst, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinIdentity(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[10] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_boolean tmp4_4;modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExpExpLst;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_integer _dimension;
modelica_metatype _env = NULL;
modelica_metatype _dim = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_metatype _cache = NULL;
modelica_metatype _res = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 1; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_integer tmp6;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta[3])) goto tmp3_end;
_dim = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _dim, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],0,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp6 = mmc_unbox_integer(tmpMeta[3]);
_dimension = tmp6;
{
modelica_metatype __omcQ_24tmpVar17;
modelica_metatype* tmp7;
modelica_metatype __omcQ_24tmpVar16;
int tmp12;
modelica_integer tmp13;
modelica_integer tmp14;
modelica_integer _j;
tmp13 = 1;
tmp14 = _dimension;
_j = ((modelica_integer) 1);
_j = (((modelica_integer) 1) /* Range start-value */)-tmp13;
tmpMeta[3] = MMC_REFSTRUCTLIT(mmc_nil);
__omcQ_24tmpVar17 = tmpMeta[3];
tmp7 = &__omcQ_24tmpVar17;
while(1) {
tmp12 = 1;
if (tmp13 > 0 ? _j+tmp13 <= tmp14 : _j+tmp13 >= tmp14) {
_j += tmp13;
tmp12--;
}
if (tmp12 == 0) {
{
modelica_metatype __omcQ_24tmpVar15;
modelica_metatype* tmp8;
modelica_metatype __omcQ_24tmpVar14;
int tmp9;
modelica_integer tmp10;
modelica_integer tmp11;
modelica_integer _i;
tmp10 = 1;
tmp11 = _dimension;
_i = ((modelica_integer) 1);
_i = (((modelica_integer) 1) /* Range start-value */)-tmp10;
tmpMeta[5] = MMC_REFSTRUCTLIT(mmc_nil);
__omcQ_24tmpVar15 = tmpMeta[5];
tmp8 = &__omcQ_24tmpVar15;
while(1) {
tmp9 = 1;
if (tmp10 > 0 ? _i+tmp10 <= tmp11 : _i+tmp10 >= tmp11) {
_i += tmp10;
tmp9--;
}
if (tmp9 == 0) {
__omcQ_24tmpVar14 = ((_i == _j)?_OMC_LIT92:_OMC_LIT64);
*tmp8 = mmc_mk_cons(__omcQ_24tmpVar14,0);
tmp8 = &MMC_CDR(*tmp8);
} else if (tmp9 == 1) {
break;
} else {
goto goto_2;
}
}
*tmp8 = mmc_mk_nil();
tmpMeta[4] = __omcQ_24tmpVar15;
}
tmpMeta[6] = mmc_mk_cons(mmc_mk_integer(_dimension), MMC_REFSTRUCTLIT(mmc_nil));
tmpMeta[7] = mmc_mk_box3(8, &Values_Value_ARRAY__desc, tmpMeta[4], tmpMeta[6]);
__omcQ_24tmpVar16 = tmpMeta[7];
*tmp7 = mmc_mk_cons(__omcQ_24tmpVar16,0);
tmp7 = &MMC_CDR(*tmp7);
} else if (tmp12 == 1) {
break;
} else {
goto goto_2;
}
}
*tmp7 = mmc_mk_nil();
tmpMeta[2] = __omcQ_24tmpVar17;
}
tmpMeta[8] = mmc_mk_cons(mmc_mk_integer(_dimension), mmc_mk_cons(mmc_mk_integer(_dimension), MMC_REFSTRUCTLIT(mmc_nil)));
tmpMeta[9] = mmc_mk_box3(8, &Values_Value_ARRAY__desc, tmpMeta[2], tmpMeta[8]);
_res = tmpMeta[9];
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _res;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinIdentity(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalBuiltinIdentity(threadData, _inCache, _inEnv, _inExpExpLst, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinCat(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[5] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_boolean tmp4_4;modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExpExpLst;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_integer _dim_int;
modelica_metatype _mat_lst = NULL;
modelica_metatype _v = NULL;
modelica_metatype _env = NULL;
modelica_metatype _dim = NULL;
modelica_metatype _matrices = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_metatype _cache = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 1; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_integer tmp6;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
_dim = tmpMeta[2];
_matrices = tmpMeta[3];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _dim, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],0,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp6 = mmc_unbox_integer(tmpMeta[3]);
_dim_int = tmp6;
_cache = omc_Ceval_cevalList(threadData, _cache, _env, _matrices, _impl, _msg, _numIter ,&_mat_lst);
_v = omc_Ceval_cevalCat(threadData, _mat_lst, _dim_int);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _v;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinCat(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalBuiltinCat(threadData, _inCache, _inEnv, _inExpExpLst, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinNoevent(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[4] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_boolean tmp4_4;modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExpExpLst;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_metatype _env = NULL;
modelica_metatype _exp = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_metatype _cache = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 1; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta[3])) goto tmp3_end;
_exp = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[0+0] = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[0+1]);
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinNoevent(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalBuiltinNoevent(threadData, _inCache, _inEnv, _inExpExpLst, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinExp(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[5] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_boolean tmp4_4;modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExpExpLst;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_real _rv;
modelica_real _rv_1;
modelica_metatype _env = NULL;
modelica_metatype _exp = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_metatype _cache = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 1; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_real tmp6;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta[3])) goto tmp3_end;
_exp = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],1,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp6 = mmc_unbox_real(tmpMeta[3]);
_rv = tmp6;
_rv_1 = exp(_rv);
tmpMeta[2] = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_1));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinExp(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalBuiltinExp(threadData, _inCache, _inEnv, _inExpExpLst, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinSign(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[10] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_boolean tmp4_4;modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExpExpLst;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_real _rv;
modelica_boolean _b1;
modelica_boolean _b2;
modelica_boolean _b3;
modelica_boolean _impl;
modelica_metatype _env = NULL;
modelica_metatype _exp = NULL;
modelica_metatype _msg = NULL;
modelica_integer _iv;
modelica_integer _iv_1;
modelica_metatype _cache = NULL;
modelica_metatype _v = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 1; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_boolean tmp6_c0 __attribute__((unused)) = 0;
modelica_boolean tmp6_c1 __attribute__((unused)) = 0;
modelica_boolean tmp6_c2 __attribute__((unused)) = 0;
modelica_integer tmp13;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta[3])) goto tmp3_end;
_exp = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
_cache = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter ,&_v);
{
modelica_metatype tmp9_1;
tmp9_1 = _v;
{
volatile mmc_switch_type tmp9;
int tmp10;
tmp9 = 0;
for (; tmp9 < 2; tmp9++) {
switch (MMC_SWITCH_CAST(tmp9)) {
case 0: {
modelica_real tmp11;
if (mmc__uniontype__metarecord__typedef__equal(tmp9_1,1,1) == 0) goto tmp8_end;
tmpMeta[5] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp9_1), 2));
tmp11 = mmc_unbox_real(tmpMeta[5]);
_rv = tmp11;
tmp6_c0 = (_rv > 0.0);
tmp6_c1 = (_rv < 0.0);
tmp6_c2 = (_rv == 0.0);
goto tmp8_done;
}
case 1: {
modelica_integer tmp12;
if (mmc__uniontype__metarecord__typedef__equal(tmp9_1,0,1) == 0) goto tmp8_end;
tmpMeta[5] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp9_1), 2));
tmp12 = mmc_unbox_integer(tmpMeta[5]);
_iv = tmp12;
tmp6_c0 = (_iv > ((modelica_integer) 0));
tmp6_c1 = (_iv < ((modelica_integer) 0));
tmp6_c2 = (_iv == ((modelica_integer) 0));
goto tmp8_done;
}
}
goto tmp8_end;
tmp8_end: ;
}
goto goto_7;
goto_7:;
goto goto_2;
goto tmp8_done;
tmp8_done:;
}
}
_b1 = tmp6_c0;
_b2 = tmp6_c1;
_b3 = tmp6_c2;
tmpMeta[3] = mmc_mk_box2(0, mmc_mk_boolean(_b1), mmc_mk_integer(((modelica_integer) 1)));
tmpMeta[4] = mmc_mk_box2(0, mmc_mk_boolean(_b2), mmc_mk_integer(((modelica_integer) -1)));
tmpMeta[5] = mmc_mk_box2(0, mmc_mk_boolean(_b3), mmc_mk_integer(((modelica_integer) 0)));
tmpMeta[2] = mmc_mk_cons(tmpMeta[3], mmc_mk_cons(tmpMeta[4], mmc_mk_cons(tmpMeta[5], MMC_REFSTRUCTLIT(mmc_nil))));
tmpMeta[6] = omc_List_select(threadData, tmpMeta[2], boxvar_Util_tuple21);
if (listEmpty(tmpMeta[6])) goto goto_2;
tmpMeta[7] = MMC_CAR(tmpMeta[6]);
tmpMeta[8] = MMC_CDR(tmpMeta[6]);
tmpMeta[9] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[7]), 2));
tmp13 = mmc_unbox_integer(tmpMeta[9]);
if (!listEmpty(tmpMeta[8])) goto goto_2;
_iv_1 = tmp13;
tmpMeta[2] = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(_iv_1));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinSign(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalBuiltinSign(threadData, _inCache, _inEnv, _inExpExpLst, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinAbs(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[5] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
volatile modelica_metatype tmp4_1;volatile modelica_metatype tmp4_2;volatile modelica_metatype tmp4_3;volatile modelica_boolean tmp4_4;volatile modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExpExpLst;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_real _rv;
modelica_real _rv_1;
modelica_metatype _env = NULL;
modelica_metatype _exp = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_integer _iv;
modelica_metatype _cache = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp3_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp4 < 2; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_real tmp6;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta[3])) goto tmp3_end;
_exp = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],1,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp6 = mmc_unbox_real(tmpMeta[3]);
_rv = tmp6;
_rv_1 = fabs(_rv);
tmpMeta[2] = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_1));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 1: {
modelica_integer tmp7;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[2] = MMC_CAR(tmp4_3);
tmpMeta[3] = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta[3])) goto tmp3_end;
_exp = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],0,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp7 = mmc_unbox_integer(tmpMeta[3]);
_iv = tmp7;
_iv = labs(_iv);
tmpMeta[2] = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(_iv));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
tmp3_done:
(void)tmp4;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp3_done2;
goto_2:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp4 < 2) {
goto tmp3_top;
}
MMC_THROW_INTERNAL();
tmp3_done2:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinAbs(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalBuiltinAbs(threadData, _inCache, _inEnv, _inExpExpLst, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinSize3(threadData_t *threadData, modelica_metatype _inDims, modelica_integer _inIndex)
{
modelica_metatype _outValue = NULL;
modelica_integer _v;
modelica_integer tmp1;
modelica_metatype tmpMeta[2] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
tmpMeta[0] = listGet(_inDims, _inIndex);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[0],0,1) == 0) MMC_THROW_INTERNAL();
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[0]), 2));
tmp1 = mmc_unbox_integer(tmpMeta[1]);
_v = tmp1;
tmpMeta[0] = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(_v));
_outValue = tmpMeta[0];
_return: OMC_LABEL_UNUSED
return _outValue;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinSize3(threadData_t *threadData, modelica_metatype _inDims, modelica_metatype _inIndex)
{
modelica_integer tmp1;
modelica_metatype _outValue = NULL;
tmp1 = mmc_unbox_integer(_inIndex);
_outValue = omc_Ceval_cevalBuiltinSize3(threadData, _inDims, tmp1);
return _outValue;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinSize2(threadData_t *threadData, modelica_metatype _inValue, modelica_integer _inInteger)
{
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[4] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
volatile modelica_metatype tmp3_1;volatile modelica_integer tmp3_2;
tmp3_1 = _inValue;
tmp3_2 = _inInteger;
{
modelica_integer _dim;
modelica_integer _ind_1;
modelica_integer _ind;
modelica_metatype _lst = NULL;
modelica_metatype _l = NULL;
volatile mmc_switch_type tmp3;
int tmp4;
tmp3 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp2_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp3 < 3; tmp3++) {
switch (MMC_SWITCH_CAST(tmp3)) {
case 0: {
if (1 != tmp3_2) goto tmp2_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,5,2) == 0) goto tmp2_end;
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
_lst = tmpMeta[1];
_dim = listLength(_lst);
tmpMeta[1] = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(_dim));
tmpMeta[0] = tmpMeta[1];
goto tmp2_done;
}
case 1: {
if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,5,2) == 0) goto tmp2_end;
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
if (listEmpty(tmpMeta[1])) goto tmp2_end;
tmpMeta[2] = MMC_CAR(tmpMeta[1]);
tmpMeta[3] = MMC_CDR(tmpMeta[1]);
_l = tmpMeta[2];
_ind = tmp3_2;
_ind_1 = ((modelica_integer) -1) + _ind;
tmpMeta[0] = omc_Ceval_cevalBuiltinSize2(threadData, _l, _ind_1);
goto tmp2_done;
}
case 2: {
modelica_boolean tmp5;
tmp5 = omc_Flags_isSet(threadData, _OMC_LIT44);
if (1 != tmp5) goto goto_1;
omc_Debug_trace(threadData, _OMC_LIT93);
goto goto_1;
goto tmp2_done;
}
}
goto tmp2_end;
tmp2_end: ;
}
goto goto_1;
tmp2_done:
(void)tmp3;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp2_done2;
goto_1:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp3 < 3) {
goto tmp2_top;
}
MMC_THROW_INTERNAL();
tmp2_done2:;
}
}
_outValue = tmpMeta[0];
_return: OMC_LABEL_UNUSED
return _outValue;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinSize2(threadData_t *threadData, modelica_metatype _inValue, modelica_metatype _inInteger)
{
modelica_integer tmp1;
modelica_metatype _outValue = NULL;
tmp1 = mmc_unbox_integer(_inInteger);
_outValue = omc_Ceval_cevalBuiltinSize2(threadData, _inValue, tmp1);
return _outValue;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltinSize(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv1, modelica_metatype _inExp2, modelica_metatype _inDimExp, modelica_boolean _inBoolean4, modelica_metatype _inMsg6, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[6] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
volatile modelica_metatype tmp4_1;volatile modelica_metatype tmp4_2;volatile modelica_metatype tmp4_3;volatile modelica_metatype tmp4_4;volatile modelica_boolean tmp4_5;volatile modelica_metatype tmp4_6;
tmp4_1 = _inCache;
tmp4_2 = _inEnv1;
tmp4_3 = _inExp2;
tmp4_4 = _inDimExp;
tmp4_5 = _inBoolean4;
tmp4_6 = _inMsg6;
{
modelica_metatype _tp = NULL;
modelica_metatype _binding = NULL;
modelica_metatype _sizelst = NULL;
modelica_metatype _adims = NULL;
modelica_integer _dim;
modelica_integer _dim_1;
modelica_integer _dimv;
modelica_integer _len;
modelica_integer _i;
modelica_metatype _env = NULL;
modelica_metatype _cr = NULL;
modelica_boolean _impl;
modelica_boolean _bl;
modelica_metatype _msg = NULL;
modelica_metatype _dims = NULL;
modelica_metatype _v2 = NULL;
modelica_metatype _val = NULL;
modelica_metatype _exp = NULL;
modelica_metatype _e = NULL;
modelica_metatype _dimExp = NULL;
modelica_string _cr_str = NULL;
modelica_string _dim_str = NULL;
modelica_string _size_str = NULL;
modelica_string _expstr = NULL;
modelica_metatype _es = NULL;
modelica_metatype _cache = NULL;
modelica_metatype _mat = NULL;
modelica_metatype _info = NULL;
modelica_metatype _ddim = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp3_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp4 < 10; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_integer tmp6;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,17,3) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
if (mmc__uniontype__metarecord__typedef__equal(tmp4_4,0,1) == 0) goto tmp3_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_4), 2));
tmp6 = mmc_unbox_integer(tmpMeta[3]);
if (1 != tmp6) goto tmp3_end;
_mat = tmpMeta[2];
_cache = tmp4_1;
tmp4 += 1;
_i = listLength(_mat);
tmpMeta[2] = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(_i));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 1: {
modelica_integer tmp7;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,17,3) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
if (mmc__uniontype__metarecord__typedef__equal(tmp4_4,0,1) == 0) goto tmp3_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_4), 2));
tmp7 = mmc_unbox_integer(tmpMeta[3]);
if (2 != tmp7) goto tmp3_end;
_mat = tmpMeta[2];
_cache = tmp4_1;
_i = listLength(listHead(_mat));
tmpMeta[2] = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(_i));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 2: {
modelica_integer tmp8;
modelica_boolean tmp9;
modelica_integer tmp10;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,17,3) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
if (mmc__uniontype__metarecord__typedef__equal(tmp4_4,0,1) == 0) goto tmp3_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_4), 2));
tmp8 = mmc_unbox_integer(tmpMeta[3]);
_mat = tmpMeta[2];
_dim = tmp8;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_5;
_msg = tmp4_6;
tmp4 += 5;
_bl = (_dim > ((modelica_integer) 2));
tmp9 = _bl;
if (1 != tmp9) goto goto_2;
_dim_1 = ((modelica_integer) -2) + _dim;
_e = listHead(listHead(_mat));
tmpMeta[4] = mmc_mk_box2(3, &DAE_Exp_ICONST__desc, mmc_mk_integer(_dim_1));
tmpMeta[5] = omc_Ceval_cevalBuiltinSize(threadData, _cache, _env, _e, tmpMeta[4], _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[5];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],0,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp10 = mmc_unbox_integer(tmpMeta[3]);
_i = tmp10;
tmpMeta[2] = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(_i));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 3: {
modelica_boolean tmp11;
modelica_integer tmp12;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,6,2) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
_cr = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_dimExp = tmp4_4;
_impl = tmp4_5;
_msg = tmp4_6;
_cache = omc_Lookup_lookupVar(threadData, _cache, _env, _cr ,NULL ,&_tp ,NULL ,NULL ,NULL ,NULL ,NULL, NULL);
tmp11 = omc_Types_dimensionsKnown(threadData, _tp);
if (1 != tmp11) goto goto_2;
tmpMeta[2] = omc_Types_getDimensionSizes(threadData, _tp);
if (listEmpty(tmpMeta[2])) goto goto_2;
tmpMeta[3] = MMC_CAR(tmpMeta[2]);
tmpMeta[4] = MMC_CDR(tmpMeta[2]);
_sizelst = tmpMeta[2];
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _dimExp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],0,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp12 = mmc_unbox_integer(tmpMeta[3]);
_dim = tmp12;
_i = mmc_unbox_integer(listGet(_sizelst, _dim));
tmpMeta[2] = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(_i));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 4: {
modelica_integer tmp13;
if (0 != tmp4_5) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,6,2) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
_impl = tmp4_5;
_cr = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_dimExp = tmp4_4;
_msg = tmp4_6;
_cache = omc_InstUtil_elabComponentArraydimFromEnv(threadData, _cache, _env, _cr, _OMC_LIT3 ,&_dims);
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _dimExp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],0,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp13 = mmc_unbox_integer(tmpMeta[3]);
_dimv = tmp13;
_ddim = listGet(_dims, _dimv);
tmpMeta[0+0] = omc_Ceval_cevalDimension(threadData, _cache, _env, _ddim, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[0+1]);
goto tmp3_done;
}
case 5: {
if (0 != tmp4_5) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,6,2) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmp4_6,0,1) == 0) goto tmp3_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_6), 2));
_cr = tmpMeta[2];
_info = tmpMeta[3];
_cache = tmp4_1;
_env = tmp4_2;
_dimExp = tmp4_4;
omc_Lookup_lookupVar(threadData, _cache, _env, _cr ,NULL ,&_tp ,&_binding ,NULL ,NULL ,NULL ,NULL ,NULL);
if((!omc_Types_dimensionsKnown(threadData, _tp)))
{
_cr_str = omc_ComponentReference_printComponentRefStr(threadData, _cr);
_dim_str = omc_ExpressionDump_printExpStr(threadData, _dimExp);
tmpMeta[2] = mmc_mk_cons(_OMC_LIT97, mmc_mk_cons(_cr_str, mmc_mk_cons(_OMC_LIT61, mmc_mk_cons(_dim_str, mmc_mk_cons(_OMC_LIT62, MMC_REFSTRUCTLIT(mmc_nil))))));
_size_str = stringAppendList(tmpMeta[2]);
tmpMeta[2] = mmc_mk_cons(_size_str, MMC_REFSTRUCTLIT(mmc_nil));
omc_Error_addSourceMessage(threadData, _OMC_LIT100, tmpMeta[2], _info);
}
else
{
{
modelica_metatype tmp16_1;
tmp16_1 = _binding;
{
volatile mmc_switch_type tmp16;
int tmp17;
tmp16 = 0;
for (; tmp16 < 1; tmp16++) {
switch (MMC_SWITCH_CAST(tmp16)) {
case 0: {
if (mmc__uniontype__metarecord__typedef__equal(tmp16_1,0,0) == 0) goto tmp15_end;
_expstr = omc_ExpressionDump_printExpStr(threadData, _inExp2);
tmpMeta[2] = mmc_mk_cons(_expstr, MMC_REFSTRUCTLIT(mmc_nil));
omc_Error_addSourceMessage(threadData, _OMC_LIT96, tmpMeta[2], _info);
goto goto_14;
goto tmp15_done;
}
}
goto tmp15_end;
tmp15_end: ;
}
goto goto_14;
goto_14:;
goto goto_2;
goto tmp15_done;
tmp15_done:;
}
}
;
}
goto goto_2;
goto tmp3_done;
}
case 6: {
modelica_integer tmp18;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,6,2) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
_cr = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_dimExp = tmp4_4;
_impl = tmp4_5;
_msg = tmp4_6;
tmp4 += 1;
_cache = omc_Lookup_lookupVar(threadData, _cache, _env, _cr ,NULL ,NULL ,&_binding ,NULL ,NULL ,NULL ,NULL ,NULL);
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _dimExp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],0,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp18 = mmc_unbox_integer(tmpMeta[3]);
_dimv = tmp18;
_cache = omc_Ceval_cevalCrefBinding(threadData, _cache, _env, _cr, _binding, _impl, _msg, ((modelica_integer) 1) + _numIter ,&_val);
_v2 = omc_Ceval_cevalBuiltinSize2(threadData, _val, _dimv);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _v2;
goto tmp3_done;
}
case 7: {
modelica_integer tmp19;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,16,3) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
if (listEmpty(tmpMeta[2])) goto tmp3_end;
tmpMeta[3] = MMC_CAR(tmpMeta[2]);
tmpMeta[4] = MMC_CDR(tmpMeta[2]);
_exp = tmpMeta[3];
_es = tmpMeta[4];
_cache = tmp4_1;
_env = tmp4_2;
_dimExp = tmp4_4;
_impl = tmp4_5;
_msg = tmp4_6;
omc_Expression_typeof(threadData, _exp);
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _dimExp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],0,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp19 = mmc_unbox_integer(tmpMeta[3]);
if (1 != tmp19) goto goto_2;
tmpMeta[2] = mmc_mk_cons(_exp, _es);
_len = listLength(tmpMeta[2]);
tmpMeta[2] = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(_len));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 8: {
modelica_integer tmp20;
_cache = tmp4_1;
_env = tmp4_2;
_exp = tmp4_3;
_dimExp = tmp4_4;
_impl = tmp4_5;
_msg = tmp4_6;
_cache = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter ,&_val);
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _dimExp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],0,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp20 = mmc_unbox_integer(tmpMeta[3]);
_dimv = tmp20;
{
modelica_metatype tmp23_1;
tmp23_1 = _val;
{
volatile mmc_switch_type tmp23;
int tmp24;
tmp23 = 0;
for (; tmp23 < 2; tmp23++) {
switch (MMC_SWITCH_CAST(tmp23)) {
case 0: {
if (mmc__uniontype__metarecord__typedef__equal(tmp23_1,5,2) == 0) goto tmp22_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp23_1), 2));
if (!listEmpty(tmpMeta[3])) goto tmp22_end;
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp23_1), 3));
_adims = tmpMeta[4];
tmpMeta[3] = mmc_mk_box2(3, &Values_Value_INTEGER__desc, listGet(_adims, _dimv));
tmpMeta[2] = tmpMeta[3];
goto tmp22_done;
}
case 1: {
tmpMeta[2] = omc_Ceval_cevalBuiltinSize2(threadData, _val, _dimv);
goto tmp22_done;
}
}
goto tmp22_end;
tmp22_end: ;
}
goto goto_21;
goto_21:;
goto goto_2;
goto tmp22_done;
tmp22_done:;
}
}
_v2 = tmpMeta[2];
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _v2;
goto tmp3_done;
}
case 9: {
modelica_boolean tmp25;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_6,0,1) == 0) goto tmp3_end;
_exp = tmp4_3;
tmp25 = omc_Flags_isSet(threadData, _OMC_LIT44);
if (1 != tmp25) goto goto_2;
omc_Print_printErrorBuf(threadData, _OMC_LIT101);
_expstr = omc_ExpressionDump_printExpStr(threadData, _exp);
omc_Print_printErrorBuf(threadData, _expstr);
omc_Print_printErrorBuf(threadData, _OMC_LIT102);
goto goto_2;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
tmp3_done:
(void)tmp4;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp3_done2;
goto_2:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp4 < 10) {
goto tmp3_top;
}
MMC_THROW_INTERNAL();
tmp3_done2:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltinSize(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv1, modelica_metatype _inExp2, modelica_metatype _inDimExp, modelica_metatype _inBoolean4, modelica_metatype _inMsg6, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean4);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalBuiltinSize(threadData, _inCache, _inEnv1, _inExp2, _inDimExp, tmp1, _inMsg6, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalMatrixElt(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inMatrix, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValues)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValues = NULL;
modelica_metatype _v = NULL;
modelica_metatype _vl = NULL;
modelica_metatype tmpMeta[3] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_outCache = _inCache;
tmpMeta[0] = MMC_REFSTRUCTLIT(mmc_nil);
_outValues = tmpMeta[0];
{
modelica_metatype _expl;
for (tmpMeta[1] = _inMatrix; !listEmpty(tmpMeta[1]); tmpMeta[1]=MMC_CDR(tmpMeta[1]))
{
_expl = MMC_CAR(tmpMeta[1]);
_outCache = omc_Ceval_cevalList(threadData, _outCache, _inEnv, _expl, _inBoolean, _inMsg, _numIter ,&_vl);
_v = omc_ValuesUtil_makeArray(threadData, _vl);
tmpMeta[2] = mmc_mk_cons(_v, _outValues);
_outValues = tmpMeta[2];
}
}
_outValues = listReverseInPlace(_outValues);
_return: OMC_LABEL_UNUSED
if (out_outValues) { *out_outValues = _outValues; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalMatrixElt(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inMatrix, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValues)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalMatrixElt(threadData, _inCache, _inEnv, _inMatrix, tmp1, _inMsg, tmp2, out_outValues);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalKnownExternalFuncs2(threadData_t *threadData, modelica_string _id, modelica_metatype _inValuesValueLst, modelica_metatype _inMsg)
{
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[16] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_string tmp3_1;modelica_metatype tmp3_2;
tmp3_1 = _id;
tmp3_2 = _inValuesValueLst;
{
modelica_real _rv_1;
modelica_real _rv;
modelica_real _rv1;
modelica_real _rv2;
modelica_real _r;
modelica_string _str = NULL;
modelica_string _fileName = NULL;
modelica_string _re = NULL;
modelica_string _str1 = NULL;
modelica_string _str2 = NULL;
modelica_integer _start;
modelica_integer _stop;
modelica_integer _i;
modelica_integer _lineNumber;
modelica_integer _n;
modelica_boolean _b;
modelica_boolean _extended;
modelica_boolean _insensitive;
modelica_metatype _strs = NULL;
modelica_metatype _vals = NULL;
modelica_metatype _v = NULL;
modelica_metatype _p = NULL;
int tmp3;
{
switch (MMC_SWITCH_CAST(stringHashDjb2Mod(tmp3_1,8192))) {
case 5163 /* acos */: {
modelica_real tmp4;
modelica_boolean tmp5;
modelica_real tmp6;
if (4 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT140), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
if (listEmpty(tmp3_2)) goto tmp2_end;
tmpMeta[1] = MMC_CAR(tmp3_2);
tmpMeta[2] = MMC_CDR(tmp3_2);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[1],1,1) == 0) goto tmp2_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[1]), 2));
tmp4 = mmc_unbox_real(tmpMeta[3]);
if (!listEmpty(tmpMeta[2])) goto tmp2_end;
_rv = tmp4;
tmp5 = ((_rv >= -1.0) && (_rv <= 1.0));
if (1 != tmp5) goto goto_1;
tmp6 = _rv;
if(!(tmp6 >= -1.0 && tmp6 <= 1.0))
{
FILE_INFO info = {"",0,0,0,0,0};
omc_assert(threadData, info, "Model error: Argument of acos(rv) outside the domain -1.0 <= %g <= 1.0", tmp6);
}
_rv_1 = acos(tmp6);
tmpMeta[1] = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_1));
tmpMeta[0] = tmpMeta[1];
goto tmp2_done;
}
case 6000 /* asin */: {
modelica_real tmp7;
modelica_boolean tmp8;
modelica_real tmp9;
if (4 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT141), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
if (listEmpty(tmp3_2)) goto tmp2_end;
tmpMeta[1] = MMC_CAR(tmp3_2);
tmpMeta[2] = MMC_CDR(tmp3_2);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[1],1,1) == 0) goto tmp2_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[1]), 2));
tmp7 = mmc_unbox_real(tmpMeta[3]);
if (!listEmpty(tmpMeta[2])) goto tmp2_end;
_rv = tmp7;
tmp8 = ((_rv >= -1.0) && (_rv <= 1.0));
if (1 != tmp8) goto goto_1;
tmp9 = _rv;
if(!(tmp9 >= -1.0 && tmp9 <= 1.0))
{
FILE_INFO info = {"",0,0,0,0,0};
omc_assert(threadData, info, "Model error: Argument of asin(rv) outside the domain -1.0 <= %g <= 1.0", tmp9);
}
_rv_1 = asin(tmp9);
tmpMeta[1] = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_1));
tmpMeta[0] = tmpMeta[1];
goto tmp2_done;
}
case 6825 /* atan */: {
modelica_real tmp10;
if (4 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT142), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
if (listEmpty(tmp3_2)) goto tmp2_end;
tmpMeta[1] = MMC_CAR(tmp3_2);
tmpMeta[2] = MMC_CDR(tmp3_2);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[1],1,1) == 0) goto tmp2_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[1]), 2));
tmp10 = mmc_unbox_real(tmpMeta[3]);
if (!listEmpty(tmpMeta[2])) goto tmp2_end;
_rv = tmp10;
_rv_1 = atan(_rv);
tmpMeta[1] = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_1));
tmpMeta[0] = tmpMeta[1];
goto tmp2_done;
}
case 4091 /* atan2 */: {
modelica_real tmp11;
modelica_real tmp12;
if (5 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT143), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
if (listEmpty(tmp3_2)) goto tmp2_end;
tmpMeta[1] = MMC_CAR(tmp3_2);
tmpMeta[2] = MMC_CDR(tmp3_2);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[1],1,1) == 0) goto tmp2_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[1]), 2));
tmp11 = mmc_unbox_real(tmpMeta[3]);
if (listEmpty(tmpMeta[2])) goto tmp2_end;
tmpMeta[4] = MMC_CAR(tmpMeta[2]);
tmpMeta[5] = MMC_CDR(tmpMeta[2]);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[4],1,1) == 0) goto tmp2_end;
tmpMeta[6] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[4]), 2));
tmp12 = mmc_unbox_real(tmpMeta[6]);
if (!listEmpty(tmpMeta[5])) goto tmp2_end;
_rv1 = tmp11;
_rv2 = tmp12;
_rv_1 = atan2(_rv1, _rv2);
tmpMeta[1] = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_1));
tmpMeta[0] = tmpMeta[1];
goto tmp2_done;
}
case 1738 /* cos */: {
modelica_real tmp13;
if (3 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT144), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
if (listEmpty(tmp3_2)) goto tmp2_end;
tmpMeta[1] = MMC_CAR(tmp3_2);
tmpMeta[2] = MMC_CDR(tmp3_2);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[1],1,1) == 0) goto tmp2_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[1]), 2));
tmp13 = mmc_unbox_real(tmpMeta[3]);
if (!listEmpty(tmpMeta[2])) goto tmp2_end;
_rv = tmp13;
_rv_1 = cos(_rv);
tmpMeta[1] = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_1));
tmpMeta[0] = tmpMeta[1];
goto tmp2_done;
}
case 114 /* cosh */: {
modelica_real tmp14;
if (4 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT145), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
if (listEmpty(tmp3_2)) goto tmp2_end;
tmpMeta[1] = MMC_CAR(tmp3_2);
tmpMeta[2] = MMC_CDR(tmp3_2);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[1],1,1) == 0) goto tmp2_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[1]), 2));
tmp14 = mmc_unbox_real(tmpMeta[3]);
if (!listEmpty(tmpMeta[2])) goto tmp2_end;
_rv = tmp14;
_rv_1 = cosh(_rv);
tmpMeta[1] = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_1));
tmpMeta[0] = tmpMeta[1];
goto tmp2_done;
}
case 4210 /* exp */: {
modelica_real tmp15;
if (3 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT146), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
if (listEmpty(tmp3_2)) goto tmp2_end;
tmpMeta[1] = MMC_CAR(tmp3_2);
tmpMeta[2] = MMC_CDR(tmp3_2);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[1],1,1) == 0) goto tmp2_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[1]), 2));
tmp15 = mmc_unbox_real(tmpMeta[3]);
if (!listEmpty(tmpMeta[2])) goto tmp2_end;
_rv = tmp15;
_rv_1 = exp(_rv);
tmpMeta[1] = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_1));
tmpMeta[0] = tmpMeta[1];
goto tmp2_done;
}
case 3335 /* log */: {
modelica_real tmp16;
modelica_boolean tmp17;
modelica_real tmp18;
if (3 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT147), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
if (listEmpty(tmp3_2)) goto tmp2_end;
tmpMeta[1] = MMC_CAR(tmp3_2);
tmpMeta[2] = MMC_CDR(tmp3_2);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[1],1,1) == 0) goto tmp2_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[1]), 2));
tmp16 = mmc_unbox_real(tmpMeta[3]);
if (!listEmpty(tmpMeta[2])) goto tmp2_end;
_rv = tmp16;
tmp17 = (_rv > 0.0);
if (1 != tmp17) goto goto_1;
tmp18 = _rv;
if(!(tmp18 > 0.0))
{
FILE_INFO info = {"",0,0,0,0,0};
omc_assert(threadData, info, "Model error: Argument of log(rv) was %g should be > 0", tmp18);
}
_rv_1 = log(tmp18);
tmpMeta[1] = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_1));
tmpMeta[0] = tmpMeta[1];
goto tmp2_done;
}
case 4424 /* log10 */: {
modelica_real tmp19;
modelica_boolean tmp20;
modelica_real tmp21;
if (5 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT148), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
if (listEmpty(tmp3_2)) goto tmp2_end;
tmpMeta[1] = MMC_CAR(tmp3_2);
tmpMeta[2] = MMC_CDR(tmp3_2);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[1],1,1) == 0) goto tmp2_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[1]), 2));
tmp19 = mmc_unbox_real(tmpMeta[3]);
if (!listEmpty(tmpMeta[2])) goto tmp2_end;
_rv = tmp19;
tmp20 = (_rv > 0.0);
if (1 != tmp20) goto goto_1;
tmp21 = _rv;
if(!(tmp21 > 0.0))
{
FILE_INFO info = {"",0,0,0,0,0};
omc_assert(threadData, info, "Model error: Argument of log10(rv) was %g should be > 0", tmp21);
}
_rv_1 = log10(tmp21);
tmpMeta[1] = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_1));
tmpMeta[0] = tmpMeta[1];
goto tmp2_done;
}
case 2575 /* sin */: {
modelica_real tmp22;
if (3 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT149), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
if (listEmpty(tmp3_2)) goto tmp2_end;
tmpMeta[1] = MMC_CAR(tmp3_2);
tmpMeta[2] = MMC_CDR(tmp3_2);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[1],1,1) == 0) goto tmp2_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[1]), 2));
tmp22 = mmc_unbox_real(tmpMeta[3]);
if (!listEmpty(tmpMeta[2])) goto tmp2_end;
_rv = tmp22;
_rv_1 = sin(_rv);
tmpMeta[1] = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_1));
tmpMeta[0] = tmpMeta[1];
goto tmp2_done;
}
case 3159 /* sinh */: {
modelica_real tmp23;
if (4 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT150), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
if (listEmpty(tmp3_2)) goto tmp2_end;
tmpMeta[1] = MMC_CAR(tmp3_2);
tmpMeta[2] = MMC_CDR(tmp3_2);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[1],1,1) == 0) goto tmp2_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[1]), 2));
tmp23 = mmc_unbox_real(tmpMeta[3]);
if (!listEmpty(tmpMeta[2])) goto tmp2_end;
_rv = tmp23;
_rv_1 = sinh(_rv);
tmpMeta[1] = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_1));
tmpMeta[0] = tmpMeta[1];
goto tmp2_done;
}
case 3400 /* tan */: {
modelica_real tmp24;
if (3 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT151), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
if (listEmpty(tmp3_2)) goto tmp2_end;
tmpMeta[1] = MMC_CAR(tmp3_2);
tmpMeta[2] = MMC_CDR(tmp3_2);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[1],1,1) == 0) goto tmp2_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[1]), 2));
tmp24 = mmc_unbox_real(tmpMeta[3]);
if (!listEmpty(tmpMeta[2])) goto tmp2_end;
_rv = tmp24;
_rv_1 = tan(_rv);
tmpMeta[1] = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_1));
tmpMeta[0] = tmpMeta[1];
goto tmp2_done;
}
case 5808 /* tanh */: {
modelica_real tmp25;
if (4 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT152), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
if (listEmpty(tmp3_2)) goto tmp2_end;
tmpMeta[1] = MMC_CAR(tmp3_2);
tmpMeta[2] = MMC_CDR(tmp3_2);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[1],1,1) == 0) goto tmp2_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[1]), 2));
tmp25 = mmc_unbox_real(tmpMeta[3]);
if (!listEmpty(tmpMeta[2])) goto tmp2_end;
_rv = tmp25;
_rv_1 = tanh(_rv);
tmpMeta[1] = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_1));
tmpMeta[0] = tmpMeta[1];
goto tmp2_done;
}
case 6093 /* ModelicaStrings_substring */: {
modelica_integer tmp26;
modelica_integer tmp27;
if (25 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT153), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
if (listEmpty(tmp3_2)) goto tmp2_end;
tmpMeta[1] = MMC_CAR(tmp3_2);
tmpMeta[2] = MMC_CDR(tmp3_2);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[1],2,1) == 0) goto tmp2_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[1]), 2));
if (listEmpty(tmpMeta[2])) goto tmp2_end;
tmpMeta[4] = MMC_CAR(tmpMeta[2]);
tmpMeta[5] = MMC_CDR(tmpMeta[2]);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[4],0,1) == 0) goto tmp2_end;
tmpMeta[6] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[4]), 2));
tmp26 = mmc_unbox_integer(tmpMeta[6]);
if (listEmpty(tmpMeta[5])) goto tmp2_end;
tmpMeta[7] = MMC_CAR(tmpMeta[5]);
tmpMeta[8] = MMC_CDR(tmpMeta[5]);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[7],0,1) == 0) goto tmp2_end;
tmpMeta[9] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[7]), 2));
tmp27 = mmc_unbox_integer(tmpMeta[9]);
if (!listEmpty(tmpMeta[8])) goto tmp2_end;
_str = tmpMeta[3];
_start = tmp26;
_stop = tmp27;
_str = substring(_str, _start, _stop);
tmpMeta[1] = mmc_mk_box2(5, &Values_Value_STRING__desc, _str);
tmpMeta[0] = tmpMeta[1];
goto tmp2_done;
}
case 6638 /* ModelicaStrings_length */: {
if (22 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT154), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
if (listEmpty(tmp3_2)) goto tmp2_end;
tmpMeta[1] = MMC_CAR(tmp3_2);
tmpMeta[2] = MMC_CDR(tmp3_2);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[1],2,1) == 0) goto tmp2_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[1]), 2));
if (!listEmpty(tmpMeta[2])) goto tmp2_end;
_str = tmpMeta[3];
_i = stringLength(_str);
tmpMeta[1] = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(_i));
tmpMeta[0] = tmpMeta[1];
goto tmp2_done;
}
case 2322 /* print */: {
if (5 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT155), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
if (listEmpty(tmp3_2)) goto tmp2_end;
tmpMeta[1] = MMC_CAR(tmp3_2);
tmpMeta[2] = MMC_CDR(tmp3_2);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[1],2,1) == 0) goto tmp2_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[1]), 2));
if (!listEmpty(tmpMeta[2])) goto tmp2_end;
_str = tmpMeta[3];
fputs(MMC_STRINGDATA(_str),stdout);
tmpMeta[0] = _OMC_LIT84;
goto tmp2_done;
}
case 8023 /* ModelicaStreams_closeFile */: {
if (25 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT156), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
if (listEmpty(tmp3_2)) goto tmp2_end;
tmpMeta[1] = MMC_CAR(tmp3_2);
tmpMeta[2] = MMC_CDR(tmp3_2);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[1],2,1) == 0) goto tmp2_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[1]), 2));
if (!listEmpty(tmpMeta[2])) goto tmp2_end;
_fileName = tmpMeta[3];
omc_ModelicaExternalC_Streams__close(threadData, _fileName);
tmpMeta[0] = _OMC_LIT84;
goto tmp2_done;
}
case 5772 /* ModelicaInternal_print */: {
if (22 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT157), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
if (listEmpty(tmp3_2)) goto tmp2_end;
tmpMeta[1] = MMC_CAR(tmp3_2);
tmpMeta[2] = MMC_CDR(tmp3_2);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[1],2,1) == 0) goto tmp2_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[1]), 2));
if (listEmpty(tmpMeta[2])) goto tmp2_end;
tmpMeta[4] = MMC_CAR(tmpMeta[2]);
tmpMeta[5] = MMC_CDR(tmpMeta[2]);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[4],2,1) == 0) goto tmp2_end;
tmpMeta[6] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[4]), 2));
if (!listEmpty(tmpMeta[5])) goto tmp2_end;
_str = tmpMeta[3];
_fileName = tmpMeta[6];
omc_ModelicaExternalC_Streams__print(threadData, _str, _fileName);
tmpMeta[0] = _OMC_LIT84;
goto tmp2_done;
}
case 4707 /* ModelicaInternal_countLines */: {
if (27 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT158), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
if (listEmpty(tmp3_2)) goto tmp2_end;
tmpMeta[1] = MMC_CAR(tmp3_2);
tmpMeta[2] = MMC_CDR(tmp3_2);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[1],2,1) == 0) goto tmp2_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[1]), 2));
if (!listEmpty(tmpMeta[2])) goto tmp2_end;
_fileName = tmpMeta[3];
_i = omc_ModelicaExternalC_Streams__countLines(threadData, _fileName);
tmpMeta[1] = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(_i));
tmpMeta[0] = tmpMeta[1];
goto tmp2_done;
}
case 4867 /* ModelicaInternal_readLine */: {
modelica_integer tmp28;
if (25 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT159), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
if (listEmpty(tmp3_2)) goto tmp2_end;
tmpMeta[1] = MMC_CAR(tmp3_2);
tmpMeta[2] = MMC_CDR(tmp3_2);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[1],2,1) == 0) goto tmp2_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[1]), 2));
if (listEmpty(tmpMeta[2])) goto tmp2_end;
tmpMeta[4] = MMC_CAR(tmpMeta[2]);
tmpMeta[5] = MMC_CDR(tmpMeta[2]);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[4],0,1) == 0) goto tmp2_end;
tmpMeta[6] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[4]), 2));
tmp28 = mmc_unbox_integer(tmpMeta[6]);
if (!listEmpty(tmpMeta[5])) goto tmp2_end;
_fileName = tmpMeta[3];
_lineNumber = tmp28;
_str = omc_ModelicaExternalC_Streams__readLine(threadData, _fileName, _lineNumber ,&_b);
tmpMeta[2] = mmc_mk_box2(5, &Values_Value_STRING__desc, _str);
tmpMeta[3] = mmc_mk_box2(6, &Values_Value_BOOL__desc, mmc_mk_boolean(_b));
tmpMeta[1] = mmc_mk_cons(tmpMeta[2], mmc_mk_cons(tmpMeta[3], MMC_REFSTRUCTLIT(mmc_nil)));
tmpMeta[4] = mmc_mk_box2(11, &Values_Value_TUPLE__desc, tmpMeta[1]);
tmpMeta[0] = tmpMeta[4];
goto tmp2_done;
}
case 4064 /* ModelicaInternal_fullPathName */: {
if (29 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT160), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
if (listEmpty(tmp3_2)) goto tmp2_end;
tmpMeta[1] = MMC_CAR(tmp3_2);
tmpMeta[2] = MMC_CDR(tmp3_2);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[1],2,1) == 0) goto tmp2_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[1]), 2));
if (!listEmpty(tmpMeta[2])) goto tmp2_end;
_fileName = tmpMeta[3];
_fileName = omc_ModelicaExternalC_File__fullPathName(threadData, _fileName);
tmpMeta[1] = mmc_mk_box2(5, &Values_Value_STRING__desc, _fileName);
tmpMeta[0] = tmpMeta[1];
goto tmp2_done;
}
case 8123 /* ModelicaInternal_stat */: {
if (21 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT161), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
if (listEmpty(tmp3_2)) goto tmp2_end;
tmpMeta[1] = MMC_CAR(tmp3_2);
tmpMeta[2] = MMC_CDR(tmp3_2);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[1],2,1) == 0) goto tmp2_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[1]), 2));
if (!listEmpty(tmpMeta[2])) goto tmp2_end;
_str = tmpMeta[3];
_i = omc_ModelicaExternalC_File__stat(threadData, _str);
_str = listGet(_OMC_LIT110, _i);
tmpMeta[1] = mmc_mk_cons(_OMC_LIT111, mmc_mk_cons(_OMC_LIT112, mmc_mk_cons(_OMC_LIT113, mmc_mk_cons(_OMC_LIT114, mmc_mk_cons(_str, MMC_REFSTRUCTLIT(mmc_nil))))));
_p = omc_AbsynUtil_stringListPath(threadData, tmpMeta[1]);
tmpMeta[1] = mmc_mk_box3(7, &Values_Value_ENUM__LITERAL__desc, _p, mmc_mk_integer(_i));
tmpMeta[0] = tmpMeta[1];
goto tmp2_done;
}
case 4851 /* ModelicaStrings_compare */: {
modelica_integer tmp29;
if (23 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT162), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
if (listEmpty(tmp3_2)) goto tmp2_end;
tmpMeta[1] = MMC_CAR(tmp3_2);
tmpMeta[2] = MMC_CDR(tmp3_2);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[1],2,1) == 0) goto tmp2_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[1]), 2));
if (listEmpty(tmpMeta[2])) goto tmp2_end;
tmpMeta[4] = MMC_CAR(tmpMeta[2]);
tmpMeta[5] = MMC_CDR(tmpMeta[2]);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[4],2,1) == 0) goto tmp2_end;
tmpMeta[6] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[4]), 2));
if (listEmpty(tmpMeta[5])) goto tmp2_end;
tmpMeta[7] = MMC_CAR(tmpMeta[5]);
tmpMeta[8] = MMC_CDR(tmpMeta[5]);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[7],3,1) == 0) goto tmp2_end;
tmpMeta[9] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[7]), 2));
tmp29 = mmc_unbox_integer(tmpMeta[9]);
if (!listEmpty(tmpMeta[8])) goto tmp2_end;
_str1 = tmpMeta[3];
_str2 = tmpMeta[6];
_b = tmp29;
_i = omc_ModelicaExternalC_Strings__compare(threadData, _str1, _str2, _b);
_p = listGet(_OMC_LIT139, _i);
tmpMeta[1] = mmc_mk_box3(7, &Values_Value_ENUM__LITERAL__desc, _p, mmc_mk_integer(_i));
tmpMeta[0] = tmpMeta[1];
goto tmp2_done;
}
case 7349 /* ModelicaStrings_scanReal */: {
modelica_integer tmp30;
modelica_integer tmp31;
if (24 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT163), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
if (listEmpty(tmp3_2)) goto tmp2_end;
tmpMeta[1] = MMC_CAR(tmp3_2);
tmpMeta[2] = MMC_CDR(tmp3_2);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[1],2,1) == 0) goto tmp2_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[1]), 2));
if (listEmpty(tmpMeta[2])) goto tmp2_end;
tmpMeta[4] = MMC_CAR(tmpMeta[2]);
tmpMeta[5] = MMC_CDR(tmpMeta[2]);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[4],0,1) == 0) goto tmp2_end;
tmpMeta[6] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[4]), 2));
tmp30 = mmc_unbox_integer(tmpMeta[6]);
if (listEmpty(tmpMeta[5])) goto tmp2_end;
tmpMeta[7] = MMC_CAR(tmpMeta[5]);
tmpMeta[8] = MMC_CDR(tmpMeta[5]);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[7],3,1) == 0) goto tmp2_end;
tmpMeta[9] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[7]), 2));
tmp31 = mmc_unbox_integer(tmpMeta[9]);
if (!listEmpty(tmpMeta[8])) goto tmp2_end;
_str = tmpMeta[3];
_i = tmp30;
_b = tmp31;
_i = omc_ModelicaExternalC_Strings__scanReal(threadData, _str, _i, _b ,&_r);
tmpMeta[2] = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(_i));
tmpMeta[3] = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_r));
tmpMeta[1] = mmc_mk_cons(tmpMeta[2], mmc_mk_cons(tmpMeta[3], MMC_REFSTRUCTLIT(mmc_nil)));
tmpMeta[4] = mmc_mk_box2(11, &Values_Value_TUPLE__desc, tmpMeta[1]);
tmpMeta[0] = tmpMeta[4];
goto tmp2_done;
}
case 5456 /* ModelicaStrings_skipWhiteSpace */: {
modelica_integer tmp32;
if (30 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT164), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
if (listEmpty(tmp3_2)) goto tmp2_end;
tmpMeta[1] = MMC_CAR(tmp3_2);
tmpMeta[2] = MMC_CDR(tmp3_2);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[1],2,1) == 0) goto tmp2_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[1]), 2));
if (listEmpty(tmpMeta[2])) goto tmp2_end;
tmpMeta[4] = MMC_CAR(tmpMeta[2]);
tmpMeta[5] = MMC_CDR(tmpMeta[2]);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[4],0,1) == 0) goto tmp2_end;
tmpMeta[6] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[4]), 2));
tmp32 = mmc_unbox_integer(tmpMeta[6]);
if (!listEmpty(tmpMeta[5])) goto tmp2_end;
_str = tmpMeta[3];
_i = tmp32;
_i = omc_ModelicaExternalC_Strings__skipWhiteSpace(threadData, _str, _i);
tmpMeta[1] = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(_i));
tmpMeta[0] = tmpMeta[1];
goto tmp2_done;
}
case 5903 /* OpenModelica_regex */: {
modelica_integer tmp33;
modelica_integer tmp34;
modelica_integer tmp35;
if (18 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT165), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
if (listEmpty(tmp3_2)) goto tmp2_end;
tmpMeta[1] = MMC_CAR(tmp3_2);
tmpMeta[2] = MMC_CDR(tmp3_2);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[1],2,1) == 0) goto tmp2_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[1]), 2));
if (listEmpty(tmpMeta[2])) goto tmp2_end;
tmpMeta[4] = MMC_CAR(tmpMeta[2]);
tmpMeta[5] = MMC_CDR(tmpMeta[2]);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[4],2,1) == 0) goto tmp2_end;
tmpMeta[6] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[4]), 2));
if (listEmpty(tmpMeta[5])) goto tmp2_end;
tmpMeta[7] = MMC_CAR(tmpMeta[5]);
tmpMeta[8] = MMC_CDR(tmpMeta[5]);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[7],0,1) == 0) goto tmp2_end;
tmpMeta[9] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[7]), 2));
tmp33 = mmc_unbox_integer(tmpMeta[9]);
if (listEmpty(tmpMeta[8])) goto tmp2_end;
tmpMeta[10] = MMC_CAR(tmpMeta[8]);
tmpMeta[11] = MMC_CDR(tmpMeta[8]);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[10],3,1) == 0) goto tmp2_end;
tmpMeta[12] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[10]), 2));
tmp34 = mmc_unbox_integer(tmpMeta[12]);
if (listEmpty(tmpMeta[11])) goto tmp2_end;
tmpMeta[13] = MMC_CAR(tmpMeta[11]);
tmpMeta[14] = MMC_CDR(tmpMeta[11]);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[13],3,1) == 0) goto tmp2_end;
tmpMeta[15] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[13]), 2));
tmp35 = mmc_unbox_integer(tmpMeta[15]);
if (!listEmpty(tmpMeta[14])) goto tmp2_end;
_str = tmpMeta[3];
_re = tmpMeta[6];
_i = tmp33;
_extended = tmp34;
_insensitive = tmp35;
_n = omc_System_regex(threadData, _str, _re, _i, _extended, _insensitive ,&_strs);
_vals = omc_List_map(threadData, _strs, boxvar_ValuesUtil_makeString);
tmpMeta[1] = mmc_mk_cons(mmc_mk_integer(_i), MMC_REFSTRUCTLIT(mmc_nil));
tmpMeta[2] = mmc_mk_box3(8, &Values_Value_ARRAY__desc, _vals, tmpMeta[1]);
_v = tmpMeta[2];
tmpMeta[2] = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(_n));
tmpMeta[1] = mmc_mk_cons(tmpMeta[2], mmc_mk_cons(_v, MMC_REFSTRUCTLIT(mmc_nil)));
tmpMeta[3] = mmc_mk_box2(11, &Values_Value_TUPLE__desc, tmpMeta[1]);
tmpMeta[0] = tmpMeta[3];
goto tmp2_done;
}
}
goto tmp2_end;
tmp2_end: ;
}
goto goto_1;
goto_1:;
MMC_THROW_INTERNAL();
goto tmp2_done;
tmp2_done:;
}
}
_outValue = tmpMeta[0];
_return: OMC_LABEL_UNUSED
return _outValue;
}
DLLExport
void omc_Ceval_isKnownExternalFunc(threadData_t *threadData, modelica_string _id)
{
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_string tmp3_1;
tmp3_1 = _id;
{
int tmp3;
{
switch (MMC_SWITCH_CAST(stringHashDjb2Mod(tmp3_1,8192))) {
case 5163 /* acos */: {
if (4 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT140), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
goto tmp2_done;
}
case 6000 /* asin */: {
if (4 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT141), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
goto tmp2_done;
}
case 6825 /* atan */: {
if (4 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT142), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
goto tmp2_done;
}
case 4091 /* atan2 */: {
if (5 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT143), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
goto tmp2_done;
}
case 1738 /* cos */: {
if (3 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT144), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
goto tmp2_done;
}
case 114 /* cosh */: {
if (4 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT145), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
goto tmp2_done;
}
case 4210 /* exp */: {
if (3 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT146), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
goto tmp2_done;
}
case 3335 /* log */: {
if (3 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT147), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
goto tmp2_done;
}
case 4424 /* log10 */: {
if (5 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT148), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
goto tmp2_done;
}
case 2575 /* sin */: {
if (3 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT149), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
goto tmp2_done;
}
case 3159 /* sinh */: {
if (4 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT150), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
goto tmp2_done;
}
case 3400 /* tan */: {
if (3 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT151), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
goto tmp2_done;
}
case 5808 /* tanh */: {
if (4 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT152), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
goto tmp2_done;
}
case 2322 /* print */: {
if (5 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT155), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
goto tmp2_done;
}
case 8023 /* ModelicaStreams_closeFile */: {
if (25 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT156), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
goto tmp2_done;
}
case 6093 /* ModelicaStrings_substring */: {
if (25 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT153), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
goto tmp2_done;
}
case 6638 /* ModelicaStrings_length */: {
if (22 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT154), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
goto tmp2_done;
}
case 5772 /* ModelicaInternal_print */: {
if (22 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT157), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
goto tmp2_done;
}
case 4707 /* ModelicaInternal_countLines */: {
if (27 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT158), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
goto tmp2_done;
}
case 4867 /* ModelicaInternal_readLine */: {
if (25 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT159), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
goto tmp2_done;
}
case 8123 /* ModelicaInternal_stat */: {
if (21 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT161), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
goto tmp2_done;
}
case 4064 /* ModelicaInternal_fullPathName */: {
if (29 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT160), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
goto tmp2_done;
}
case 4851 /* ModelicaStrings_compare */: {
if (23 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT162), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
goto tmp2_done;
}
case 7349 /* ModelicaStrings_scanReal */: {
if (24 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT163), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
goto tmp2_done;
}
case 5456 /* ModelicaStrings_skipWhiteSpace */: {
if (30 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT164), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
goto tmp2_done;
}
case 3949 /* ModelicaError */: {
if (13 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT166), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
goto tmp2_done;
}
case 5903 /* OpenModelica_regex */: {
if (18 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT165), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
goto tmp2_done;
}
}
goto tmp2_end;
tmp2_end: ;
}
goto goto_1;
goto_1:;
MMC_THROW_INTERNAL();
goto tmp2_done;
tmp2_done:;
}
}
;
_return: OMC_LABEL_UNUSED
return;
}
DLLExport
modelica_metatype omc_Ceval_cevalKnownExternalFuncs(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _env, modelica_metatype _funcpath, modelica_metatype _vals, modelica_metatype _msg, modelica_metatype *out_res)
{
modelica_metatype _outCache = NULL;
modelica_metatype _res = NULL;
modelica_metatype _cdef = NULL;
modelica_metatype _env_1 = NULL;
modelica_string _fid = NULL;
modelica_string _id = NULL;
modelica_metatype _oid = NULL;
modelica_metatype _extdecl = NULL;
modelica_metatype _lan = NULL;
modelica_metatype _out = NULL;
modelica_metatype _args = NULL;
modelica_metatype _funcRest = NULL;
modelica_metatype tmpMeta[6] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_outCache = omc_Lookup_lookupClass(threadData, _inCache, _env, _funcpath, mmc_mk_none() ,&_cdef ,&_env_1);
tmpMeta[0] = _cdef;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[0],2,8) == 0) MMC_THROW_INTERNAL();
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[0]), 2));
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[0]), 6));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],9,1) == 0) MMC_THROW_INTERNAL();
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[0]), 7));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[4],0,8) == 0) MMC_THROW_INTERNAL();
tmpMeta[5] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[4]), 9));
_fid = tmpMeta[1];
_funcRest = tmpMeta[3];
_extdecl = tmpMeta[5];
tmpMeta[0] = _funcRest;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[0],1,1) == 0) MMC_THROW_INTERNAL();
tmpMeta[0] = _extdecl;
if (optionNone(tmpMeta[0])) MMC_THROW_INTERNAL();
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[0]), 1));
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[1]), 2));
_oid = tmpMeta[2];
_id = omc_Util_getOptionOrDefault(threadData, _oid, _fid);
omc_Ceval_isKnownExternalFunc(threadData, _id);
_res = omc_Ceval_cevalKnownExternalFuncs2(threadData, _id, _vals, _msg);
_return: OMC_LABEL_UNUSED
if (out_res) { *out_res = _res; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_fnptr omc_Ceval_cevalBuiltinHandler(threadData_t *threadData, modelica_string _inIdent)
{
modelica_fnptr _handler;
modelica_fnptr tmp1 = 0;
modelica_metatype tmpMeta[1] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_string tmp4_1;
tmp4_1 = _inIdent;
{
modelica_string _id = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 65; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (5 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT168), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalBuiltinFloor;
goto tmp3_done;
}
case 1: {
if (4 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT169), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalBuiltinCeil;
goto tmp3_done;
}
case 2: {
if (3 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT170), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalBuiltinAbs;
goto tmp3_done;
}
case 3: {
if (4 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT171), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalBuiltinSqrt;
goto tmp3_done;
}
case 4: {
if (3 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT172), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalBuiltinDiv;
goto tmp3_done;
}
case 5: {
if (3 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT149), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalBuiltinSin;
goto tmp3_done;
}
case 6: {
if (3 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT144), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalBuiltinCos;
goto tmp3_done;
}
case 7: {
if (3 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT151), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalBuiltinTan;
goto tmp3_done;
}
case 8: {
if (4 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT150), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalBuiltinSinh;
goto tmp3_done;
}
case 9: {
if (4 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT145), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalBuiltinCosh;
goto tmp3_done;
}
case 10: {
if (4 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT152), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalBuiltinTanh;
goto tmp3_done;
}
case 11: {
if (4 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT141), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalBuiltinAsin;
goto tmp3_done;
}
case 12: {
if (4 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT140), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalBuiltinAcos;
goto tmp3_done;
}
case 13: {
if (4 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT142), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalBuiltinAtan;
goto tmp3_done;
}
case 14: {
if (5 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT143), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalBuiltinAtan2;
goto tmp3_done;
}
case 15: {
if (3 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT147), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalBuiltinLog;
goto tmp3_done;
}
case 16: {
if (5 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT148), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalBuiltinLog10;
goto tmp3_done;
}
case 17: {
if (7 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT173), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalBuiltinInteger;
goto tmp3_done;
}
case 18: {
if (7 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT174), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalBuiltinBoolean;
goto tmp3_done;
}
case 19: {
if (3 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT175), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalBuiltinMod;
goto tmp3_done;
}
case 20: {
if (3 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT176), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalBuiltinMax;
goto tmp3_done;
}
case 21: {
if (3 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT177), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalBuiltinMin;
goto tmp3_done;
}
case 22: {
if (3 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT178), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalBuiltinRem;
goto tmp3_done;
}
case 23: {
if (3 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT179), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalBuiltinSum;
goto tmp3_done;
}
case 24: {
if (8 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT180), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalBuiltinDiagonal;
goto tmp3_done;
}
case 25: {
if (4 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT181), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalBuiltinSign;
goto tmp3_done;
}
case 26: {
if (3 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT146), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalBuiltinExp;
goto tmp3_done;
}
case 27: {
if (7 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT182), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalBuiltinNoevent;
goto tmp3_done;
}
case 28: {
if (3 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT183), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalBuiltinCat;
goto tmp3_done;
}
case 29: {
if (8 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT184), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalBuiltinIdentity;
goto tmp3_done;
}
case 30: {
if (7 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT185), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalBuiltinPromote;
goto tmp3_done;
}
case 31: {
if (6 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT186), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalBuiltinString;
goto tmp3_done;
}
case 32: {
if (7 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT187), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalBuiltinIntegerEnumeration;
goto tmp3_done;
}
case 33: {
if (6 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT188), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalBuiltinRooted;
goto tmp3_done;
}
case 34: {
if (5 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT47), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalBuiltinCross;
goto tmp3_done;
}
case 35: {
if (4 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT189), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalBuiltinFill;
goto tmp3_done;
}
case 36: {
if (36 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT190), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalBuiltinSubstring;
goto tmp3_done;
}
case 37: {
if (5 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT155), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalBuiltinPrint;
goto tmp3_done;
}
case 38: {
if (4 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT191), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalBuiltinFail;
goto tmp3_done;
}
case 39: {
if (9 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT192), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
if (!omc_Config_acceptMetaModelicaGrammar(threadData)) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalIntString;
goto tmp3_done;
}
case 40: {
if (10 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT193), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
if (!omc_Config_acceptMetaModelicaGrammar(threadData)) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalRealString;
goto tmp3_done;
}
case 41: {
if (13 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT194), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
if (!omc_Config_acceptMetaModelicaGrammar(threadData)) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalStringCharInt;
goto tmp3_done;
}
case 42: {
if (13 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT195), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
if (!omc_Config_acceptMetaModelicaGrammar(threadData)) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalIntStringChar;
goto tmp3_done;
}
case 43: {
if (12 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT196), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
if (!omc_Config_acceptMetaModelicaGrammar(threadData)) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalStringLength;
goto tmp3_done;
}
case 44: {
if (9 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT197), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
if (!omc_Config_acceptMetaModelicaGrammar(threadData)) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalStringInt;
goto tmp3_done;
}
case 45: {
if (20 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT198), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
if (!omc_Config_acceptMetaModelicaGrammar(threadData)) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalStringListStringChar;
goto tmp3_done;
}
case 46: {
if (20 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT199), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
if (!omc_Config_acceptMetaModelicaGrammar(threadData)) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalListStringCharString;
goto tmp3_done;
}
case 47: {
if (16 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT200), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
if (!omc_Config_acceptMetaModelicaGrammar(threadData)) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalStringAppendList;
goto tmp3_done;
}
case 48: {
if (17 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT201), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
if (!omc_Config_acceptMetaModelicaGrammar(threadData)) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalStringDelimitList;
goto tmp3_done;
}
case 49: {
if (10 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT202), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
if (!omc_Config_acceptMetaModelicaGrammar(threadData)) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalListLength;
goto tmp3_done;
}
case 50: {
if (10 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT203), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
if (!omc_Config_acceptMetaModelicaGrammar(threadData)) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalListAppend;
goto tmp3_done;
}
case 51: {
if (11 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT16), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
if (!omc_Config_acceptMetaModelicaGrammar(threadData)) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalListReverse;
goto tmp3_done;
}
case 52: {
if (8 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT204), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
if (!omc_Config_acceptMetaModelicaGrammar(threadData)) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalListFirst;
goto tmp3_done;
}
case 53: {
if (8 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT205), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
if (!omc_Config_acceptMetaModelicaGrammar(threadData)) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalListRest;
goto tmp3_done;
}
case 54: {
if (10 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT206), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
if (!omc_Config_acceptMetaModelicaGrammar(threadData)) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalListMember;
goto tmp3_done;
}
case 55: {
if (9 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT207), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
if (!omc_Config_acceptMetaModelicaGrammar(threadData)) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalAnyString;
goto tmp3_done;
}
case 56: {
if (16 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT208), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
if (!omc_Config_acceptMetaModelicaGrammar(threadData)) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalListArrayLiteral;
goto tmp3_done;
}
case 57: {
if (9 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT209), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
if (!omc_Config_acceptMetaModelicaGrammar(threadData)) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalIntBitAnd;
goto tmp3_done;
}
case 58: {
if (8 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT210), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
if (!omc_Config_acceptMetaModelicaGrammar(threadData)) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalIntBitOr;
goto tmp3_done;
}
case 59: {
if (9 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT211), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
if (!omc_Config_acceptMetaModelicaGrammar(threadData)) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalIntBitXor;
goto tmp3_done;
}
case 60: {
if (12 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT212), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
if (!omc_Config_acceptMetaModelicaGrammar(threadData)) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalIntBitLShift;
goto tmp3_done;
}
case 61: {
if (12 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT213), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
if (!omc_Config_acceptMetaModelicaGrammar(threadData)) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalIntBitRShift;
goto tmp3_done;
}
case 62: {
if (7 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT214), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalNumBits;
goto tmp3_done;
}
case 63: {
if (10 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT215), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalIntegerMax;
goto tmp3_done;
}
case 64: {
modelica_boolean tmp6;
_id = tmp4_1;
tmp6 = omc_Flags_isSet(threadData, _OMC_LIT26);
if (1 != tmp6) goto goto_2;
tmpMeta[0] = stringAppend(_OMC_LIT167,_id);
omc_Debug_traceln(threadData, tmpMeta[0]);
goto goto_2;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_handler = (modelica_fnptr) tmp1;
_return: OMC_LABEL_UNUSED
return _handler;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalBuiltin(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExp, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[6] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
volatile modelica_metatype tmp4_1;volatile modelica_metatype tmp4_2;volatile modelica_metatype tmp4_3;volatile modelica_boolean tmp4_4;volatile modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExp;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_metatype _env = NULL;
modelica_metatype _exp = NULL;
modelica_metatype _dim = NULL;
modelica_metatype _e = NULL;
modelica_boolean _impl;
modelica_metatype _msg = NULL;
modelica_fnptr _handler;
modelica_string _id = NULL;
modelica_metatype _args = NULL;
modelica_metatype _expl = NULL;
modelica_metatype _vallst = NULL;
modelica_metatype _path = NULL;
modelica_metatype _cache = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp3_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp4 < 4; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,24,2) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (optionNone(tmpMeta[3])) goto tmp3_end;
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[3]), 1));
_exp = tmpMeta[2];
_dim = tmpMeta[4];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 3;
tmpMeta[0+0] = omc_Ceval_cevalBuiltinSize(threadData, _cache, _env, _exp, _dim, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[0+1]);
goto tmp3_done;
}
case 1: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,24,2) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (!optionNone(tmpMeta[3])) goto tmp3_end;
_exp = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 2;
tmpMeta[0+0] = omc_Ceval_cevalBuiltinSizeMatrix(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[0+1]);
goto tmp3_done;
}
case 2: {
modelica_integer tmp6;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,13,3) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
tmpMeta[5] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[4]), 4));
tmp6 = mmc_unbox_integer(tmpMeta[5]);
if (1 != tmp6) goto tmp3_end;
_path = tmpMeta[2];
_args = tmpMeta[3];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
_id = omc_AbsynUtil_pathString(threadData, _path, _OMC_LIT82, 1, 0);
_handler = (modelica_fnptr) omc_Ceval_cevalBuiltinHandler(threadData, _id);
tmpMeta[0+0] = (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_handler), 2))) ? ((modelica_metatype(*)(threadData_t*, modelica_metatype, modelica_metatype, modelica_metatype, modelica_metatype, modelica_metatype, modelica_metatype, modelica_metatype, modelica_metatype)) (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_handler), 1)))) (threadData, (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_handler), 2))), _cache, _env, _args, mmc_mk_boolean(_impl), _msg, mmc_mk_integer(((modelica_integer) 1) + _numIter), &tmpMeta[0+1]) : ((modelica_metatype(*)(threadData_t*, modelica_metatype, modelica_metatype, modelica_metatype, modelica_metatype, modelica_metatype, modelica_metatype, modelica_metatype)) (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_handler), 1)))) (threadData, _cache, _env, _args, mmc_mk_boolean(_impl), _msg, mmc_mk_integer(((modelica_integer) 1) + _numIter), &tmpMeta[0+1]);
goto tmp3_done;
}
case 3: {
modelica_integer tmp7;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,13,3) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[3]), 4));
tmp7 = mmc_unbox_integer(tmpMeta[4]);
if (1 != tmp7) goto tmp3_end;
_e = tmp4_3;
_expl = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
_cache = omc_Ceval_cevalList(threadData, _cache, _env, _expl, _impl, _msg, _numIter ,&_vallst);
tmpMeta[0+0] = omc_BackendInterface_cevalCallFunction(threadData, _cache, _env, _e, _vallst, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[0+1]);
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
tmp3_done:
(void)tmp4;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp3_done2;
goto_2:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp4 < 4) {
goto tmp3_top;
}
MMC_THROW_INTERNAL();
tmp3_done2:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalBuiltin(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExp, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalBuiltin(threadData, _inCache, _inEnv, _inExp, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
DLLExport
modelica_metatype omc_Ceval_cevalRangeIfConstant(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExp, modelica_metatype _inProp, modelica_boolean _impl, modelica_metatype _inInfo, modelica_metatype *out_outExp)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outExp = NULL;
modelica_metatype tmpMeta[6] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
volatile modelica_metatype tmp4_1;
tmp4_1 = _inExp;
{
modelica_metatype _e1 = NULL;
modelica_metatype _e2 = NULL;
modelica_metatype _e3 = NULL;
modelica_metatype _ty = NULL;
modelica_metatype _cache = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp3_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp4 < 2; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,18,4) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 3));
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 4));
tmpMeta[5] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 5));
_ty = tmpMeta[2];
_e1 = tmpMeta[3];
_e3 = tmpMeta[4];
_e2 = tmpMeta[5];
_cache = omc_Ceval_cevalIfConstant(threadData, _inCache, _inEnv, _e1, _inProp, _impl, _inInfo ,&_e1 ,NULL);
omc_Ceval_cevalIfConstant(threadData, _cache, _inEnv, _e2, _inProp, _impl, _inInfo ,&_e2 ,NULL);
tmpMeta[2] = mmc_mk_box5(21, &DAE_Exp_RANGE__desc, _ty, _e1, _e3, _e2);
tmpMeta[0+0] = _inCache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 1: {
tmpMeta[0+0] = _inCache;
tmpMeta[0+1] = _inExp;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
tmp3_done:
(void)tmp4;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp3_done2;
goto_2:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp4 < 2) {
goto tmp3_top;
}
MMC_THROW_INTERNAL();
tmp3_done2:;
}
}
_outCache = tmpMeta[0+0];
_outExp = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outExp) { *out_outExp = _outExp; }
return _outCache;
}
modelica_metatype boxptr_Ceval_cevalRangeIfConstant(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExp, modelica_metatype _inProp, modelica_metatype _impl, modelica_metatype _inInfo, modelica_metatype *out_outExp)
{
modelica_integer tmp1;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_impl);
_outCache = omc_Ceval_cevalRangeIfConstant(threadData, _inCache, _inEnv, _inExp, _inProp, tmp1, _inInfo, out_outExp);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalWholedimRetCall(threadData_t *threadData, modelica_metatype _inExp, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inInfo, modelica_integer _numIter, modelica_metatype *out_outProp)
{
modelica_metatype _outExp = NULL;
modelica_metatype _outProp = NULL;
modelica_metatype tmpMeta[7] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;
tmp4_1 = _inExp;
{
modelica_metatype _e = NULL;
modelica_metatype _p = NULL;
modelica_metatype _el = NULL;
modelica_metatype _dims = NULL;
modelica_metatype _v = NULL;
modelica_metatype _cevalType = NULL;
modelica_metatype _ty = NULL;
modelica_metatype _attr = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 1; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_boolean tmp6;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,13,3) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 3));
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 4));
tmpMeta[5] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[4]), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[5],6,2) == 0) goto tmp3_end;
tmpMeta[6] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[5]), 3));
_e = tmp4_1;
_p = tmpMeta[2];
_el = tmpMeta[3];
_attr = tmpMeta[4];
_dims = tmpMeta[6];
tmp6 = omc_Expression_arrayContainWholeDimension(threadData, _dims);
if (1 != tmp6) goto goto_2;
tmpMeta[2] = mmc_mk_box2(3, &Absyn_Msg_MSG__desc, _inInfo);
omc_Ceval_ceval(threadData, _inCache, _inEnv, _e, 1, tmpMeta[2], ((modelica_integer) 1) + _numIter ,&_v);
_ty = omc_Types_typeOfValue(threadData, _v);
_cevalType = omc_Types_simplifyType(threadData, _ty);
tmpMeta[2] = MMC_TAGPTR(mmc_alloc_words(9));
memcpy(MMC_UNTAGPTR(tmpMeta[2]), MMC_UNTAGPTR(_attr), 9*sizeof(modelica_metatype));
((modelica_metatype*)MMC_UNTAGPTR(tmpMeta[2]))[2] = _cevalType;
_attr = tmpMeta[2];
tmpMeta[2] = mmc_mk_box4(16, &DAE_Exp_CALL__desc, _p, _el, _attr);
tmpMeta[3] = mmc_mk_box3(3, &DAE_Properties_PROP__desc, _ty, _OMC_LIT216);
tmpMeta[0+0] = tmpMeta[2];
tmpMeta[0+1] = tmpMeta[3];
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outExp = tmpMeta[0+0];
_outProp = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outProp) { *out_outProp = _outProp; }
return _outExp;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalWholedimRetCall(threadData_t *threadData, modelica_metatype _inExp, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inInfo, modelica_metatype _numIter, modelica_metatype *out_outProp)
{
modelica_integer tmp1;
modelica_metatype _outExp = NULL;
tmp1 = mmc_unbox_integer(_numIter);
_outExp = omc_Ceval_cevalWholedimRetCall(threadData, _inExp, _inCache, _inEnv, _inInfo, tmp1, out_outProp);
return _outExp;
}
DLLExport
modelica_metatype omc_Ceval_cevalIfConstant(threadData_t *threadData, modelica_metatype __omcQ_24in_5Fcache, modelica_metatype _inEnv, modelica_metatype __omcQ_24in_5Fexp, modelica_metatype __omcQ_24in_5Fprop, modelica_boolean _impl, modelica_metatype _inInfo, modelica_metatype *out_exp, modelica_metatype *out_prop)
{
jmp_buf *old_mmc_jumper = threadData->mmc_jumper;
modelica_metatype _cache = NULL;
modelica_metatype _exp = NULL;
modelica_metatype _prop = NULL;
modelica_metatype tmpMeta[5] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_cache = __omcQ_24in_5Fcache;
_exp = __omcQ_24in_5Fexp;
_prop = __omcQ_24in_5Fprop;
if(omc_Expression_isEvaluatedConst(threadData, _exp))
{
goto _return;
}
{
volatile modelica_metatype tmp4_1;
tmp4_1 = _prop;
{
modelica_metatype _v = NULL;
modelica_metatype _tp = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp3_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp4 < 6; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,0,2) == 0) goto tmp3_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 2));
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[4],1,0) == 0) goto tmp3_end;
_tp = tmpMeta[3];
tmp4 += 3;
if (!(!omc_Flags_getConfigBool(threadData, _OMC_LIT221))) goto tmp3_end;
tmpMeta[3] = mmc_mk_box3(3, &DAE_Properties_PROP__desc, _tp, _OMC_LIT222);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _exp;
tmpMeta[0+2] = tmpMeta[3];
goto tmp3_done;
}
case 1: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,0,2) == 0) goto tmp3_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 2));
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[4],0,0) == 0) goto tmp3_end;
_tp = tmpMeta[3];
tmp4 += 2;
tmpMeta[3] = mmc_mk_box2(3, &Absyn_Msg_MSG__desc, _inInfo);
_cache = omc_Ceval_ceval(threadData, _cache, _inEnv, _exp, _impl, tmpMeta[3], ((modelica_integer) 0) ,&_v);
_exp = omc_ValuesUtil_valueExp(threadData, _v, mmc_mk_some(_exp));
_exp = omc_ValuesUtil_fixZeroSizeArray(threadData, _exp, _tp);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _exp;
tmpMeta[0+2] = _prop;
goto tmp3_done;
}
case 2: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,1,2) == 0) goto tmp3_end;
tmpMeta[3] = omc_Types_propAllConst(threadData, _prop);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[3],0,0) == 0) goto goto_2;
tmpMeta[3] = mmc_mk_box2(3, &Absyn_Msg_MSG__desc, _inInfo);
_cache = omc_Ceval_ceval(threadData, _cache, _inEnv, _exp, 0, tmpMeta[3], ((modelica_integer) 0) ,&_v);
_exp = omc_ValuesUtil_valueExp(threadData, _v, mmc_mk_some(_exp));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _exp;
tmpMeta[0+2] = _prop;
goto tmp3_done;
}
case 3: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,1,2) == 0) goto tmp3_end;
if (!(!omc_Flags_getConfigBool(threadData, _OMC_LIT221))) goto tmp3_end;
tmpMeta[3] = omc_Types_propAllConst(threadData, _prop);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[3],1,0) == 0) goto goto_2;
fputs(MMC_STRINGDATA(_OMC_LIT223),stdout);
goto goto_2;
goto tmp3_done;
}
case 4: {
if (!(omc_Expression_isConst(threadData, _exp) && (!omc_Config_acceptMetaModelicaGrammar(threadData)))) goto tmp3_end;
tmpMeta[3] = mmc_mk_box2(3, &Absyn_Msg_MSG__desc, _inInfo);
omc_Ceval_ceval(threadData, _cache, _inEnv, _exp, _impl, tmpMeta[3], ((modelica_integer) 0) ,&_v);
_exp = omc_ValuesUtil_valueExp(threadData, _v, mmc_mk_some(_exp));
_exp = omc_ValuesUtil_fixZeroSizeArray(threadData, _exp, omc_Types_getPropType(threadData, _prop));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _exp;
tmpMeta[0+2] = _prop;
goto tmp3_done;
}
case 5: {
_exp = omc_ExpressionSimplify_simplify1(threadData, _exp, NULL);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _exp;
tmpMeta[0+2] = _prop;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
tmp3_done:
(void)tmp4;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp3_done2;
goto_2:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp4 < 6) {
goto tmp3_top;
}
MMC_THROW_INTERNAL();
tmp3_done2:;
}
}
_cache = tmpMeta[0+0];
_exp = tmpMeta[0+1];
_prop = tmpMeta[0+2];
_return: OMC_LABEL_UNUSED
if (out_exp) { *out_exp = _exp; }
if (out_prop) { *out_prop = _prop; }
threadData->mmc_jumper = old_mmc_jumper;
return _cache;
}
modelica_metatype boxptr_Ceval_cevalIfConstant(threadData_t *threadData, modelica_metatype __omcQ_24in_5Fcache, modelica_metatype _inEnv, modelica_metatype __omcQ_24in_5Fexp, modelica_metatype __omcQ_24in_5Fprop, modelica_metatype _impl, modelica_metatype _inInfo, modelica_metatype *out_exp, modelica_metatype *out_prop)
{
modelica_integer tmp1;
modelica_metatype _cache = NULL;
tmp1 = mmc_unbox_integer(_impl);
_cache = omc_Ceval_cevalIfConstant(threadData, __omcQ_24in_5Fcache, _inEnv, __omcQ_24in_5Fexp, __omcQ_24in_5Fprop, tmp1, _inInfo, out_exp, out_prop);
return _cache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalWork2(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExp, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[12] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
volatile modelica_metatype tmp4_1;volatile modelica_metatype tmp4_2;volatile modelica_metatype tmp4_3;volatile modelica_boolean tmp4_4;volatile modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inExp;
tmp4_4 = _inBoolean;
tmp4_5 = _inMsg;
{
modelica_integer _i;
modelica_integer _indx;
modelica_integer _index;
modelica_real _lhvReal;
modelica_real _rhvReal;
modelica_real _sum;
modelica_real _r;
modelica_string _str = NULL;
modelica_string _lhvStr = NULL;
modelica_string _rhvStr = NULL;
modelica_string _s = NULL;
modelica_string _foldName = NULL;
modelica_string _resultName = NULL;
modelica_boolean _impl;
modelica_boolean _b;
modelica_boolean _b_1;
modelica_boolean _lhvBool;
modelica_boolean _rhvBool;
modelica_boolean _resBool;
modelica_metatype _exp_1 = NULL;
modelica_metatype _exp = NULL;
modelica_metatype _env = NULL;
modelica_metatype _msg = NULL;
modelica_metatype _elt_1 = NULL;
modelica_metatype _elt = NULL;
modelica_metatype _c = NULL;
modelica_metatype _es_1 = NULL;
modelica_metatype _elts = NULL;
modelica_metatype _vallst = NULL;
modelica_metatype _vlst1 = NULL;
modelica_metatype _vlst2 = NULL;
modelica_metatype _reslst = NULL;
modelica_metatype _aval = NULL;
modelica_metatype _rhvals = NULL;
modelica_metatype _lhvals = NULL;
modelica_metatype _arr = NULL;
modelica_metatype _arr_1 = NULL;
modelica_metatype _ivals = NULL;
modelica_metatype _rvals = NULL;
modelica_metatype _vals = NULL;
modelica_metatype _es = NULL;
modelica_metatype _expl = NULL;
modelica_metatype _expll = NULL;
modelica_metatype _v = NULL;
modelica_metatype _value = NULL;
modelica_metatype _sval = NULL;
modelica_metatype _elt1 = NULL;
modelica_metatype _elt2 = NULL;
modelica_metatype _v_1 = NULL;
modelica_metatype _lhs_1 = NULL;
modelica_metatype _rhs_1 = NULL;
modelica_metatype _resVal = NULL;
modelica_metatype _lhvVal = NULL;
modelica_metatype _rhvVal = NULL;
modelica_metatype _lh = NULL;
modelica_metatype _rh = NULL;
modelica_metatype _e = NULL;
modelica_metatype _lhs = NULL;
modelica_metatype _rhs = NULL;
modelica_metatype _e1 = NULL;
modelica_metatype _e2 = NULL;
modelica_metatype _cond = NULL;
modelica_metatype _funcpath = NULL;
modelica_metatype _name = NULL;
modelica_metatype _relop = NULL;
modelica_metatype _cache = NULL;
modelica_metatype _expExp = NULL;
modelica_metatype _dims = NULL;
modelica_metatype _arrayDims = NULL;
modelica_metatype _cr = NULL;
modelica_metatype _fieldNames = NULL;
modelica_metatype _n = NULL;
modelica_metatype _names = NULL;
modelica_metatype _daeExp = NULL;
modelica_metatype _path = NULL;
modelica_metatype _ov = NULL;
modelica_metatype _foldExp = NULL;
modelica_metatype _ty = NULL;
modelica_metatype _tys = NULL;
modelica_metatype _iterators = NULL;
modelica_metatype _valMatrix = NULL;
modelica_metatype _info = NULL;
modelica_metatype _iterType = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp3_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp4 < 72; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_integer tmp6;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,0,1) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmp6 = mmc_unbox_integer(tmpMeta[2]);
_i = tmp6;
_cache = tmp4_1;
tmp4 += 20;
tmpMeta[2] = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(_i));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 1: {
modelica_real tmp7;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,1,1) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmp7 = mmc_unbox_real(tmpMeta[2]);
_r = tmp7;
_cache = tmp4_1;
tmp4 += 19;
tmpMeta[2] = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_r));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 2: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,2,1) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
_s = tmpMeta[2];
_cache = tmp4_1;
tmp4 += 18;
tmpMeta[2] = mmc_mk_box2(5, &Values_Value_STRING__desc, _s);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 3: {
modelica_integer tmp8;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,3,1) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmp8 = mmc_unbox_integer(tmpMeta[2]);
_b = tmp8;
_cache = tmp4_1;
tmp4 += 17;
tmpMeta[2] = mmc_mk_box2(6, &Values_Value_BOOL__desc, mmc_mk_boolean(_b));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 4: {
modelica_integer tmp9;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,5,2) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
tmp9 = mmc_unbox_integer(tmpMeta[3]);
_name = tmpMeta[2];
_i = tmp9;
_cache = tmp4_1;
tmp4 += 16;
tmpMeta[2] = mmc_mk_box3(7, &Values_Value_ENUM__LITERAL__desc, _name, mmc_mk_integer(_i));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 5: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,25,2) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],6,1) == 0) goto tmp3_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
_exp = tmpMeta[3];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 1;
_cache = omc_Ceval_cevalAstExp(threadData, _cache, _env, _exp, _impl, _msg, _OMC_LIT3 ,&_exp_1);
tmpMeta[2] = mmc_mk_box2(9, &Absyn_CodeNode_C__EXPRESSION__desc, _exp_1);
tmpMeta[3] = mmc_mk_box2(15, &Values_Value_CODE__desc, tmpMeta[2]);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[3];
goto tmp3_done;
}
case 6: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,25,2) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],5,1) == 0) goto tmp3_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
_elt = tmpMeta[3];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
_cache = omc_Ceval_cevalAstElt(threadData, _cache, _env, _elt, _impl, _msg ,&_elt_1);
tmpMeta[2] = mmc_mk_box2(8, &Absyn_CodeNode_C__ELEMENT__desc, _elt_1);
tmpMeta[3] = mmc_mk_box2(15, &Values_Value_CODE__desc, tmpMeta[2]);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[3];
goto tmp3_done;
}
case 7: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,25,2) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
_c = tmpMeta[2];
_cache = tmp4_1;
tmp4 += 13;
tmpMeta[2] = mmc_mk_box2(15, &Values_Value_CODE__desc, _c);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 8: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,16,3) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],6,2) == 0) goto tmp3_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 3));
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_arrayDims = tmpMeta[3];
_es = tmpMeta[4];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 12;
_cache = omc_Ceval_cevalList(threadData, _cache, _env, _es, _impl, _msg, _numIter ,&_es_1);
{
{
volatile mmc_switch_type tmp12;
int tmp13;
tmp12 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp11_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp12 < 2; tmp12++) {
switch (MMC_SWITCH_CAST(tmp12)) {
case 0: {
_dims = omc_List_map(threadData, _arrayDims, boxvar_Expression_dimensionSize);
tmpMeta[3] = mmc_mk_box3(8, &Values_Value_ARRAY__desc, _es_1, _dims);
tmpMeta[2] = tmpMeta[3];
goto tmp11_done;
}
case 1: {
tmpMeta[2] = omc_ValuesUtil_makeArray(threadData, _es_1);
goto tmp11_done;
}
}
goto tmp11_end;
tmp11_end: ;
}
goto goto_10;
tmp11_done:
(void)tmp12;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp11_done2;
goto_10:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp12 < 2) {
goto tmp11_top;
}
goto goto_2;
tmp11_done2:;
}
}
_v = tmpMeta[2];
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _v;
goto tmp3_done;
}
case 9: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,17,3) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],6,2) == 0) goto tmp3_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 3));
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_arrayDims = tmpMeta[3];
_expll = tmpMeta[4];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 11;
_dims = omc_List_map(threadData, _arrayDims, boxvar_Expression_dimensionSize);
_cache = omc_Ceval_cevalMatrixElt(threadData, _cache, _env, _expll, _impl, _msg, ((modelica_integer) 1) + _numIter ,&_elts);
tmpMeta[2] = mmc_mk_box3(8, &Values_Value_ARRAY__desc, _elts, _dims);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 10: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,28,1) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
_expl = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 10;
_cache = omc_Ceval_cevalList(threadData, _cache, _env, _expl, _impl, _msg, _numIter ,&_es_1);
tmpMeta[2] = mmc_mk_box2(9, &Values_Value_LIST__desc, _es_1);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 11: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,34,1) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
_e1 = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 9;
tmpMeta[0+0] = omc_Ceval_ceval(threadData, _cache, _env, _e1, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[0+1]);
goto tmp3_done;
}
case 12: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,35,2) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
_e1 = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 8;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _e1, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],14,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
_v = tmpMeta[3];
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _v;
goto tmp3_done;
}
case 13: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,29,2) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
_e1 = tmpMeta[2];
_e2 = tmpMeta[3];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 7;
_cache = omc_Ceval_ceval(threadData, _cache, _env, _e1, _impl, _msg, ((modelica_integer) 1) + _numIter ,&_v);
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _e2, _impl, _msg, _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],6,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
_vallst = tmpMeta[3];
tmpMeta[2] = mmc_mk_cons(_v, _vallst);
tmpMeta[3] = mmc_mk_box2(9, &Values_Value_LIST__desc, tmpMeta[2]);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[3];
goto tmp3_done;
}
case 14: {
modelica_integer tmp14;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,32,5) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
tmpMeta[5] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 5));
tmp14 = mmc_unbox_integer(tmpMeta[5]);
_funcpath = tmpMeta[2];
_expl = tmpMeta[3];
_fieldNames = tmpMeta[4];
_index = tmp14;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 6;
_cache = omc_Ceval_cevalList(threadData, _cache, _env, _expl, _impl, _msg, _numIter ,&_vallst);
tmpMeta[2] = mmc_mk_box5(13, &Values_Value_RECORD__desc, _funcpath, _vallst, _fieldNames, mmc_mk_integer(_index));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 15: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,31,1) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
if (!optionNone(tmpMeta[2])) goto tmp3_end;
_cache = tmp4_1;
tmp4 += 5;
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _OMC_LIT224;
goto tmp3_done;
}
case 16: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,31,1) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
if (optionNone(tmpMeta[2])) goto tmp3_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 1));
_expExp = tmpMeta[3];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 4;
_cache = omc_Ceval_ceval(threadData, _cache, _env, _expExp, _impl, _msg, ((modelica_integer) 1) + _numIter ,&_value);
tmpMeta[2] = mmc_mk_box2(14, &Values_Value_OPTION__desc, mmc_mk_some(_value));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 17: {
modelica_boolean tmp15;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,30,1) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
_expl = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 3;
tmp15 = omc_Config_acceptMetaModelicaGrammar(threadData);
if (1 != tmp15) goto goto_2;
_cache = omc_Ceval_cevalList(threadData, _cache, _env, _expl, _impl, _msg, _numIter ,&_vallst);
tmpMeta[2] = mmc_mk_box2(12, &Values_Value_META__TUPLE__desc, _vallst);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 18: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,19,1) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
_expl = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 2;
_cache = omc_Ceval_cevalList(threadData, _cache, _env, _expl, _impl, _msg, _numIter ,&_vallst);
tmpMeta[2] = mmc_mk_box2(11, &Values_Value_TUPLE__desc, _vallst);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 19: {
if (0 != tmp4_4) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,6,2) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
_cr = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_msg = tmp4_5;
tmpMeta[0+0] = omc_Ceval_cevalCref(threadData, _cache, _env, _cr, 0, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[0+1]);
goto tmp3_done;
}
case 20: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,6,2) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
_cr = tmpMeta[2];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[0+0] = omc_Ceval_cevalCref(threadData, _cache, _env, _cr, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[0+1]);
goto tmp3_done;
}
case 21: {
_cache = tmp4_1;
_env = tmp4_2;
_expExp = tmp4_3;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[0+0] = omc_Ceval_cevalBuiltin(threadData, _cache, _env, _expExp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[0+1]);
goto tmp3_done;
}
case 22: {
modelica_integer tmp16;
modelica_integer tmp17;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,13,3) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (listEmpty(tmpMeta[3])) goto tmp3_end;
tmpMeta[4] = MMC_CAR(tmpMeta[3]);
tmpMeta[5] = MMC_CDR(tmpMeta[3]);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[4],0,1) == 0) goto tmp3_end;
tmpMeta[6] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[4]), 2));
tmp16 = mmc_unbox_integer(tmpMeta[6]);
if (0 != tmp16) goto tmp3_end;
if (listEmpty(tmpMeta[5])) goto tmp3_end;
tmpMeta[7] = MMC_CAR(tmpMeta[5]);
tmpMeta[8] = MMC_CDR(tmpMeta[5]);
if (!listEmpty(tmpMeta[8])) goto tmp3_end;
tmpMeta[9] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
tmpMeta[10] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[9]), 5));
tmp17 = mmc_unbox_integer(tmpMeta[10]);
if (0 != tmp17) goto tmp3_end;
_funcpath = tmpMeta[2];
_expExp = tmpMeta[7];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[2] = omc_AbsynUtil_makeNotFullyQualified(threadData, _funcpath);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],1,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
if (6 != MMC_STRLEN(tmpMeta[3]) || strcmp("smooth", MMC_STRINGDATA(tmpMeta[3])) != 0) goto goto_2;
tmpMeta[0+0] = omc_Ceval_ceval(threadData, _cache, _env, _expExp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[0+1]);
goto tmp3_done;
}
case 23: {
modelica_integer tmp18;
modelica_boolean tmp19;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,13,3) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
tmpMeta[5] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[4]), 5));
tmp18 = mmc_unbox_integer(tmpMeta[5]);
if (0 != tmp18) goto tmp3_end;
_e = tmp4_3;
_funcpath = tmpMeta[2];
_expl = tmpMeta[3];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 1;
tmp19 = omc_AbsynUtil_pathEqual(threadData, _OMC_LIT228, _funcpath);
if (0 != tmp19) goto goto_2;
_cache = omc_Ceval_cevalList(threadData, _cache, _env, _expl, _impl, _msg, _numIter ,&_vallst);
tmpMeta[0+0] = omc_BackendInterface_cevalCallFunction(threadData, _cache, _env, _e, _vallst, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[0+1]);
goto tmp3_done;
}
case 24: {
modelica_boolean tmp20;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,20,2) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
_ty = tmpMeta[2];
_e = tmpMeta[3];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 35;
tmp20 = omc_Types_isRecord(threadData, _ty);
if (1 != tmp20) goto goto_2;
tmpMeta[0+0] = omc_Ceval_ceval(threadData, _cache, _env, _e, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[0+1]);
goto tmp3_done;
}
case 25: {
if (1 != tmp4_4) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,13,3) == 0) goto tmp3_end;
_e = tmp4_3;
_cache = tmp4_1;
_env = tmp4_2;
_msg = tmp4_5;
tmpMeta[0+0] = omc_BackendInterface_cevalInteractiveFunctions(threadData, _cache, _env, _e, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[0+1]);
goto tmp3_done;
}
case 26: {
modelica_boolean tmp21;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,13,3) == 0) goto tmp3_end;
_e = tmp4_3;
tmp4 += 43;
tmp21 = omc_Flags_isSet(threadData, _OMC_LIT44);
if (1 != tmp21) goto goto_2;
omc_Debug_trace(threadData, _OMC_LIT229);
_str = omc_ExpressionDump_printExpStr(threadData, _e);
omc_Debug_traceln(threadData, _str);
goto goto_2;
goto tmp3_done;
}
case 27: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,14,4) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_funcpath = tmpMeta[2];
_expl = tmpMeta[3];
_fieldNames = tmpMeta[4];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 42;
_cache = omc_Ceval_cevalList(threadData, _cache, _env, _expl, _impl, _msg, _numIter ,&_vallst);
tmpMeta[2] = mmc_mk_box5(13, &Values_Value_RECORD__desc, _funcpath, _vallst, _fieldNames, mmc_mk_integer(((modelica_integer) -1)));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 28: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,7,3) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[3],0,1) == 0) goto tmp3_end;
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[3]), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[4],2,1) == 0) goto tmp3_end;
tmpMeta[5] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_lh = tmpMeta[2];
_rh = tmpMeta[5];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 21;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _lh, _impl, _msg, _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],2,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
_lhvStr = tmpMeta[3];
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _rh, _impl, _msg, _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],2,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
_rhvStr = tmpMeta[3];
tmpMeta[2] = stringAppend(_lhvStr,_rhvStr);
_str = tmpMeta[2];
tmpMeta[2] = mmc_mk_box2(5, &Values_Value_STRING__desc, _str);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 29: {
modelica_real tmp22;
modelica_real tmp23;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,7,3) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[3],0,1) == 0) goto tmp3_end;
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[3]), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[4],1,1) == 0) goto tmp3_end;
tmpMeta[5] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_lh = tmpMeta[2];
_rh = tmpMeta[5];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 20;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _lh, _impl, _msg, _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],1,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp22 = mmc_unbox_real(tmpMeta[3]);
_lhvReal = tmp22;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _rh, _impl, _msg, _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],1,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp23 = mmc_unbox_real(tmpMeta[3]);
_rhvReal = tmp23;
_sum = _lhvReal + _rhvReal;
tmpMeta[2] = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_sum));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 30: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,7,3) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[3],7,1) == 0) goto tmp3_end;
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_lh = tmpMeta[2];
_rh = tmpMeta[4];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 39;
tmpMeta[5] = omc_Ceval_ceval(threadData, _cache, _env, _lh, _impl, _msg, _numIter, &tmpMeta[2]);
_cache = tmpMeta[5];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],5,2) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 3));
_vlst1 = tmpMeta[3];
_dims = tmpMeta[4];
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _rh, _impl, _msg, _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],5,2) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
_vlst2 = tmpMeta[3];
_reslst = omc_ValuesUtil_addElementwiseArrayelt(threadData, _vlst1, _vlst2);
tmpMeta[2] = mmc_mk_box3(8, &Values_Value_ARRAY__desc, _reslst, _dims);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 31: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,7,3) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[3],8,1) == 0) goto tmp3_end;
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_lh = tmpMeta[2];
_rh = tmpMeta[4];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 38;
tmpMeta[5] = omc_Ceval_ceval(threadData, _cache, _env, _lh, _impl, _msg, _numIter, &tmpMeta[2]);
_cache = tmpMeta[5];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],5,2) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 3));
_vlst1 = tmpMeta[3];
_dims = tmpMeta[4];
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _rh, _impl, _msg, _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],5,2) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
_vlst2 = tmpMeta[3];
_reslst = omc_ValuesUtil_subElementwiseArrayelt(threadData, _vlst1, _vlst2);
tmpMeta[2] = mmc_mk_box3(8, &Values_Value_ARRAY__desc, _reslst, _dims);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 32: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,7,3) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[3],9,1) == 0) goto tmp3_end;
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_lh = tmpMeta[2];
_rh = tmpMeta[4];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 37;
tmpMeta[5] = omc_Ceval_ceval(threadData, _cache, _env, _lh, _impl, _msg, _numIter, &tmpMeta[2]);
_cache = tmpMeta[5];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],5,2) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 3));
_vlst1 = tmpMeta[3];
_dims = tmpMeta[4];
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _rh, _impl, _msg, _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],5,2) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
_vlst2 = tmpMeta[3];
_reslst = omc_ValuesUtil_mulElementwiseArrayelt(threadData, _vlst1, _vlst2);
tmpMeta[2] = mmc_mk_box3(8, &Values_Value_ARRAY__desc, _reslst, _dims);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 33: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,7,3) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[3],10,1) == 0) goto tmp3_end;
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_lh = tmpMeta[2];
_rh = tmpMeta[4];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 36;
tmpMeta[5] = omc_Ceval_ceval(threadData, _cache, _env, _lh, _impl, _msg, _numIter, &tmpMeta[2]);
_cache = tmpMeta[5];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],5,2) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 3));
_vlst1 = tmpMeta[3];
_dims = tmpMeta[4];
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _rh, _impl, _msg, _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],5,2) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
_vlst2 = tmpMeta[3];
_reslst = omc_ValuesUtil_divElementwiseArrayelt(threadData, _vlst1, _vlst2);
tmpMeta[2] = mmc_mk_box3(8, &Values_Value_ARRAY__desc, _reslst, _dims);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 34: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,7,3) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[3],21,1) == 0) goto tmp3_end;
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_lh = tmpMeta[2];
_rh = tmpMeta[4];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 35;
tmpMeta[5] = omc_Ceval_ceval(threadData, _cache, _env, _lh, _impl, _msg, _numIter, &tmpMeta[2]);
_cache = tmpMeta[5];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],5,2) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 3));
_vlst1 = tmpMeta[3];
_dims = tmpMeta[4];
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _rh, _impl, _msg, _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],5,2) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
_vlst2 = tmpMeta[3];
_reslst = omc_ValuesUtil_powElementwiseArrayelt(threadData, _vlst1, _vlst2);
tmpMeta[2] = mmc_mk_box3(8, &Values_Value_ARRAY__desc, _reslst, _dims);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 35: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,7,3) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[3],11,1) == 0) goto tmp3_end;
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_lh = tmpMeta[2];
_rh = tmpMeta[4];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 34;
_cache = omc_Ceval_ceval(threadData, _cache, _env, _rh, _impl, _msg, _numIter ,&_sval);
tmpMeta[5] = omc_Ceval_ceval(threadData, _cache, _env, _lh, _impl, _msg, _numIter, &tmpMeta[2]);
_cache = tmpMeta[5];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],5,2) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 3));
_aval = tmpMeta[3];
_dims = tmpMeta[4];
_reslst = omc_ValuesUtil_multScalarArrayelt(threadData, _sval, _aval);
tmpMeta[2] = mmc_mk_box3(8, &Values_Value_ARRAY__desc, _reslst, _dims);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 36: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,7,3) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[3],12,1) == 0) goto tmp3_end;
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_lh = tmpMeta[2];
_rh = tmpMeta[4];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 33;
_cache = omc_Ceval_ceval(threadData, _cache, _env, _rh, _impl, _msg, _numIter ,&_sval);
tmpMeta[5] = omc_Ceval_ceval(threadData, _cache, _env, _lh, _impl, _msg, _numIter, &tmpMeta[2]);
_cache = tmpMeta[5];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],5,2) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 3));
_aval = tmpMeta[3];
_dims = tmpMeta[4];
_reslst = omc_ValuesUtil_addScalarArrayelt(threadData, _sval, _aval);
tmpMeta[2] = mmc_mk_box3(8, &Values_Value_ARRAY__desc, _reslst, _dims);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 37: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,7,3) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[3],13,1) == 0) goto tmp3_end;
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_lh = tmpMeta[2];
_rh = tmpMeta[4];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 32;
_cache = omc_Ceval_ceval(threadData, _cache, _env, _lh, _impl, _msg, _numIter ,&_sval);
tmpMeta[5] = omc_Ceval_ceval(threadData, _cache, _env, _rh, _impl, _msg, _numIter, &tmpMeta[2]);
_cache = tmpMeta[5];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],5,2) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 3));
_aval = tmpMeta[3];
_dims = tmpMeta[4];
_reslst = omc_ValuesUtil_subScalarArrayelt(threadData, _sval, _aval);
tmpMeta[2] = mmc_mk_box3(8, &Values_Value_ARRAY__desc, _reslst, _dims);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 38: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,7,3) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[3],19,1) == 0) goto tmp3_end;
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_lh = tmpMeta[2];
_rh = tmpMeta[4];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 31;
_cache = omc_Ceval_ceval(threadData, _cache, _env, _lh, _impl, _msg, _numIter ,&_sval);
tmpMeta[5] = omc_Ceval_ceval(threadData, _cache, _env, _rh, _impl, _msg, _numIter, &tmpMeta[2]);
_cache = tmpMeta[5];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],5,2) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 3));
_aval = tmpMeta[3];
_dims = tmpMeta[4];
_reslst = omc_ValuesUtil_powScalarArrayelt(threadData, _sval, _aval);
tmpMeta[2] = mmc_mk_box3(8, &Values_Value_ARRAY__desc, _reslst, _dims);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 39: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,7,3) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[3],18,1) == 0) goto tmp3_end;
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_lh = tmpMeta[2];
_rh = tmpMeta[4];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 30;
_cache = omc_Ceval_ceval(threadData, _cache, _env, _rh, _impl, _msg, _numIter ,&_sval);
tmpMeta[5] = omc_Ceval_ceval(threadData, _cache, _env, _lh, _impl, _msg, _numIter, &tmpMeta[2]);
_cache = tmpMeta[5];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],5,2) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 3));
_aval = tmpMeta[3];
_dims = tmpMeta[4];
_reslst = omc_ValuesUtil_powArrayeltScalar(threadData, _sval, _aval);
tmpMeta[2] = mmc_mk_box3(8, &Values_Value_ARRAY__desc, _reslst, _dims);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 40: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,7,3) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[3],17,1) == 0) goto tmp3_end;
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_lh = tmpMeta[2];
_rh = tmpMeta[4];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 29;
_cache = omc_Ceval_ceval(threadData, _cache, _env, _lh, _impl, _msg, _numIter ,&_sval);
tmpMeta[5] = omc_Ceval_ceval(threadData, _cache, _env, _rh, _impl, _msg, _numIter, &tmpMeta[2]);
_cache = tmpMeta[5];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],5,2) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 3));
_aval = tmpMeta[3];
_dims = tmpMeta[4];
_reslst = omc_ValuesUtil_divScalarArrayelt(threadData, _sval, _aval);
tmpMeta[2] = mmc_mk_box3(8, &Values_Value_ARRAY__desc, _reslst, _dims);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 41: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,7,3) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[3],16,1) == 0) goto tmp3_end;
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_lh = tmpMeta[2];
_rh = tmpMeta[4];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 28;
_cache = omc_Ceval_ceval(threadData, _cache, _env, _rh, _impl, _msg, ((modelica_integer) 1) + _numIter ,&_sval);
tmpMeta[5] = omc_Ceval_ceval(threadData, _cache, _env, _lh, _impl, _msg, _numIter, &tmpMeta[2]);
_cache = tmpMeta[5];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],5,2) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 3));
_aval = tmpMeta[3];
_dims = tmpMeta[4];
_reslst = omc_ValuesUtil_divArrayeltScalar(threadData, _sval, _aval);
tmpMeta[2] = mmc_mk_box3(8, &Values_Value_ARRAY__desc, _reslst, _dims);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 42: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,7,3) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[3],14,1) == 0) goto tmp3_end;
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_lh = tmpMeta[2];
_rh = tmpMeta[4];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 27;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _rh, _impl, _msg, _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],5,2) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
_rhvals = tmpMeta[3];
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _lh, _impl, _msg, _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],5,2) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
_lhvals = tmpMeta[3];
_resVal = omc_ValuesUtil_multScalarProduct(threadData, _rhvals, _lhvals);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _resVal;
goto tmp3_done;
}
case 43: {
modelica_boolean tmp24;
modelica_boolean tmp25;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,7,3) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[3],15,1) == 0) goto tmp3_end;
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_lh = tmpMeta[2];
_rh = tmpMeta[4];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[6] = omc_Ceval_ceval(threadData, _cache, _env, _lh, _impl, _msg, _numIter, &tmpMeta[2]);
_cache = tmpMeta[6];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],5,2) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
if (listEmpty(tmpMeta[3])) goto goto_2;
tmpMeta[4] = MMC_CAR(tmpMeta[3]);
tmpMeta[5] = MMC_CDR(tmpMeta[3]);
_lhvals = tmpMeta[3];
_elt1 = tmpMeta[4];
tmpMeta[6] = omc_Ceval_ceval(threadData, _cache, _env, _rh, _impl, _msg, _numIter, &tmpMeta[2]);
_cache = tmpMeta[6];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],5,2) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
if (listEmpty(tmpMeta[3])) goto goto_2;
tmpMeta[4] = MMC_CAR(tmpMeta[3]);
tmpMeta[5] = MMC_CDR(tmpMeta[3]);
_rhvals = tmpMeta[3];
_elt2 = tmpMeta[4];
tmp24 = omc_ValuesUtil_isArray(threadData, _elt1);
if (1 != tmp24) goto goto_2;
tmp25 = omc_ValuesUtil_isArray(threadData, _elt2);
if (0 != tmp25) goto goto_2;
_resVal = omc_ValuesUtil_multScalarProduct(threadData, _lhvals, _rhvals);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _resVal;
goto tmp3_done;
}
case 44: {
modelica_boolean tmp26;
modelica_boolean tmp27;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,7,3) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[3],15,1) == 0) goto tmp3_end;
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_lh = tmpMeta[2];
_rh = tmpMeta[4];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[6] = omc_Ceval_ceval(threadData, _cache, _env, _rh, _impl, _msg, _numIter, &tmpMeta[2]);
_cache = tmpMeta[6];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],5,2) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
if (listEmpty(tmpMeta[3])) goto goto_2;
tmpMeta[4] = MMC_CAR(tmpMeta[3]);
tmpMeta[5] = MMC_CDR(tmpMeta[3]);
_rhvals = tmpMeta[3];
_elt1 = tmpMeta[4];
tmpMeta[6] = omc_Ceval_ceval(threadData, _cache, _env, _lh, _impl, _msg, _numIter, &tmpMeta[2]);
_cache = tmpMeta[6];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],5,2) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
if (listEmpty(tmpMeta[3])) goto goto_2;
tmpMeta[4] = MMC_CAR(tmpMeta[3]);
tmpMeta[5] = MMC_CDR(tmpMeta[3]);
_lhvals = tmpMeta[3];
_elt2 = tmpMeta[4];
tmp26 = omc_ValuesUtil_isArray(threadData, _elt1);
if (1 != tmp26) goto goto_2;
tmp27 = omc_ValuesUtil_isArray(threadData, _elt2);
if (0 != tmp27) goto goto_2;
_resVal = omc_ValuesUtil_multScalarProduct(threadData, _lhvals, _rhvals);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _resVal;
goto tmp3_done;
}
case 45: {
modelica_boolean tmp28;
modelica_boolean tmp29;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,7,3) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[3],15,1) == 0) goto tmp3_end;
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_lh = tmpMeta[2];
_rh = tmpMeta[4];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 24;
tmpMeta[6] = omc_Ceval_ceval(threadData, _cache, _env, _rh, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[6];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],5,2) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
if (listEmpty(tmpMeta[3])) goto goto_2;
tmpMeta[4] = MMC_CAR(tmpMeta[3]);
tmpMeta[5] = MMC_CDR(tmpMeta[3]);
_rhvals = tmpMeta[3];
_elt1 = tmpMeta[4];
tmpMeta[6] = omc_Ceval_ceval(threadData, _cache, _env, _lh, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[6];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],5,2) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
if (listEmpty(tmpMeta[3])) goto goto_2;
tmpMeta[4] = MMC_CAR(tmpMeta[3]);
tmpMeta[5] = MMC_CDR(tmpMeta[3]);
_lhvals = tmpMeta[3];
_elt2 = tmpMeta[4];
tmp28 = omc_ValuesUtil_isArray(threadData, _elt1);
if (1 != tmp28) goto goto_2;
tmp29 = omc_ValuesUtil_isArray(threadData, _elt2);
if (1 != tmp29) goto goto_2;
_vallst = omc_ValuesUtil_multMatrix(threadData, _lhvals, _rhvals);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = omc_ValuesUtil_makeArray(threadData, _vallst);
goto tmp3_done;
}
case 46: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,7,3) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[3],4,1) == 0) goto tmp3_end;
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_lh = tmpMeta[2];
_rh = tmpMeta[4];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 23;
_cache = omc_Ceval_ceval(threadData, _cache, _env, _lh, _impl, _msg, _numIter ,&_lhvVal);
_cache = omc_Ceval_ceval(threadData, _cache, _env, _rh, _impl, _msg, _numIter ,&_rhvVal);
_resVal = omc_ValuesUtil_safeIntRealOp(threadData, _lhvVal, _rhvVal, _OMC_LIT230);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _resVal;
goto tmp3_done;
}
case 47: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,7,3) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[3],2,1) == 0) goto tmp3_end;
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_lh = tmpMeta[2];
_rh = tmpMeta[4];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 22;
_cache = omc_Ceval_ceval(threadData, _cache, _env, _lh, _impl, _msg, _numIter ,&_lhvVal);
_cache = omc_Ceval_ceval(threadData, _cache, _env, _rh, _impl, _msg, _numIter ,&_rhvVal);
_resVal = omc_ValuesUtil_safeIntRealOp(threadData, _lhvVal, _rhvVal, _OMC_LIT231);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _resVal;
goto tmp3_done;
}
case 48: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,7,3) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[3],3,1) == 0) goto tmp3_end;
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_lh = tmpMeta[2];
_rh = tmpMeta[4];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
_cache = omc_Ceval_ceval(threadData, _cache, _env, _lh, _impl, _msg, _numIter ,&_lhvVal);
_cache = omc_Ceval_ceval(threadData, _cache, _env, _rh, _impl, _msg, _numIter ,&_rhvVal);
_resVal = omc_ValuesUtil_safeIntRealOp(threadData, _lhvVal, _rhvVal, _OMC_LIT232);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _resVal;
goto tmp3_done;
}
case 49: {
modelica_boolean tmp30;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_5,0,1) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_5), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,7,3) == 0) goto tmp3_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[4],3,1) == 0) goto tmp3_end;
tmpMeta[5] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_msg = tmp4_5;
_info = tmpMeta[2];
_lh = tmpMeta[3];
_rh = tmpMeta[5];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
tmp4 += 20;
omc_Ceval_ceval(threadData, _cache, _env, _rh, _impl, _msg, _numIter ,&_lhvVal);
tmp30 = omc_ValuesUtil_isZero(threadData, _lhvVal);
if (1 != tmp30) goto goto_2;
_lhvStr = omc_ExpressionDump_printExpStr(threadData, _lh);
_rhvStr = omc_ExpressionDump_printExpStr(threadData, _rh);
tmpMeta[2] = mmc_mk_cons(_lhvStr, mmc_mk_cons(_rhvStr, MMC_REFSTRUCTLIT(mmc_nil)));
omc_Error_addSourceMessage(threadData, _OMC_LIT75, tmpMeta[2], _info);
goto goto_2;
goto tmp3_done;
}
case 50: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,7,3) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[3],0,1) == 0) goto tmp3_end;
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_lh = tmpMeta[2];
_rh = tmpMeta[4];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 19;
_cache = omc_Ceval_ceval(threadData, _cache, _env, _lh, _impl, _msg, _numIter ,&_lhvVal);
_cache = omc_Ceval_ceval(threadData, _cache, _env, _rh, _impl, _msg, _numIter ,&_rhvVal);
_resVal = omc_ValuesUtil_safeIntRealOp(threadData, _lhvVal, _rhvVal, _OMC_LIT233);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _resVal;
goto tmp3_done;
}
case 51: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,7,3) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[3],1,1) == 0) goto tmp3_end;
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_lh = tmpMeta[2];
_rh = tmpMeta[4];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 18;
_cache = omc_Ceval_ceval(threadData, _cache, _env, _lh, _impl, _msg, _numIter ,&_lhvVal);
_cache = omc_Ceval_ceval(threadData, _cache, _env, _rh, _impl, _msg, _numIter ,&_rhvVal);
_resVal = omc_ValuesUtil_safeIntRealOp(threadData, _lhvVal, _rhvVal, _OMC_LIT234);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _resVal;
goto tmp3_done;
}
case 52: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,8,2) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],6,1) == 0) goto tmp3_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
_daeExp = tmpMeta[3];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 17;
tmpMeta[5] = omc_Ceval_ceval(threadData, _cache, _env, _daeExp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[5];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],5,2) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 3));
_arr = tmpMeta[3];
_dims = tmpMeta[4];
_arr_1 = omc_List_map(threadData, _arr, boxvar_ValuesUtil_valueNeg);
tmpMeta[2] = mmc_mk_box3(8, &Values_Value_ARRAY__desc, _arr_1, _dims);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 53: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,8,2) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],5,1) == 0) goto tmp3_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
_daeExp = tmpMeta[3];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 16;
_cache = omc_Ceval_ceval(threadData, _cache, _env, _daeExp, _impl, _msg, ((modelica_integer) 1) + _numIter ,&_v);
_v_1 = omc_ValuesUtil_valueNeg(threadData, _v);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _v_1;
goto tmp3_done;
}
case 54: {
modelica_integer tmp31;
modelica_integer tmp32;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,9,3) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[3],22,1) == 0) goto tmp3_end;
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_lh = tmpMeta[2];
_rh = tmpMeta[4];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 15;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _lh, _impl, _msg, _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],3,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp31 = mmc_unbox_integer(tmpMeta[3]);
_lhvBool = tmp31;
if((!_lhvBool))
{
_v = _OMC_LIT235;
}
else
{
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _rh, _impl, _msg, _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],3,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp32 = mmc_unbox_integer(tmpMeta[3]);
_rhvBool = tmp32;
_resBool = (_lhvBool && _rhvBool);
tmpMeta[2] = mmc_mk_box2(6, &Values_Value_BOOL__desc, mmc_mk_boolean(_resBool));
_v = tmpMeta[2];
}
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _v;
goto tmp3_done;
}
case 55: {
modelica_integer tmp33;
modelica_integer tmp34;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,9,3) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[3],23,1) == 0) goto tmp3_end;
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_lh = tmpMeta[2];
_rh = tmpMeta[4];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _lh, _impl, _msg, _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],3,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp33 = mmc_unbox_integer(tmpMeta[3]);
_lhvBool = tmp33;
if(_lhvBool)
{
_v = _OMC_LIT56;
}
else
{
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _rh, _impl, _msg, _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],3,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp34 = mmc_unbox_integer(tmpMeta[3]);
_rhvBool = tmp34;
_resBool = (_lhvBool || _rhvBool);
tmpMeta[2] = mmc_mk_box2(6, &Values_Value_BOOL__desc, mmc_mk_boolean(_resBool));
_v = tmpMeta[2];
}
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _v;
goto tmp3_done;
}
case 56: {
modelica_boolean tmp35;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,9,3) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[3],23,1) == 0) goto tmp3_end;
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_lh = tmpMeta[2];
_rh = tmpMeta[4];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 13;
tmpMeta[3] = omc_Ceval_ceval(threadData, _cache, _env, _lh, _impl, _msg, _numIter, &tmpMeta[2]);
_cache = tmpMeta[3];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],3,1) == 0) goto goto_2;
_v = tmpMeta[2];
tmp35 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
omc_Ceval_ceval(threadData, _cache, _env, _rh, _impl, _msg, _numIter, NULL);
tmp35 = 1;
goto goto_36;
goto_36:;
MMC_CATCH_INTERNAL(mmc_jumper)
if (tmp35) {goto goto_2;}
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _v;
goto tmp3_done;
}
case 57: {
modelica_integer tmp37;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,10,2) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],24,1) == 0) goto tmp3_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
_e = tmpMeta[3];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 12;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _e, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],3,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp37 = mmc_unbox_integer(tmpMeta[3]);
_b = tmp37;
_b_1 = (!_b);
tmpMeta[2] = mmc_mk_box2(6, &Values_Value_BOOL__desc, mmc_mk_boolean(_b_1));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 58: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,11,5) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_lhs = tmpMeta[2];
_relop = tmpMeta[3];
_rhs = tmpMeta[4];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 11;
_cache = omc_Ceval_ceval(threadData, _cache, _env, _lhs, _impl, _msg, _numIter ,&_lhs_1);
_cache = omc_Ceval_ceval(threadData, _cache, _env, _rhs, _impl, _msg, _numIter ,&_rhs_1);
_v = omc_Ceval_cevalRelation(threadData, _lhs_1, _relop, _rhs_1);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _v;
goto tmp3_done;
}
case 59: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,18,4) == 0) goto tmp3_end;
tmp4 += 10;
tmpMeta[0+0] = omc_Ceval_cevalRange(threadData, _inCache, _inEnv, _inExp, _inBoolean, _inMsg, _numIter, &tmpMeta[0+1]);
goto tmp3_done;
}
case 60: {
modelica_integer tmp38;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,20,2) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],1,1) == 0) goto tmp3_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
_e = tmpMeta[3];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 9;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _e, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],0,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp38 = mmc_unbox_integer(tmpMeta[3]);
_i = tmp38;
_r = ((modelica_real)_i);
tmpMeta[2] = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_r));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 61: {
modelica_real tmp39;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,20,2) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],0,1) == 0) goto tmp3_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
_e = tmpMeta[3];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 8;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _e, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],1,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp39 = mmc_unbox_real(tmpMeta[3]);
_r = tmp39;
_i = ((modelica_integer)floor(_r));
tmpMeta[2] = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(_i));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 62: {
modelica_integer tmp40;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,20,2) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],5,5) == 0) goto tmp3_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 3));
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 4));
tmpMeta[5] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
_path = tmpMeta[3];
_n = tmpMeta[4];
_e = tmpMeta[5];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 7;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _e, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],0,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp40 = mmc_unbox_integer(tmpMeta[3]);
_i = tmp40;
_str = listGet(_n, _i);
tmpMeta[2] = mmc_mk_box2(4, &Absyn_Path_IDENT__desc, _str);
_path = omc_AbsynUtil_joinPaths(threadData, _path, tmpMeta[2]);
tmpMeta[2] = mmc_mk_box3(7, &Values_Value_ENUM__LITERAL__desc, _path, mmc_mk_integer(_i));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 63: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,20,2) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],6,2) == 0) goto tmp3_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[3],1,1) == 0) goto tmp3_end;
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
_e = tmpMeta[4];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 6;
tmpMeta[5] = omc_Ceval_ceval(threadData, _cache, _env, _e, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[5];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],5,2) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 3));
_ivals = tmpMeta[3];
_dims = tmpMeta[4];
_rvals = omc_ValuesUtil_typeConvert(threadData, _OMC_LIT236, _OMC_LIT237, _ivals);
tmpMeta[2] = mmc_mk_box3(8, &Values_Value_ARRAY__desc, _rvals, _dims);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 64: {
modelica_integer tmp41;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,12,3) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_cond = tmpMeta[2];
_e1 = tmpMeta[3];
_e2 = tmpMeta[4];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 5;
_cache = omc_Ceval_ceval(threadData, _cache, _env, _cond, _impl, _msg, ((modelica_integer) 1) + _numIter ,&_v);
tmpMeta[2] = _v;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],3,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmp41 = mmc_unbox_integer(tmpMeta[3]);
_resBool = tmp41;
tmpMeta[0+0] = omc_Ceval_ceval(threadData, _cache, _env, (_resBool?_e1:_e2), _impl, _msg, _numIter, &tmpMeta[0+1]);
goto tmp3_done;
}
case 65: {
modelica_integer tmp42;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,21,2) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (listEmpty(tmpMeta[3])) goto tmp3_end;
tmpMeta[4] = MMC_CAR(tmpMeta[3]);
tmpMeta[5] = MMC_CDR(tmpMeta[3]);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[4],0,1) == 0) goto tmp3_end;
tmpMeta[6] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[4]), 2));
tmp42 = mmc_unbox_integer(tmpMeta[6]);
if (!listEmpty(tmpMeta[5])) goto tmp3_end;
_e = tmpMeta[2];
_indx = tmp42;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _e, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],5,2) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
_vals = tmpMeta[3];
_v = listGet(_vals, _indx);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _v;
goto tmp3_done;
}
case 66: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,21,2) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
_e = tmpMeta[2];
_expl = tmpMeta[3];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 3;
tmpMeta[5] = omc_Ceval_ceval(threadData, _cache, _env, _e, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[5];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],5,2) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 3));
_vals = tmpMeta[3];
_dims = tmpMeta[4];
_cache = omc_Ceval_cevalList(threadData, _cache, _env, _expl, _impl, _msg, _numIter ,&_es_1);
_v = listHead(_es_1);
tmpMeta[2] = mmc_mk_box3(8, &Values_Value_ARRAY__desc, _vals, _dims);
_v = omc_ValuesUtil_nthnthArrayelt(threadData, _es_1, tmpMeta[2], _v);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _v;
goto tmp3_done;
}
case 67: {
modelica_integer tmp43;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,22,3) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
tmp43 = mmc_unbox_integer(tmpMeta[3]);
_e = tmpMeta[2];
_indx = tmp43;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 2;
tmpMeta[4] = omc_Ceval_ceval(threadData, _cache, _env, _e, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta[2]);
_cache = tmpMeta[4];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],8,1) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
_vals = tmpMeta[3];
_v = listGet(_vals, _indx);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _v;
goto tmp3_done;
}
case 68: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,27,3) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 3));
tmpMeta[5] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 4));
tmpMeta[6] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 5));
tmpMeta[7] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 6));
tmpMeta[8] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 7));
tmpMeta[9] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 8));
tmpMeta[10] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
tmpMeta[11] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_path = tmpMeta[3];
_iterType = tmpMeta[4];
_ty = tmpMeta[5];
_ov = tmpMeta[6];
_foldName = tmpMeta[7];
_resultName = tmpMeta[8];
_foldExp = tmpMeta[9];
_daeExp = tmpMeta[10];
_iterators = tmpMeta[11];
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 1;
_env = omc_FGraph_openScope(threadData, _env, _OMC_LIT238, _OMC_LIT239, mmc_mk_none());
_cache = omc_Ceval_cevalReductionIterators(threadData, _cache, _env, _iterators, _impl, _msg, ((modelica_integer) 1) + _numIter ,&_valMatrix ,&_names ,&_dims ,&_tys);
_valMatrix = omc_Ceval_makeReductionAllCombinations(threadData, _valMatrix, _iterType);
_cache = omc_Ceval_cevalReduction(threadData, _cache, _env, _path, _ov, _daeExp, _ty, _foldName, _resultName, _foldExp, _names, listReverse(_valMatrix), _tys, _impl, _msg, ((modelica_integer) 1) + _numIter ,&_ov);
_value = omc_Util_getOptionOrDefault(threadData, _ov, _OMC_LIT46);
_value = omc_Ceval_backpatchArrayReduction(threadData, _path, _iterType, _value, _dims);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _value;
goto tmp3_done;
}
case 69: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,26,4) == 0) goto tmp3_end;
_s = omc_ComponentReference_printComponentRefStr(threadData, (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inExp), 3))));
_v = omc_Types_typeToValue(threadData, (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inExp), 4))));
tmpMeta[2] = mmc_mk_box5(19, &Values_Value_EMPTY__desc, (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inExp), 2))), _s, _v, (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inExp), 5))));
tmpMeta[0+0] = _inCache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 70: {
if (!omc_Config_getGraphicsExpMode(threadData)) goto tmp3_end;
_ty = omc_Expression_typeof(threadData, _inExp);
_v = omc_Types_typeToValue(threadData, _ty);
tmpMeta[2] = mmc_mk_box5(19, &Values_Value_EMPTY__desc, _OMC_LIT240, omc_ExpressionDump_printExpStr(threadData, _inExp), _v, omc_Types_unparseType(threadData, _ty));
tmpMeta[0+0] = _inCache;
tmpMeta[0+1] = tmpMeta[2];
goto tmp3_done;
}
case 71: {
modelica_boolean tmp44;
_env = tmp4_2;
_e = tmp4_3;
tmp44 = omc_Flags_isSet(threadData, _OMC_LIT26);
if (1 != tmp44) goto goto_2;
tmpMeta[2] = stringAppend(_OMC_LIT241,omc_ExpressionDump_printExpStr(threadData, _e));
omc_Debug_traceln(threadData, tmpMeta[2]);
tmpMeta[2] = stringAppend(_OMC_LIT242,omc_FGraph_printGraphPathStr(threadData, _env));
omc_Debug_traceln(threadData, tmpMeta[2]);
goto goto_2;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
tmp3_done:
(void)tmp4;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp3_done2;
goto_2:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp4 < 72) {
goto tmp3_top;
}
MMC_THROW_INTERNAL();
tmp3_done2:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalWork2(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExp, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_cevalWork2(threadData, _inCache, _inEnv, _inExp, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Ceval_cevalWork1(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExp, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_boolean _iterReached, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
modelica_metatype tmpMeta[3] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_boolean tmp4_2;
tmp4_1 = _inMsg;
tmp4_2 = _iterReached;
{
modelica_metatype _info = NULL;
modelica_string _str1 = NULL;
modelica_string _str2 = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 2; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (0 != tmp4_2) goto tmp3_end;
tmpMeta[0+0] = omc_Ceval_cevalWork2(threadData, _inCache, _inEnv, _inExp, _inBoolean, _inMsg, _numIter, &tmpMeta[0+1]);
goto tmp3_done;
}
case 1: {
if (1 != tmp4_2) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,0,1) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 2));
_info = tmpMeta[2];
_str1 = _OMC_LIT243;
_str2 = omc_ExpressionDump_printExpStr(threadData, _inExp);
tmpMeta[2] = mmc_mk_cons(_str1, mmc_mk_cons(_str2, mmc_mk_cons(omc_FGraph_printGraphPathStr(threadData, _inEnv), MMC_REFSTRUCTLIT(mmc_nil))));
omc_Error_addSourceMessage(threadData, _OMC_LIT246, tmpMeta[2], _info);
goto goto_2;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outValue = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Ceval_cevalWork1(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExp, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype _iterReached, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_integer tmp3;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
tmp3 = mmc_unbox_integer(_iterReached);
_outCache = omc_Ceval_cevalWork1(threadData, _inCache, _inEnv, _inExp, tmp1, _inMsg, tmp2, tmp3, out_outValue);
return _outCache;
}
DLLExport
modelica_metatype omc_Ceval_ceval(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExp, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outValue = NULL;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_outCache = omc_Ceval_cevalWork1(threadData, _inCache, _inEnv, _inExp, _inBoolean, _inMsg, _numIter, (_numIter > ((modelica_integer) 256)) ,&_outValue);
_return: OMC_LABEL_UNUSED
if (out_outValue) { *out_outValue = _outValue; }
return _outCache;
}
modelica_metatype boxptr_Ceval_ceval(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExp, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inBoolean);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Ceval_ceval(threadData, _inCache, _inEnv, _inExp, tmp1, _inMsg, tmp2, out_outValue);
return _outCache;
}
