#ifdef OMC_BASE_FILE
#define OMC_FILE OMC_BASE_FILE
#else
#define OMC_FILE "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 "Ceval.mo"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT69,8,_OMC_LIT69_data);
#define _OMC_LIT69 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT69)
static const MMC_DEFREALLIT(_OMC_LIT_STRUCT70_6,0.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(3210)),MMC_IMMEDIATE(MMC_TAGFIXNUM(9)),MMC_IMMEDIATE(MMC_TAGFIXNUM(3210)),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,0.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(3220)),MMC_IMMEDIATE(MMC_TAGFIXNUM(9)),MMC_IMMEDIATE(MMC_TAGFIXNUM(3220)),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 "acos"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT103,4,_OMC_LIT103_data);
#define _OMC_LIT103 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT103)
#define _OMC_LIT104_data "asin"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT104,4,_OMC_LIT104_data);
#define _OMC_LIT104 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT104)
#define _OMC_LIT105_data "atan"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT105,4,_OMC_LIT105_data);
#define _OMC_LIT105 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT105)
#define _OMC_LIT106_data "atan2"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT106,5,_OMC_LIT106_data);
#define _OMC_LIT106 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT106)
#define _OMC_LIT107_data "cos"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT107,3,_OMC_LIT107_data);
#define _OMC_LIT107 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT107)
#define _OMC_LIT108_data "cosh"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT108,4,_OMC_LIT108_data);
#define _OMC_LIT108 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT108)
#define _OMC_LIT109_data "exp"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT109,3,_OMC_LIT109_data);
#define _OMC_LIT109 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT109)
#define _OMC_LIT110_data "log"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT110,3,_OMC_LIT110_data);
#define _OMC_LIT110 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT110)
#define _OMC_LIT111_data "log10"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT111,5,_OMC_LIT111_data);
#define _OMC_LIT111 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT111)
#define _OMC_LIT112_data "sin"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT112,3,_OMC_LIT112_data);
#define _OMC_LIT112 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT112)
#define _OMC_LIT113_data "sinh"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT113,4,_OMC_LIT113_data);
#define _OMC_LIT113 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT113)
#define _OMC_LIT114_data "tan"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT114,3,_OMC_LIT114_data);
#define _OMC_LIT114 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT114)
#define _OMC_LIT115_data "tanh"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT115,4,_OMC_LIT115_data);
#define _OMC_LIT115 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT115)
#define _OMC_LIT116_data "ModelicaStrings_substring"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT116,25,_OMC_LIT116_data);
#define _OMC_LIT116 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT116)
#define _OMC_LIT117_data "ModelicaStrings_length"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT117,22,_OMC_LIT117_data);
#define _OMC_LIT117 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT117)
#define _OMC_LIT118_data "print"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT118,5,_OMC_LIT118_data);
#define _OMC_LIT118 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT118)
#define _OMC_LIT119_data "OpenModelica_regex"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT119,18,_OMC_LIT119_data);
#define _OMC_LIT119 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT119)
#define _OMC_LIT120_data "ModelicaStreams_closeFile"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT120,25,_OMC_LIT120_data);
#define _OMC_LIT120 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT120)
#define _OMC_LIT121_data "ModelicaInternal_print"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT121,22,_OMC_LIT121_data);
#define _OMC_LIT121 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT121)
#define _OMC_LIT122_data "ModelicaInternal_countLines"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT122,27,_OMC_LIT122_data);
#define _OMC_LIT122 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT122)
#define _OMC_LIT123_data "ModelicaInternal_readLine"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT123,25,_OMC_LIT123_data);
#define _OMC_LIT123 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT123)
#define _OMC_LIT124_data "ModelicaInternal_stat"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT124,21,_OMC_LIT124_data);
#define _OMC_LIT124 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT124)
#define _OMC_LIT125_data "ModelicaInternal_fullPathName"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT125,29,_OMC_LIT125_data);
#define _OMC_LIT125 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT125)
#define _OMC_LIT126_data "ModelicaStrings_compare"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT126,23,_OMC_LIT126_data);
#define _OMC_LIT126 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT126)
#define _OMC_LIT127_data "ModelicaStrings_scanReal"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT127,24,_OMC_LIT127_data);
#define _OMC_LIT127 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT127)
#define _OMC_LIT128_data "ModelicaStrings_skipWhiteSpace"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT128,30,_OMC_LIT128_data);
#define _OMC_LIT128 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT128)
#define _OMC_LIT129_data "ModelicaError"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT129,13,_OMC_LIT129_data);
#define _OMC_LIT129 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT129)
#define _OMC_LIT130_data "No cevalBuiltinHandler found for "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT130,33,_OMC_LIT130_data);
#define _OMC_LIT130 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT130)
#define _OMC_LIT131_data "floor"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT131,5,_OMC_LIT131_data);
#define _OMC_LIT131 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT131)
#define _OMC_LIT132_data "ceil"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT132,4,_OMC_LIT132_data);
#define _OMC_LIT132 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT132)
#define _OMC_LIT133_data "abs"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT133,3,_OMC_LIT133_data);
#define _OMC_LIT133 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT133)
#define _OMC_LIT134_data "sqrt"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT134,4,_OMC_LIT134_data);
#define _OMC_LIT134 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT134)
#define _OMC_LIT135_data "div"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT135,3,_OMC_LIT135_data);
#define _OMC_LIT135 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT135)
#define _OMC_LIT136_data "integer"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT136,7,_OMC_LIT136_data);
#define _OMC_LIT136 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT136)
#define _OMC_LIT137_data "boolean"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT137,7,_OMC_LIT137_data);
#define _OMC_LIT137 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT137)
#define _OMC_LIT138_data "mod"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT138,3,_OMC_LIT138_data);
#define _OMC_LIT138 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT138)
#define _OMC_LIT139_data "max"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT139,3,_OMC_LIT139_data);
#define _OMC_LIT139 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT139)
#define _OMC_LIT140_data "min"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT140,3,_OMC_LIT140_data);
#define _OMC_LIT140 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT140)
#define _OMC_LIT141_data "rem"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT141,3,_OMC_LIT141_data);
#define _OMC_LIT141 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT141)
#define _OMC_LIT142_data "sum"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT142,3,_OMC_LIT142_data);
#define _OMC_LIT142 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT142)
#define _OMC_LIT143_data "diagonal"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT143,8,_OMC_LIT143_data);
#define _OMC_LIT143 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT143)
#define _OMC_LIT144_data "sign"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT144,4,_OMC_LIT144_data);
#define _OMC_LIT144 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT144)
#define _OMC_LIT145_data "noEvent"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT145,7,_OMC_LIT145_data);
#define _OMC_LIT145 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT145)
#define _OMC_LIT146_data "cat"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT146,3,_OMC_LIT146_data);
#define _OMC_LIT146 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT146)
#define _OMC_LIT147_data "identity"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT147,8,_OMC_LIT147_data);
#define _OMC_LIT147 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT147)
#define _OMC_LIT148_data "promote"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT148,7,_OMC_LIT148_data);
#define _OMC_LIT148 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT148)
#define _OMC_LIT149_data "String"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT149,6,_OMC_LIT149_data);
#define _OMC_LIT149 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT149)
#define _OMC_LIT150_data "Integer"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT150,7,_OMC_LIT150_data);
#define _OMC_LIT150 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT150)
#define _OMC_LIT151_data "rooted"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT151,6,_OMC_LIT151_data);
#define _OMC_LIT151 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT151)
#define _OMC_LIT152_data "fill"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT152,4,_OMC_LIT152_data);
#define _OMC_LIT152 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT152)
#define _OMC_LIT153_data "Modelica.Utilities.Strings.substring"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT153,36,_OMC_LIT153_data);
#define _OMC_LIT153 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT153)
#define _OMC_LIT154_data "fail"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT154,4,_OMC_LIT154_data);
#define _OMC_LIT154 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT154)
#define _OMC_LIT155_data "intString"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT155,9,_OMC_LIT155_data);
#define _OMC_LIT155 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT155)
#define _OMC_LIT156_data "realString"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT156,10,_OMC_LIT156_data);
#define _OMC_LIT156 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT156)
#define _OMC_LIT157_data "stringCharInt"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT157,13,_OMC_LIT157_data);
#define _OMC_LIT157 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT157)
#define _OMC_LIT158_data "intStringChar"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT158,13,_OMC_LIT158_data);
#define _OMC_LIT158 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT158)
#define _OMC_LIT159_data "stringLength"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT159,12,_OMC_LIT159_data);
#define _OMC_LIT159 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT159)
#define _OMC_LIT160_data "stringInt"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT160,9,_OMC_LIT160_data);
#define _OMC_LIT160 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT160)
#define _OMC_LIT161_data "stringListStringChar"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT161,20,_OMC_LIT161_data);
#define _OMC_LIT161 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT161)
#define _OMC_LIT162_data "listStringCharString"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT162,20,_OMC_LIT162_data);
#define _OMC_LIT162 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT162)
#define _OMC_LIT163_data "stringAppendList"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT163,16,_OMC_LIT163_data);
#define _OMC_LIT163 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT163)
#define _OMC_LIT164_data "stringDelimitList"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT164,17,_OMC_LIT164_data);
#define _OMC_LIT164 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT164)
#define _OMC_LIT165_data "listLength"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT165,10,_OMC_LIT165_data);
#define _OMC_LIT165 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT165)
#define _OMC_LIT166_data "listAppend"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT166,10,_OMC_LIT166_data);
#define _OMC_LIT166 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT166)
#define _OMC_LIT167_data "listHead"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT167,8,_OMC_LIT167_data);
#define _OMC_LIT167 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT167)
#define _OMC_LIT168_data "listRest"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT168,8,_OMC_LIT168_data);
#define _OMC_LIT168 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT168)
#define _OMC_LIT169_data "listMember"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT169,10,_OMC_LIT169_data);
#define _OMC_LIT169 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT169)
#define _OMC_LIT170_data "anyString"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT170,9,_OMC_LIT170_data);
#define _OMC_LIT170 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT170)
#define _OMC_LIT171_data "listArrayLiteral"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT171,16,_OMC_LIT171_data);
#define _OMC_LIT171 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT171)
#define _OMC_LIT172_data "intBitAnd"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT172,9,_OMC_LIT172_data);
#define _OMC_LIT172 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT172)
#define _OMC_LIT173_data "intBitOr"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT173,8,_OMC_LIT173_data);
#define _OMC_LIT173 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT173)
#define _OMC_LIT174_data "intBitXor"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT174,9,_OMC_LIT174_data);
#define _OMC_LIT174 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT174)
#define _OMC_LIT175_data "intBitLShift"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT175,12,_OMC_LIT175_data);
#define _OMC_LIT175 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT175)
#define _OMC_LIT176_data "intBitRShift"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT176,12,_OMC_LIT176_data);
#define _OMC_LIT176 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT176)
#define _OMC_LIT177_data "numBits"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT177,7,_OMC_LIT177_data);
#define _OMC_LIT177 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT177)
#define _OMC_LIT178_data "integerMax"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT178,10,_OMC_LIT178_data);
#define _OMC_LIT178 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT178)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT179,1,4) {&DAE_Const_C__PARAM__desc,}};
#define _OMC_LIT179 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT179)
#define _OMC_LIT180_data "cevalEquation"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT180,13,_OMC_LIT180_data);
#define _OMC_LIT180 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT180)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT181,1,3) {&Flags_FlagVisibility_INTERNAL__desc,}};
#define _OMC_LIT181 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT181)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT182,2,4) {&Flags_FlagData_BOOL__FLAG__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(1))}};
#define _OMC_LIT182 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT182)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT183,2,4) {&Gettext_TranslatableContent_notrans__desc,_OMC_LIT1}};
#define _OMC_LIT183 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT183)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT184,8,3) {&Flags_ConfigFlag_CONFIG__FLAG__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(32)),_OMC_LIT180,MMC_REFSTRUCTLIT(mmc_none),_OMC_LIT181,_OMC_LIT182,MMC_REFSTRUCTLIT(mmc_none),_OMC_LIT183}};
#define _OMC_LIT184 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT184)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT185,1,5) {&DAE_Const_C__VAR__desc,}};
#define _OMC_LIT185 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT185)
#define _OMC_LIT186_data " tuple non constant evaluation not implemented yet\n"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT186,51,_OMC_LIT186_data);
#define _OMC_LIT186 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT186)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT187,2,14) {&Values_Value_OPTION__desc,MMC_REFSTRUCTLIT(mmc_none)}};
#define _OMC_LIT187 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT187)
#define _OMC_LIT188_data "Connection"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT188,10,_OMC_LIT188_data);
#define _OMC_LIT188 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT188)
#define _OMC_LIT189_data "isRoot"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT189,6,_OMC_LIT189_data);
#define _OMC_LIT189 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT189)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT190,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT189}};
#define _OMC_LIT190 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT190)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT191,3,3) {&Absyn_Path_QUALIFIED__desc,_OMC_LIT188,_OMC_LIT190}};
#define _OMC_LIT191 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT191)
#define _OMC_LIT192_data "- Ceval.ceval DAE.CALL failed: "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT192,31,_OMC_LIT192_data);
#define _OMC_LIT192 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT192)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT193,1,7) {&Values_IntRealOp_POWOP__desc,}};
#define _OMC_LIT193 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT193)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT194,1,3) {&Values_IntRealOp_MULOP__desc,}};
#define _OMC_LIT194 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT194)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT195,1,4) {&Values_IntRealOp_DIVOP__desc,}};
#define _OMC_LIT195 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT195)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT196,1,5) {&Values_IntRealOp_ADDOP__desc,}};
#define _OMC_LIT196 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT196)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT197,1,6) {&Values_IntRealOp_SUBOP__desc,}};
#define _OMC_LIT197 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT197)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT198,2,6) {&Values_Value_BOOL__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(0))}};
#define _OMC_LIT198 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT198)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT199,2,3) {&DAE_Type_T__INTEGER__desc,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT199 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT199)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT200,2,4) {&DAE_Type_T__REAL__desc,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT200 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT200)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT201,1,4) {&SCode_Encapsulated_NOT__ENCAPSULATED__desc,}};
#define _OMC_LIT201 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT201)
#define _OMC_LIT202_data "$for loop scope$"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT202,16,_OMC_LIT202_data);
#define _OMC_LIT202 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT202)
#define _OMC_LIT203_data "#graphicsExp#"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT203,13,_OMC_LIT203_data);
#define _OMC_LIT203 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT203)
#define _OMC_LIT204_data "- Ceval.ceval failed: "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT204,22,_OMC_LIT204_data);
#define _OMC_LIT204 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT204)
#define _OMC_LIT205_data "  Scope: "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT205,9,_OMC_LIT205_data);
#define _OMC_LIT205 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT205)
#define _OMC_LIT206_data "256"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT206,3,_OMC_LIT206_data);
#define _OMC_LIT206 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT206)
#define _OMC_LIT207_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_STRUCT207,162,_OMC_LIT207_data);
#define _OMC_LIT207 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT207)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT208,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT207}};
#define _OMC_LIT208 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT208)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT209,5,3) {&ErrorTypes_Message_MESSAGE__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(533)),_OMC_LIT36,_OMC_LIT37,_OMC_LIT208}};
#define _OMC_LIT209 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT209)
#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 tmpMeta1;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;
tmp4_1 = _rtype;
{
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,0,0) == 0) goto tmp3_end;
tmpMeta1 = listReverse(omc_List_allCombinations(threadData, _inValMatrix, _OMC_LIT0, _OMC_LIT3));
goto tmp3_done;
}
case 1: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,1,0) == 0) goto tmp3_end;
tmpMeta1 = listReverse(omc_List_transposeList(threadData, _inValMatrix));
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_valMatrix = tmpMeta1;
_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[2] __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_metatype tmpMeta5;
modelica_integer tmp6;
modelica_metatype tmpMeta7;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,0,1) == 0) goto tmp3_end;
tmpMeta5 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 2));
tmp6 = mmc_unbox_integer(tmpMeta5);
_dim_int = tmp6;
tmpMeta7 = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(_dim_int));
tmpMeta[0+0] = _inCache;
tmpMeta[0+1] = tmpMeta7;
goto tmp3_done;
}
case 5: {
modelica_metatype tmpMeta8;
modelica_integer tmp9;
modelica_metatype tmpMeta10;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,2,3) == 0) goto tmp3_end;
tmpMeta8 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 4));
tmp9 = mmc_unbox_integer(tmpMeta8);
_dim_int = tmp9;
tmpMeta10 = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(_dim_int));
tmpMeta[0+0] = _inCache;
tmpMeta[0+1] = tmpMeta10;
goto tmp3_done;
}
case 4: {
tmpMeta[0+0] = _inCache;
tmpMeta[0+1] = _OMC_LIT4;
goto tmp3_done;
}
case 6: {
modelica_metatype tmpMeta11;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,3,1) == 0) goto tmp3_end;
tmpMeta11 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 2));
_exp = tmpMeta11;
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[2] __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: {
modelica_metatype tmpMeta6;
if (!listEmpty(tmp4_3)) goto tmp3_end;
_cache = tmp4_1;
tmpMeta6 = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta6;
goto tmp3_done;
}
case 1: {
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta7 = MMC_CAR(tmp4_3);
tmpMeta8 = MMC_CDR(tmp4_3);
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta7), 1));
tmpMeta10 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta7), 2));
_e1 = tmpMeta9;
_e2 = tmpMeta10;
_xs = tmpMeta8;
_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);
tmpMeta12 = mmc_mk_box2(0, _e1_1, _e2_1);
tmpMeta11 = mmc_mk_cons(tmpMeta12, _res);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta11;
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[2] __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: {
modelica_metatype tmpMeta6;
if (!listEmpty(tmp4_3)) goto tmp3_end;
_cache = tmp4_1;
tmpMeta6 = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta6;
goto tmp3_done;
}
case 1: {
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta7 = MMC_CAR(tmp4_3);
tmpMeta8 = MMC_CDR(tmp4_3);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta7,0,0) == 0) goto tmp3_end;
_xs = tmpMeta8;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
_cache = omc_Ceval_cevalAstArraydim(threadData, _cache, _env, _xs, _impl, _msg, _info ,&_res);
tmpMeta9 = mmc_mk_cons(_OMC_LIT5, _res);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta9;
goto tmp3_done;
}
case 2: {
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
modelica_metatype tmpMeta13;
modelica_metatype tmpMeta14;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta10 = MMC_CAR(tmp4_3);
tmpMeta11 = MMC_CDR(tmp4_3);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta10,1,1) == 0) goto tmp3_end;
tmpMeta12 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta10), 2));
_e = tmpMeta12;
_xs = tmpMeta11;
_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);
tmpMeta14 = mmc_mk_box2(4, &Absyn_Subscript_SUBSCRIPT__desc, _e);
tmpMeta13 = mmc_mk_cons(tmpMeta14, _res);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta13;
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[2] __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: {
modelica_metatype tmpMeta6;
if (!listEmpty(tmp4_3)) goto tmp3_end;
_cache = tmp4_1;
tmp4 += 2;
tmpMeta6 = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta6;
goto tmp3_done;
}
case 1: {
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_integer tmp10;
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
modelica_metatype tmpMeta13;
modelica_metatype tmpMeta14;
modelica_metatype tmpMeta15;
modelica_metatype tmpMeta16;
modelica_metatype tmpMeta17;
modelica_metatype tmpMeta18;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta7 = MMC_CAR(tmp4_3);
tmpMeta8 = MMC_CDR(tmp4_3);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta7,0,6) == 0) goto tmp3_end;
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta7), 2));
tmp10 = mmc_unbox_integer(tmpMeta9);
tmpMeta11 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta7), 3));
tmpMeta12 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta7), 4));
tmpMeta13 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta7), 5));
if (optionNone(tmpMeta13)) goto tmp3_end;
tmpMeta14 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta13), 1));
tmpMeta15 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta7), 6));
tmpMeta16 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta7), 7));
_b = tmp10;
_e = tmpMeta11;
_p = tmpMeta12;
_mod = tmpMeta14;
_stropt = tmpMeta15;
_mod_info = tmpMeta16;
_args = tmpMeta8;
_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);
tmpMeta18 = mmc_mk_box7(3, &Absyn_ElementArg_MODIFICATION__desc, mmc_mk_boolean(_b), _e, _p, mmc_mk_some(_mod_1), _stropt, _mod_info);
tmpMeta17 = mmc_mk_cons(tmpMeta18, _res);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta17;
goto tmp3_done;
}
case 2: {
modelica_metatype tmpMeta19;
modelica_metatype tmpMeta20;
modelica_metatype tmpMeta21;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta19 = MMC_CAR(tmp4_3);
tmpMeta20 = MMC_CDR(tmp4_3);
_m = tmpMeta19;
_args = tmpMeta20;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
_cache = omc_Ceval_cevalAstEltargs(threadData, _cache, _env, _args, _impl, _msg, _info ,&_res);
tmpMeta21 = mmc_mk_cons(_m, _res);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta21;
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[2] __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: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta7,1,2) == 0) goto tmp3_end;
tmpMeta8 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta7), 2));
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta7), 3));
_eltargs = tmpMeta6;
_e = tmpMeta8;
_info2 = tmpMeta9;
_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);
tmpMeta10 = mmc_mk_box3(4, &Absyn_EqMod_EQMOD__desc, _e_1, _info2);
tmpMeta11 = mmc_mk_box3(3, &Absyn_Modification_CLASSMOD__desc, _eltargs_1, tmpMeta10);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta11;
goto tmp3_done;
}
case 1: {
modelica_metatype tmpMeta12;
modelica_metatype tmpMeta13;
modelica_metatype tmpMeta14;
tmpMeta12 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta13 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta13,0,0) == 0) goto tmp3_end;
_eltargs = tmpMeta12;
_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);
tmpMeta14 = mmc_mk_box3(3, &Absyn_Modification_CLASSMOD__desc, _eltargs_1, _OMC_LIT6);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta14;
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[2] __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: {
modelica_metatype tmpMeta6;
if (optionNone(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 1));
_mod = tmpMeta6;
_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[2] __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: {
modelica_metatype tmpMeta6;
if (!listEmpty(tmp4_3)) goto tmp3_end;
_cache = tmp4_1;
tmp4 += 2;
tmpMeta6 = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta6;
goto tmp3_done;
}
case 1: {
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
modelica_metatype tmpMeta13;
modelica_metatype tmpMeta14;
modelica_metatype tmpMeta15;
modelica_metatype tmpMeta16;
modelica_metatype tmpMeta17;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta7 = MMC_CAR(tmp4_3);
tmpMeta8 = MMC_CDR(tmp4_3);
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta7), 2));
tmpMeta10 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta9), 2));
tmpMeta11 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta9), 3));
tmpMeta12 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta9), 4));
tmpMeta13 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta7), 3));
tmpMeta14 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta7), 4));
_id = tmpMeta10;
_ad = tmpMeta11;
_modopt = tmpMeta12;
_cond = tmpMeta13;
_cmt = tmpMeta14;
_xs = tmpMeta8;
_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);
tmpMeta16 = mmc_mk_box4(3, &Absyn_Component_COMPONENT__desc, _id, _ad_1, _modopt_1);
tmpMeta17 = mmc_mk_box4(3, &Absyn_ComponentItem_COMPONENTITEM__desc, tmpMeta16, _cond, _cmt);
tmpMeta15 = mmc_mk_cons(tmpMeta17, _res);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta15;
goto tmp3_done;
}
case 2: {
modelica_metatype tmpMeta18;
modelica_metatype tmpMeta19;
modelica_metatype tmpMeta20;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta18 = MMC_CAR(tmp4_3);
tmpMeta19 = MMC_CDR(tmp4_3);
_x = tmpMeta18;
_xs = tmpMeta19;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
_cache = omc_Ceval_cevalAstCitems(threadData, _cache, _env, _xs, _impl, _msg, _info ,&_res);
tmpMeta20 = mmc_mk_cons(_x, _res);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta20;
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[2] __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_metatype tmpMeta6;
modelica_integer tmp7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
modelica_metatype tmpMeta13;
modelica_metatype tmpMeta14;
modelica_metatype tmpMeta15;
modelica_metatype tmpMeta16;
modelica_metatype tmpMeta17;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,0,6) == 0) goto tmp3_end;
tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmp7 = mmc_unbox_integer(tmpMeta6);
tmpMeta8 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
tmpMeta10 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 5));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta10,3,3) == 0) goto tmp3_end;
tmpMeta11 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta10), 2));
tmpMeta12 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta10), 3));
tmpMeta13 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta10), 4));
tmpMeta14 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 6));
tmpMeta15 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 7));
_f = tmp7;
_r = tmpMeta8;
_io = tmpMeta9;
_attr = tmpMeta11;
_tp = tmpMeta12;
_citems = tmpMeta13;
_info = tmpMeta14;
_c = tmpMeta15;
_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);
tmpMeta16 = mmc_mk_box4(6, &Absyn_ElementSpec_COMPONENTS__desc, _attr, _tp, _citems_1);
tmpMeta17 = mmc_mk_box7(3, &Absyn_Element_ELEMENT__desc, mmc_mk_boolean(_f), _r, _io, tmpMeta16, _info, _c);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta17;
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[2] __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: {
modelica_metatype tmpMeta6;
if (!listEmpty(tmp4_3)) goto tmp3_end;
_cache = tmp4_1;
tmpMeta6 = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta6;
goto tmp3_done;
}
case 1: {
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta7 = MMC_CAR(tmp4_3);
tmpMeta8 = MMC_CDR(tmp4_3);
_e = tmpMeta7;
_es = tmpMeta8;
_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);
tmpMeta9 = mmc_mk_cons(_e, _res);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta9;
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[2] __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: {
modelica_metatype tmpMeta6;
if (!listEmpty(tmp4_3)) goto tmp3_end;
_cache = tmp4_1;
tmpMeta6 = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta6;
goto tmp3_done;
}
case 1: {
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta7 = MMC_CAR(tmp4_3);
tmpMeta8 = MMC_CDR(tmp4_3);
_e = tmpMeta7;
_es = tmpMeta8;
_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);
tmpMeta9 = mmc_mk_cons(_e, _res);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta9;
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[2] __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: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,5,3) == 0) goto tmp3_end;
tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
tmpMeta8 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_e1 = tmpMeta6;
_op = tmpMeta7;
_e2 = tmpMeta8;
_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);
tmpMeta9 = mmc_mk_box4(8, &Absyn_Exp_BINARY__desc, _e1_1, _op, _e2_1);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta9;
goto tmp3_done;
}
case 6: {
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,6,2) == 0) goto tmp3_end;
tmpMeta10 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta11 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
_op = tmpMeta10;
_e = tmpMeta11;
_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);
tmpMeta12 = mmc_mk_box3(9, &Absyn_Exp_UNARY__desc, _op, _e_1);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta12;
goto tmp3_done;
}
case 7: {
modelica_metatype tmpMeta13;
modelica_metatype tmpMeta14;
modelica_metatype tmpMeta15;
modelica_metatype tmpMeta16;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,7,3) == 0) goto tmp3_end;
tmpMeta13 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta14 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
tmpMeta15 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_e1 = tmpMeta13;
_op = tmpMeta14;
_e2 = tmpMeta15;
_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);
tmpMeta16 = mmc_mk_box4(10, &Absyn_Exp_LBINARY__desc, _e1_1, _op, _e2_1);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta16;
goto tmp3_done;
}
case 8: {
modelica_metatype tmpMeta17;
modelica_metatype tmpMeta18;
modelica_metatype tmpMeta19;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,8,2) == 0) goto tmp3_end;
tmpMeta17 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta18 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
_op = tmpMeta17;
_e = tmpMeta18;
_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);
tmpMeta19 = mmc_mk_box3(11, &Absyn_Exp_LUNARY__desc, _op, _e_1);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta19;
goto tmp3_done;
}
case 9: {
modelica_metatype tmpMeta20;
modelica_metatype tmpMeta21;
modelica_metatype tmpMeta22;
modelica_metatype tmpMeta23;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,9,3) == 0) goto tmp3_end;
tmpMeta20 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta21 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
tmpMeta22 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_e1 = tmpMeta20;
_op = tmpMeta21;
_e2 = tmpMeta22;
_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);
tmpMeta23 = mmc_mk_box4(12, &Absyn_Exp_RELATION__desc, _e1_1, _op, _e2_1);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta23;
goto tmp3_done;
}
case 10: {
modelica_metatype tmpMeta24;
modelica_metatype tmpMeta25;
modelica_metatype tmpMeta26;
modelica_metatype tmpMeta27;
modelica_metatype tmpMeta28;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,10,4) == 0) goto tmp3_end;
tmpMeta24 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta25 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
tmpMeta26 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
tmpMeta27 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 5));
_cond = tmpMeta24;
_then_ = tmpMeta25;
_else_ = tmpMeta26;
_nest = tmpMeta27;
_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);
tmpMeta28 = mmc_mk_box5(13, &Absyn_Exp_IFEXP__desc, _cond_1, _then_1, _else_1, _nest_1);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta28;
goto tmp3_done;
}
case 11: {
modelica_metatype tmpMeta29;
modelica_metatype tmpMeta30;
modelica_metatype tmpMeta31;
modelica_metatype tmpMeta32;
modelica_metatype tmpMeta33;
modelica_metatype tmpMeta34;
modelica_metatype tmpMeta35;
modelica_metatype tmpMeta36;
modelica_metatype tmpMeta37;
modelica_metatype tmpMeta38;
modelica_metatype tmpMeta39;
modelica_metatype tmpMeta40;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,11,3) == 0) goto tmp3_end;
tmpMeta29 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta29,2,2) == 0) goto tmp3_end;
tmpMeta30 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta29), 2));
if (4 != MMC_STRLEN(tmpMeta30) || strcmp(MMC_STRINGDATA(_OMC_LIT9), MMC_STRINGDATA(tmpMeta30)) != 0) goto tmp3_end;
tmpMeta31 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta29), 3));
if (!listEmpty(tmpMeta31)) goto tmp3_end;
tmpMeta32 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta32,0,2) == 0) goto tmp3_end;
tmpMeta33 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta32), 2));
if (listEmpty(tmpMeta33)) goto tmp3_end;
tmpMeta34 = MMC_CAR(tmpMeta33);
tmpMeta35 = MMC_CDR(tmpMeta33);
if (!listEmpty(tmpMeta35)) goto tmp3_end;
tmpMeta36 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta32), 3));
if (!listEmpty(tmpMeta36)) goto tmp3_end;
_e = tmpMeta34;
_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);
tmpMeta40 = omc_Ceval_ceval(threadData, _cache, _env, _daeExp, _impl, _msg, ((modelica_integer) 0), &tmpMeta37);
_cache = tmpMeta40;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta37,12,1) == 0) goto goto_2;
tmpMeta38 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta37), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta38,6,1) == 0) goto goto_2;
tmpMeta39 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta38), 2));
_exp = tmpMeta39;
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: {
modelica_metatype tmpMeta41;
modelica_metatype tmpMeta42;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,13,1) == 0) goto tmp3_end;
tmpMeta41 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
_expl = tmpMeta41;
_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);
tmpMeta42 = mmc_mk_box2(16, &Absyn_Exp_ARRAY__desc, _expl_1);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta42;
goto tmp3_done;
}
case 14: {
modelica_metatype tmpMeta43;
modelica_metatype tmpMeta44;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,14,1) == 0) goto tmp3_end;
tmpMeta43 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
_lstExpl = tmpMeta43;
_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);
tmpMeta44 = mmc_mk_box2(17, &Absyn_Exp_MATRIX__desc, _lstExpl_1);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta44;
goto tmp3_done;
}
case 15: {
modelica_metatype tmpMeta45;
modelica_metatype tmpMeta46;
modelica_metatype tmpMeta47;
modelica_metatype tmpMeta48;
modelica_metatype tmpMeta49;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,15,3) == 0) goto tmp3_end;
tmpMeta45 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta46 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (optionNone(tmpMeta46)) goto tmp3_end;
tmpMeta47 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta46), 1));
tmpMeta48 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_e1 = tmpMeta45;
_e2 = tmpMeta47;
_e3 = tmpMeta48;
_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);
tmpMeta49 = mmc_mk_box4(18, &Absyn_Exp_RANGE__desc, _e1_1, mmc_mk_some(_e2_1), _e3_1);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta49;
goto tmp3_done;
}
case 16: {
modelica_metatype tmpMeta50;
modelica_metatype tmpMeta51;
modelica_metatype tmpMeta52;
modelica_metatype tmpMeta53;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,15,3) == 0) goto tmp3_end;
tmpMeta50 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta51 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (!optionNone(tmpMeta51)) goto tmp3_end;
tmpMeta52 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_e1 = tmpMeta50;
_e3 = tmpMeta52;
_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);
tmpMeta53 = mmc_mk_box4(18, &Absyn_Exp_RANGE__desc, _e1_1, mmc_mk_none(), _e3_1);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta53;
goto tmp3_done;
}
case 17: {
modelica_metatype tmpMeta54;
modelica_metatype tmpMeta55;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,16,1) == 0) goto tmp3_end;
tmpMeta54 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
_expl = tmpMeta54;
_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);
tmpMeta55 = mmc_mk_box2(19, &Absyn_Exp_TUPLE__desc, _expl_1);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta55;
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 tmpMeta1;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_structuralParameters = _OMC_LIT11;
_functionTree = omc_Mutable_create(threadData, _functions);
tmpMeta1 = mmc_mk_box5(3, &FCore_Cache_CACHE__desc, mmc_mk_none(), _functionTree, _structuralParameters, _OMC_LIT12);
_cache = tmpMeta1;
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 tmpMeta1;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;
tmp4_1 = _inVals;
tmp4_2 = _inDims;
{
modelica_integer _dim;
modelica_metatype _valMatrix = NULL;
modelica_metatype _vals = NULL;
modelica_metatype _dims = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 2; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
if (listEmpty(tmp4_2)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_2);
tmpMeta7 = MMC_CDR(tmp4_2);
if (!listEmpty(tmpMeta7)) goto tmp3_end;
_vals = tmp4_1;
tmpMeta1 = (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 tmp3_done;
}
case 1: {
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_integer tmp10;
if (listEmpty(tmp4_2)) goto tmp3_end;
tmpMeta8 = MMC_CAR(tmp4_2);
tmpMeta9 = MMC_CDR(tmp4_2);
tmp10 = mmc_unbox_integer(tmpMeta8);
_dim = tmp10;
_dims = tmpMeta9;
_vals = tmp4_1;
_valMatrix = omc_List_partition(threadData, _vals, _dim);
_vals = omc_List_map(threadData, _valMatrix, ((modelica_fnptr) _makeSequence));
_inVals = _vals;
_inDims = _dims;
goto _tailrecursive;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outValue = tmpMeta1;
_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 tmpMeta1;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_metatype tmp4_4;
tmp4_1 = _path;
tmp4_2 = _iterType;
tmp4_3 = _inValue;
tmp4_4 = _dims;
{
modelica_metatype _vals = NULL;
modelica_metatype _value = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 5; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
if (listEmpty(tmp4_4)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_4);
tmpMeta7 = MMC_CDR(tmp4_4);
if (!listEmpty(tmpMeta7)) goto tmp3_end;
_value = tmp4_3;
tmpMeta1 = _value;
goto tmp3_done;
}
case 1: {
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,0,0) == 0) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,5,2) == 0) goto tmp3_end;
tmpMeta8 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,1,1) == 0) goto tmp3_end;
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 2));
if (5 != MMC_STRLEN(tmpMeta9) || strcmp(MMC_STRINGDATA(_OMC_LIT14), MMC_STRINGDATA(tmpMeta9)) != 0) goto tmp3_end;
_vals = tmpMeta8;
tmpMeta1 = omc_Ceval_backpatchArrayReduction3(threadData, _vals, listReverse(_dims), boxvar_ValuesUtil_makeArray);
goto tmp3_done;
}
case 2: {
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,0,0) == 0) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,6,1) == 0) goto tmp3_end;
tmpMeta10 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,1,1) == 0) goto tmp3_end;
tmpMeta11 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 2));
if (4 != MMC_STRLEN(tmpMeta11) || strcmp(MMC_STRINGDATA(_OMC_LIT15), MMC_STRINGDATA(tmpMeta11)) != 0) goto tmp3_end;
_vals = tmpMeta10;
tmpMeta1 = omc_Ceval_backpatchArrayReduction3(threadData, _vals, listReverse(_dims), boxvar_ValuesUtil_makeList);
goto tmp3_done;
}
case 3: {
modelica_metatype tmpMeta12;
modelica_metatype tmpMeta13;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,0,0) == 0) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,6,1) == 0) goto tmp3_end;
tmpMeta12 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,1,1) == 0) goto tmp3_end;
tmpMeta13 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 2));
if (11 != MMC_STRLEN(tmpMeta13) || strcmp(MMC_STRINGDATA(_OMC_LIT16), MMC_STRINGDATA(tmpMeta13)) != 0) goto tmp3_end;
_vals = tmpMeta12;
tmpMeta1 = omc_Ceval_backpatchArrayReduction3(threadData, _vals, listReverse(_dims), boxvar_ValuesUtil_makeList);
goto tmp3_done;
}
case 4: {
tmpMeta1 = _inValue;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outValue = tmpMeta1;
_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 tmpMeta1;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_metatype tmp4_4;
tmp4_1 = _inEnv;
tmp4_2 = _inNames;
tmp4_3 = _inVals;
tmp4_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 tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 2; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (!listEmpty(tmp4_2)) goto tmp3_end;
if (!listEmpty(tmp4_3)) goto tmp3_end;
if (!listEmpty(tmp4_4)) goto tmp3_end;
_env = tmp4_1;
tmpMeta1 = _env;
goto tmp3_done;
}
case 1: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
if (listEmpty(tmp4_2)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_2);
tmpMeta7 = MMC_CDR(tmp4_2);
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta8 = MMC_CAR(tmp4_3);
tmpMeta9 = MMC_CDR(tmp4_3);
if (listEmpty(tmp4_4)) goto tmp3_end;
tmpMeta10 = MMC_CAR(tmp4_4);
tmpMeta11 = MMC_CDR(tmp4_4);
_name = tmpMeta6;
_names = tmpMeta7;
_val = tmpMeta8;
_vals = tmpMeta9;
_ty = tmpMeta10;
_tys = tmpMeta11;
_env = tmp4_1;
tmpMeta12 = mmc_mk_box3(5, &DAE_Binding_VALBOUND__desc, _val, _OMC_LIT17);
_env = omc_FGraph_addForIterator(threadData, _env, _name, _ty, tmpMeta12, _OMC_LIT18, _OMC_LIT20);
_inEnv = _env;
_inNames = _names;
_inVals = _vals;
_inTys = _tys;
goto _tailrecursive;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outEnv = tmpMeta1;
_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[2] __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: {
modelica_metatype tmpMeta6;
if (!listEmpty(tmp4_3)) goto tmp3_end;
_cache = tmp4_1;
tmpMeta6 = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta6;
goto tmp3_done;
}
case 1: {
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
modelica_integer tmp13;
modelica_metatype tmpMeta14;
modelica_metatype tmpMeta15;
modelica_boolean tmp16;
modelica_metatype tmpMeta17;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta7 = MMC_CAR(tmp4_3);
tmpMeta8 = MMC_CDR(tmp4_3);
if (optionNone(tmp4_4)) goto tmp3_end;
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_4), 1));
_val = tmpMeta7;
_vals = tmpMeta8;
_exp = tmpMeta9;
_cache = tmp4_1;
_env = tmp4_2;
tmpMeta10 = mmc_mk_box3(5, &DAE_Binding_VALBOUND__desc, _val, _OMC_LIT17);
_new_env = omc_FGraph_addForIterator(threadData, _env, _id, _ty, tmpMeta10, _OMC_LIT18, _OMC_LIT20);
tmpMeta14 = omc_Ceval_ceval(threadData, _cache, _new_env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta11);
_cache = tmpMeta14;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta11,3,1) == 0) goto goto_2;
tmpMeta12 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta11), 2));
tmp13 = mmc_unbox_integer(tmpMeta12);
_b = tmp13;
_cache = omc_Ceval_filterReductionIterator(threadData, _cache, _env, _id, _ty, _vals, _guardExp, _impl, _msg, _numIter ,&_vals);
tmp16 = (modelica_boolean)_b;
if(tmp16)
{
tmpMeta15 = mmc_mk_cons(_val, _vals);
tmpMeta17 = tmpMeta15;
}
else
{
tmpMeta17 = _vals;
}
_vals = tmpMeta17;
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 tmpMeta1;
modelica_metatype _names = NULL;
modelica_metatype tmpMeta2;
modelica_metatype _dims = NULL;
modelica_metatype tmpMeta3;
modelica_metatype _tys = NULL;
modelica_metatype tmpMeta4;
modelica_metatype _val = NULL;
modelica_metatype _iterVals = NULL;
modelica_metatype _ty = NULL;
modelica_string _id = NULL;
modelica_metatype _exp = NULL;
modelica_metatype _guardExp = NULL;
modelica_metatype tmpMeta5;
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
modelica_metatype tmpMeta13;
modelica_metatype tmpMeta14;
modelica_metatype tmpMeta15;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_outCache = _inCache;
tmpMeta1 = MMC_REFSTRUCTLIT(mmc_nil);
_vals = tmpMeta1;
tmpMeta2 = MMC_REFSTRUCTLIT(mmc_nil);
_names = tmpMeta2;
tmpMeta3 = MMC_REFSTRUCTLIT(mmc_nil);
_dims = tmpMeta3;
tmpMeta4 = MMC_REFSTRUCTLIT(mmc_nil);
_tys = tmpMeta4;
{
modelica_metatype _iter;
for (tmpMeta5 = _inIterators; !listEmpty(tmpMeta5); tmpMeta5=MMC_CDR(tmpMeta5))
{
_iter = MMC_CAR(tmpMeta5);
tmpMeta6 = _iter;
tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta6), 2));
tmpMeta8 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta6), 3));
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta6), 4));
tmpMeta10 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta6), 5));
_id = tmpMeta7;
_exp = tmpMeta8;
_guardExp = tmpMeta9;
_ty = tmpMeta10;
_outCache = omc_Ceval_ceval(threadData, _outCache, _inEnv, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter ,&_val);
_iterVals = omc_ValuesUtil_arrayOrListVals(threadData, _val, 1);
_outCache = omc_Ceval_filterReductionIterator(threadData, _outCache, _inEnv, _id, _ty, _iterVals, _guardExp, _impl, _msg, _numIter ,&_iterVals);
tmpMeta11 = mmc_mk_cons(_iterVals, _vals);
_vals = tmpMeta11;
tmpMeta12 = mmc_mk_cons(_id, _names);
_names = tmpMeta12;
tmpMeta13 = mmc_mk_cons(mmc_mk_integer(listLength(_iterVals)), _dims);
_dims = tmpMeta13;
tmpMeta14 = mmc_mk_cons(_ty, _tys);
_tys = tmpMeta14;
}
}
_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 tmpMeta1;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;
tmp4_1 = _inV1;
tmp4_2 = _inV2;
{
modelica_metatype _vals = NULL;
modelica_metatype _v1 = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 2; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,14,1) == 0) goto tmp3_end;
tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,6,1) == 0) goto tmp3_end;
tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_2), 2));
_v1 = tmpMeta6;
_vals = tmpMeta7;
tmpMeta8 = mmc_mk_cons(_v1, _vals);
tmpMeta9 = mmc_mk_box2(9, &Values_Value_LIST__desc, tmpMeta8);
tmpMeta1 = tmpMeta9;
goto tmp3_done;
}
case 1: {
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,6,1) == 0) goto tmp3_end;
tmpMeta10 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_2), 2));
_vals = tmpMeta10;
_v1 = tmp4_1;
tmpMeta11 = mmc_mk_cons(_v1, _vals);
tmpMeta12 = mmc_mk_box2(9, &Values_Value_LIST__desc, tmpMeta11);
tmpMeta1 = tmpMeta12;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_res = tmpMeta1;
_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 tmpMeta1;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;
tmp4_1 = _v2;
{
modelica_metatype _vals = NULL;
modelica_integer _dim_size;
modelica_metatype _rest_dims = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 2; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_integer tmp10;
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
modelica_metatype tmpMeta13;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,5,2) == 0) goto tmp3_end;
tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 2));
tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 3));
if (listEmpty(tmpMeta7)) goto tmp3_end;
tmpMeta8 = MMC_CAR(tmpMeta7);
tmpMeta9 = MMC_CDR(tmpMeta7);
tmp10 = mmc_unbox_integer(tmpMeta8);
_vals = tmpMeta6;
_dim_size = tmp10;
_rest_dims = tmpMeta9;
_dim_size = ((modelica_integer) 1) + _dim_size;
tmpMeta11 = mmc_mk_cons(_v1, _vals);
tmpMeta12 = mmc_mk_cons(mmc_mk_integer(_dim_size), _rest_dims);
tmpMeta13 = mmc_mk_box3(8, &Values_Value_ARRAY__desc, tmpMeta11, tmpMeta12);
tmpMeta1 = tmpMeta13;
goto tmp3_done;
}
case 1: {
modelica_metatype tmpMeta14;
modelica_metatype tmpMeta15;
tmpMeta14 = mmc_mk_cons(_v1, mmc_mk_cons(_v2, MMC_REFSTRUCTLIT(mmc_nil)));
tmpMeta15 = mmc_mk_box3(8, &Values_Value_ARRAY__desc, tmpMeta14, _OMC_LIT21);
tmpMeta1 = tmpMeta15;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_res = tmpMeta1;
_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[2] __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: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
if (optionNone(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 1));
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,1,1) == 0) goto tmp3_end;
tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_2), 2));
if (5 != MMC_STRLEN(tmpMeta7) || strcmp(MMC_STRINGDATA(_OMC_LIT14), MMC_STRINGDATA(tmpMeta7)) != 0) goto tmp3_end;
_value = tmpMeta6;
_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: {
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
if (optionNone(tmp4_3)) goto tmp3_end;
tmpMeta8 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 1));
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,1,1) == 0) goto tmp3_end;
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_2), 2));
if (4 != MMC_STRLEN(tmpMeta9) || strcmp(MMC_STRINGDATA(_OMC_LIT15), MMC_STRINGDATA(tmpMeta9)) != 0) goto tmp3_end;
_value = tmpMeta8;
_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: {
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
if (optionNone(tmp4_3)) goto tmp3_end;
tmpMeta10 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 1));
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,1,1) == 0) goto tmp3_end;
tmpMeta11 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_2), 2));
if (11 != MMC_STRLEN(tmpMeta11) || strcmp(MMC_STRINGDATA(_OMC_LIT16), MMC_STRINGDATA(tmpMeta11)) != 0) goto tmp3_end;
_value = tmpMeta10;
_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: {
modelica_metatype tmpMeta12;
modelica_metatype tmpMeta13;
modelica_metatype tmpMeta14;
modelica_metatype tmpMeta15;
if (optionNone(tmp4_3)) goto tmp3_end;
tmpMeta12 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 1));
if (optionNone(tmp4_4)) goto tmp3_end;
tmpMeta13 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_4), 1));
_value = tmpMeta12;
_exp = tmpMeta13;
_cache = tmp4_1;
tmpMeta14 = mmc_mk_box3(5, &DAE_Binding_VALBOUND__desc, _inValue, _OMC_LIT17);
_env = omc_FGraph_addForIterator(threadData, _inEnv, _foldName, _exprType, tmpMeta14, _OMC_LIT18, _OMC_LIT20);
tmpMeta15 = mmc_mk_box3(5, &DAE_Binding_VALBOUND__desc, _value, _OMC_LIT17);
_env = omc_FGraph_addForIterator(threadData, _env, _resultName, _exprType, tmpMeta15, _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[2] __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: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
if (!listEmpty(tmp4_5)) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,1,1) == 0) goto tmp3_end;
tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
if (4 != MMC_STRLEN(tmpMeta6) || strcmp(MMC_STRINGDATA(_OMC_LIT15), MMC_STRINGDATA(tmpMeta6)) != 0) goto tmp3_end;
if (optionNone(tmp4_4)) goto tmp3_end;
tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_4), 1));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta7,6,1) == 0) goto tmp3_end;
tmpMeta8 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta7), 2));
_vals = tmpMeta8;
_cache = tmp4_1;
_vals = listReverse(_vals);
tmpMeta9 = mmc_mk_box2(9, &Values_Value_LIST__desc, _vals);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = mmc_mk_some(tmpMeta9);
goto tmp3_done;
}
case 1: {
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
if (!listEmpty(tmp4_5)) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,1,1) == 0) goto tmp3_end;
tmpMeta10 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
if (11 != MMC_STRLEN(tmpMeta10) || strcmp(MMC_STRINGDATA(_OMC_LIT16), MMC_STRINGDATA(tmpMeta10)) != 0) goto tmp3_end;
if (optionNone(tmp4_4)) goto tmp3_end;
tmpMeta11 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_4), 1));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta11,6,1) == 0) goto tmp3_end;
_cache = tmp4_1;
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _inCurValue;
goto tmp3_done;
}
case 2: {
modelica_metatype tmpMeta12;
modelica_metatype tmpMeta13;
modelica_metatype tmpMeta14;
modelica_metatype tmpMeta15;
modelica_metatype tmpMeta16;
if (!listEmpty(tmp4_5)) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,1,1) == 0) goto tmp3_end;
tmpMeta12 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
if (5 != MMC_STRLEN(tmpMeta12) || strcmp(MMC_STRINGDATA(_OMC_LIT14), MMC_STRINGDATA(tmpMeta12)) != 0) goto tmp3_end;
if (optionNone(tmp4_4)) goto tmp3_end;
tmpMeta13 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_4), 1));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta13,5,2) == 0) goto tmp3_end;
tmpMeta14 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta13), 2));
tmpMeta15 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta13), 3));
_vals = tmpMeta14;
_dims = tmpMeta15;
_cache = tmp4_1;
_vals = listReverse(_vals);
tmpMeta16 = mmc_mk_box3(8, &Values_Value_ARRAY__desc, _vals, _dims);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = mmc_mk_some(tmpMeta16);
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: {
modelica_metatype tmpMeta17;
modelica_metatype tmpMeta18;
if (listEmpty(tmp4_5)) goto tmp3_end;
tmpMeta17 = MMC_CAR(tmp4_5);
tmpMeta18 = MMC_CDR(tmp4_5);
_vals = tmpMeta17;
_valueMatrix = tmpMeta18;
_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;
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: {
modelica_metatype tmpMeta6;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,5,2) == 0) goto tmp3_end;
tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 2));
if (!listEmpty(tmpMeta6)) goto tmp3_end;
tmp4 += 1;
tmp1 = 1;
goto tmp3_done;
}
case 1: {
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_integer tmp11;
modelica_metatype tmpMeta12;
modelica_metatype tmpMeta13;
modelica_metatype tmpMeta14;
modelica_integer tmp15;
modelica_metatype tmpMeta16;
modelica_boolean tmp17;
modelica_metatype tmpMeta18;
modelica_boolean tmp19;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,5,2) == 0) goto tmp3_end;
tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 2));
if (listEmpty(tmpMeta7)) goto tmp3_end;
tmpMeta8 = MMC_CAR(tmpMeta7);
tmpMeta9 = MMC_CDR(tmpMeta7);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta8,0,1) == 0) goto tmp3_end;
tmpMeta10 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta8), 2));
tmp11 = mmc_unbox_integer(tmpMeta10);
tmpMeta12 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 3));
if (listEmpty(tmpMeta12)) goto tmp3_end;
tmpMeta13 = MMC_CAR(tmpMeta12);
tmpMeta14 = MMC_CDR(tmpMeta12);
tmp15 = mmc_unbox_integer(tmpMeta13);
_indx = tmp11;
_vlst = tmpMeta9;
_dim = tmp15;
_dims = tmpMeta14;
_dim = ((modelica_integer) -1) + _dim;
tmpMeta16 = mmc_mk_cons(mmc_mk_integer(_dim), _dims);
_dims = tmpMeta16;
tmp17 = (_indx <= _dimSize);
if (1 != tmp17) goto goto_2;
tmpMeta18 = mmc_mk_box3(8, &Values_Value_ARRAY__desc, _vlst, _dims);
tmp19 = omc_Ceval_dimensionSliceInRange(threadData, tmpMeta18, _dimSize);
if (1 != tmp19) 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;
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: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,1,4) == 0) goto tmp3_end;
tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta6,6,2) == 0) goto tmp3_end;
tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta6), 2));
tmpMeta8 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 3));
if (!optionNone(tmpMeta8)) goto tmp3_end;
_cr = tmpMeta7;
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[2] __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: {
modelica_metatype tmpMeta6;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,2,1) == 0) goto tmp3_end;
tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta6,5,2) == 0) goto tmp3_end;
_cache = tmp4_1;
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _inSubscript;
goto tmp3_done;
}
case 2: {
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta12;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,2,1) == 0) goto tmp3_end;
tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
_e1 = tmpMeta7;
_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 tmp11_1;
tmp11_1 = _v1;
{
int tmp11;
{
switch (MMC_SWITCH_CAST(valueConstructor(tmp11_1))) {
case 3: {
tmpMeta8 = omc_ValuesUtil_valueExp(threadData, _v1, mmc_mk_none());
goto tmp10_done;
}
case 7: {
tmpMeta8 = omc_ValuesUtil_valueExp(threadData, _v1, mmc_mk_none());
goto tmp10_done;
}
case 6: {
tmpMeta8 = omc_ValuesUtil_valueExp(threadData, _v1, mmc_mk_none());
goto tmp10_done;
}
}
goto tmp10_end;
tmp10_end: ;
}
goto goto_9;
goto_9:;
goto goto_2;
goto tmp10_done;
tmp10_done:;
}
}
_e1_1 = tmpMeta8;
tmpMeta12 = mmc_mk_box2(5, &DAE_Subscript_INDEX__desc, _e1_1);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta12;
goto tmp3_done;
}
case 3: {
modelica_metatype tmpMeta13;
modelica_metatype tmpMeta14;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,1,1) == 0) goto tmp3_end;
tmpMeta13 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
_e1 = tmpMeta13;
_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));
tmpMeta14 = mmc_mk_box2(4, &DAE_Subscript_SLICE__desc, _e1_1);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta14;
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[2] __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: {
modelica_metatype tmpMeta6;
if (!listEmpty(tmp4_3)) goto tmp3_end;
_cache = tmp4_1;
tmp4 += 2;
tmpMeta6 = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta6;
goto tmp3_done;
}
case 1: {
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_integer tmp11;
modelica_metatype tmpMeta12;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta7 = MMC_CAR(tmp4_3);
tmpMeta8 = MMC_CDR(tmp4_3);
if (listEmpty(tmp4_4)) goto tmp3_end;
tmpMeta9 = MMC_CAR(tmp4_4);
tmpMeta10 = MMC_CDR(tmp4_4);
tmp11 = mmc_unbox_integer(tmpMeta9);
_sub = tmpMeta7;
_subs = tmpMeta8;
_dim = tmp11;
_dims = tmpMeta10;
_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);
tmpMeta12 = mmc_mk_cons(_sub_1, _subs_1);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta12;
goto tmp3_done;
}
case 2: {
modelica_metatype tmpMeta13;
modelica_metatype tmpMeta14;
modelica_metatype tmpMeta15;
modelica_metatype tmpMeta16;
modelica_integer tmp17;
modelica_boolean tmp18;
modelica_metatype tmpMeta20;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta13 = MMC_CAR(tmp4_3);
tmpMeta14 = MMC_CDR(tmp4_3);
if (listEmpty(tmp4_4)) goto tmp3_end;
tmpMeta15 = MMC_CAR(tmp4_4);
tmpMeta16 = MMC_CDR(tmp4_4);
tmp17 = mmc_unbox_integer(tmpMeta15);
_sub = tmpMeta13;
_subs = tmpMeta14;
_dim = tmp17;
_dims = tmpMeta16;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_5;
_msg = tmp4_6;
tmp18 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
omc_Ceval_cevalSubscript(threadData, _cache, _env, _sub, _dim, _impl, _msg, ((modelica_integer) 1) + _numIter, NULL);
tmp18 = 1;
goto goto_19;
goto_19:;
MMC_CATCH_INTERNAL(mmc_jumper)
if (tmp18) {goto goto_2;}
_cache = omc_Ceval_cevalSubscripts(threadData, _cache, _env, _subs, _dims, _impl, _msg, _numIter ,&_subs_1);
tmpMeta20 = mmc_mk_cons(_sub, _subs_1);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta20;
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[2] __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: {
modelica_metatype tmpMeta6;
if (!listEmpty(tmp4_4)) goto tmp3_end;
_cache = tmp4_1;
tmpMeta6 = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta6;
goto tmp3_done;
}
case 1: {
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
if (listEmpty(tmp4_4)) goto tmp3_end;
tmpMeta7 = MMC_CAR(tmp4_4);
tmpMeta8 = MMC_CDR(tmp4_4);
_subval = tmpMeta7;
_subvals = tmpMeta8;
_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);
tmpMeta9 = mmc_mk_cons(_res, _lst);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta9;
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[2] __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_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_integer tmp10 = 0;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_4,5,2) == 0) goto tmp3_end;
tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_4), 2));
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta7 = MMC_CAR(tmp4_3);
tmpMeta8 = MMC_CDR(tmp4_3);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta7,2,1) == 0) goto tmp3_end;
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta7), 2));
_lst = tmpMeta6;
_exp = tmpMeta9;
_subs = tmpMeta8;
_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 tmp13_1;
tmp13_1 = _v;
{
volatile mmc_switch_type tmp13;
int tmp14;
tmp13 = 0;
for (; tmp13 < 2; tmp13++) {
switch (MMC_SWITCH_CAST(tmp13)) {
case 0: {
modelica_metatype tmpMeta15;
modelica_integer tmp16;
if (mmc__uniontype__metarecord__typedef__equal(tmp13_1,0,1) == 0) goto tmp12_end;
tmpMeta15 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp13_1), 2));
tmp16 = mmc_unbox_integer(tmpMeta15);
_n = tmp16;
tmp10 = _n;
goto tmp12_done;
}
case 1: {
modelica_metatype tmpMeta17;
modelica_integer tmp18;
if (mmc__uniontype__metarecord__typedef__equal(tmp13_1,4,2) == 0) goto tmp12_end;
tmpMeta17 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp13_1), 3));
tmp18 = mmc_unbox_integer(tmpMeta17);
_n = tmp18;
tmp10 = _n;
goto tmp12_done;
}
}
goto tmp12_end;
tmp12_end: ;
}
goto goto_11;
goto_11:;
goto goto_2;
goto tmp12_done;
tmp12_done:;
}
}
_n = tmp10;
_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: {
modelica_metatype tmpMeta19;
modelica_metatype tmpMeta20;
modelica_metatype tmpMeta21;
modelica_metatype tmpMeta22;
modelica_metatype tmpMeta23;
modelica_metatype tmpMeta24;
modelica_metatype tmpMeta25;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_4,5,2) == 0) goto tmp3_end;
tmpMeta19 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_4), 2));
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta20 = MMC_CAR(tmp4_3);
tmpMeta21 = MMC_CDR(tmp4_3);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta20,1,1) == 0) goto tmp3_end;
tmpMeta22 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta20), 2));
_lst = tmpMeta19;
_exp = tmpMeta22;
_subs = tmpMeta21;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_5;
_msg = tmp4_6;
tmpMeta25 = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta23);
_cache = tmpMeta25;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta23,5,2) == 0) goto goto_2;
tmpMeta24 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta23), 2));
_sliceLst = tmpMeta24;
_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: {
modelica_metatype tmpMeta26;
modelica_metatype tmpMeta27;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_4,5,2) == 0) goto tmp3_end;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta26 = MMC_CAR(tmp4_3);
tmpMeta27 = MMC_CDR(tmp4_3);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta26,0,0) == 0) goto tmp3_end;
_subval = tmp4_4;
_subs = tmpMeta27;
_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[2] __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: {
modelica_metatype tmpMeta6;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_4,2,2) == 0) goto tmp3_end;
tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_4), 2));
_v = tmpMeta6;
_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_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
modelica_metatype tmpMeta13;
modelica_boolean tmp14;
modelica_metatype tmpMeta15;
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;
tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_6), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,1,3) == 0) goto tmp3_end;
tmpMeta8 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
if (!listEmpty(tmpMeta9)) goto tmp3_end;
_info = tmpMeta7;
_ty = tmpMeta8;
_cache = tmp4_1;
_env = tmp4_2;
tmpMeta10 = omc_Types_arrayElementType(threadData, _ty);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta10,9,3) == 0) goto goto_2;
tmpMeta11 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta10), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta11,3,1) == 0) goto goto_2;
tmpMeta12 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta11), 2));
tmpMeta13 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta10), 3));
_tpath = tmpMeta12;
_vl = tmpMeta13;
tmp14 = omc_Types_allHaveBindings(threadData, _vl);
if (1 != tmp14) goto goto_2;
tmpMeta15 = MMC_REFSTRUCTLIT(mmc_nil);
_binding = omc_InstBinding_makeRecordBinding(threadData, _cache, _env, _tpath, _ty, _vl, tmpMeta15, _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 tmp16;
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;
tmp16 = omc_Flags_isSet(threadData, _OMC_LIT26);
if (1 != tmp16) goto goto_2;
omc_Debug_trace(threadData, _OMC_LIT27);
goto goto_2;
goto tmp3_done;
}
case 3: {
modelica_metatype tmpMeta17;
modelica_metatype tmpMeta18;
modelica_metatype tmpMeta19;
modelica_metatype tmpMeta20;
modelica_metatype tmpMeta21;
modelica_metatype tmpMeta22;
modelica_metatype tmpMeta23;
modelica_metatype tmpMeta24;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_4,1,4) == 0) goto tmp3_end;
tmpMeta17 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_4), 2));
tmpMeta18 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_4), 4));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta18,0,0) == 0) goto tmp3_end;
_exp = tmpMeta17;
_cache = tmp4_1;
_env = tmp4_2;
_cr = tmp4_3;
_impl = tmp4_5;
_msg = tmp4_6;
tmpMeta19 = _exp;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta19,27,3) == 0) goto goto_2;
tmpMeta20 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta19), 2));
tmpMeta21 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta20), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta21,1,1) == 0) goto goto_2;
tmpMeta22 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta19), 4));
if (listEmpty(tmpMeta22)) goto goto_2;
tmpMeta23 = MMC_CAR(tmpMeta22);
tmpMeta24 = MMC_CDR(tmpMeta22);
if (!listEmpty(tmpMeta24)) 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: {
modelica_metatype tmpMeta25;
modelica_metatype tmpMeta26;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_4,1,4) == 0) goto tmp3_end;
tmpMeta25 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_4), 3));
if (optionNone(tmpMeta25)) goto tmp3_end;
tmpMeta26 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta25), 1));
_e_val = tmpMeta26;
_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: {
modelica_metatype tmpMeta27;
modelica_metatype tmpMeta28;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_4,1,4) == 0) goto tmp3_end;
tmpMeta27 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_4), 2));
tmpMeta28 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_4), 4));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta28,0,0) == 0) goto tmp3_end;
_exp = tmpMeta27;
_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_metatype tmpMeta29;
modelica_metatype tmpMeta30;
modelica_boolean tmp31;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_4,1,4) == 0) goto tmp3_end;
tmpMeta29 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_4), 2));
tmpMeta30 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_4), 4));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta30,1,0) == 0) goto tmp3_end;
_exp = tmpMeta29;
_cache = tmp4_1;
_env = tmp4_2;
_cr = tmp4_3;
_impl = tmp4_5;
_msg = tmp4_6;
tmp4 += 1;
tmp31 = omc_Ceval_isRecursiveBinding(threadData, _cr, _exp);
if (0 != tmp31) 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_metatype tmpMeta32;
modelica_metatype tmpMeta33;
modelica_boolean tmp34;
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;
tmpMeta32 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_4), 2));
tmpMeta33 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_4), 4));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta33,2,0) == 0) goto tmp3_end;
_exp = tmpMeta32;
tmp34 = omc_Flags_isSet(threadData, _OMC_LIT26);
if (1 != tmp34) 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 tmp35;
modelica_metatype tmpMeta36;
_env = tmp4_2;
_e1 = tmp4_3;
tmp35 = omc_Flags_isSet(threadData, _OMC_LIT26);
if (1 != tmp35) goto goto_2;
_s1 = omc_ComponentReference_printComponentRefStr(threadData, _e1);
_s2 = omc_Types_printBindingStr(threadData, _inBinding);
_str = omc_FGraph_printGraphPathStr(threadData, _env);
tmpMeta36 = 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(tmpMeta36);
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[2] __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: {
modelica_metatype tmpMeta6;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,0,0) == 0) goto tmp3_end;
if (optionNone(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 1));
goto goto_2;
goto tmp3_done;
}
case 1: {
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
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))
{
tmpMeta7 = stringAppend(_OMC_LIT34,_str);
tmpMeta8 = stringAppend(tmpMeta7,_OMC_LIT35);
tmpMeta9 = stringAppend(tmpMeta8,_scope_str);
omc_Debug_traceln(threadData, tmpMeta9);
}
_s1 = omc_FGraph_printGraphPathStr(threadData, _inEnv);
_s2 = omc_ComponentReference_printComponentRefStr(threadData, _inCref);
_s3 = omc_Types_printTypeStr(threadData, _inType);
_v = omc_Types_typeToValue(threadData, _inType);
tmpMeta10 = mmc_mk_box5(19, &Values_Value_EMPTY__desc, _s1, _s2, _v, _s3);
_v = tmpMeta10;
tmpMeta[0+0] = _inCache;
tmpMeta[0+1] = _v;
goto tmp3_done;
}
case 2: {
modelica_metatype tmpMeta11;
modelica_boolean tmp12;
modelica_boolean tmp13;
tmpMeta11 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 4));
_variability = tmpMeta11;
tmp12 = ((omc_SCodeUtil_isParameterOrConst(threadData, _variability) || _inImpl) || omc_FGraph_inForLoopScope(threadData, _inEnv));
if (1 != tmp12) goto goto_2;
tmp13 = omc_Ceval_crefEqualValue(threadData, _inCref, _inBinding);
if (0 != tmp13) 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[2] __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_metatype tmpMeta6;
modelica_boolean tmp7;
modelica_metatype tmpMeta9;
if (0 != tmp4_4) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_5,0,1) == 0) goto tmp3_end;
tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_5), 2));
_info = tmpMeta6;
_cache = tmp4_1;
_env = tmp4_2;
_c = tmp4_3;
tmp7 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
omc_Lookup_lookupVar(threadData, _cache, _env, _c, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
tmp7 = 1;
goto goto_8;
goto_8:;
MMC_CATCH_INTERNAL(mmc_jumper)
if (tmp7) {goto goto_2;}
_scope_str = omc_FGraph_printGraphPathStr(threadData, _env);
_str = omc_ComponentReference_printComponentRefStr(threadData, _c);
tmpMeta9 = mmc_mk_cons(_str, mmc_mk_cons(_scope_str, MMC_REFSTRUCTLIT(mmc_nil)));
omc_Error_addSourceMessage(threadData, _OMC_LIT40, tmpMeta9, _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 tmpMeta1;
modelica_metatype _expLstNew = NULL;
modelica_metatype _v = NULL;
modelica_metatype tmpMeta2;
modelica_metatype tmpMeta3;
modelica_metatype tmpMeta4;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_outCache = _inCache;
tmpMeta1 = MMC_REFSTRUCTLIT(mmc_nil);
_outValuesValueLst = tmpMeta1;
_expLstNew = _inExpExpLst;
{
modelica_metatype _exp;
for (tmpMeta2 = _expLstNew; !listEmpty(tmpMeta2); tmpMeta2=MMC_CDR(tmpMeta2))
{
_exp = MMC_CAR(tmpMeta2);
_outCache = omc_Ceval_ceval(threadData, _outCache, _inEnv, _exp, _inBoolean, _inMsg, ((modelica_integer) 1) + _numIter ,&_v);
tmpMeta3 = mmc_mk_cons(_v, _outValuesValueLst);
_outValuesValueLst = tmpMeta3;
}
}
_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 tmpMeta1;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
tmpMeta1 = mmc_mk_box3(7, &Values_Value_ENUM__LITERAL__desc, _name, mmc_mk_integer(_index));
_enumValue = tmpMeta1;
_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 tmpMeta1;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;
tmp4_1 = _enumType;
{
modelica_metatype _enum_type = NULL;
modelica_metatype _enum_names = NULL;
modelica_metatype _enum_paths = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 1; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,5,5) == 0) goto tmp3_end;
tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 3));
tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 4));
_enum_type = tmpMeta6;
_enum_names = tmpMeta7;
if((!(_startIndex <= _stopIndex)))
{
goto goto_2;
}
_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);
tmpMeta1 = omc_List_mapFold(threadData, _enum_paths, boxvar_Ceval_makeEnumValue, mmc_mk_integer(_startIndex), NULL);
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_enumValList = tmpMeta1;
_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 tmpMeta1;
modelica_metatype tmpMeta2;
modelica_metatype tmpMeta3;
modelica_metatype tmpMeta4;
modelica_metatype tmpMeta5;
modelica_metatype tmpMeta6;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
tmpMeta1 = _rangeExp;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta1,18,4) == 0) MMC_THROW_INTERNAL();
tmpMeta2 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta1), 2));
tmpMeta3 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta1), 3));
tmpMeta4 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta1), 4));
tmpMeta5 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta1), 5));
_range_ty = tmpMeta2;
_start = tmpMeta3;
_step = tmpMeta4;
_stop = tmpMeta5;
_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 tmp9_1;modelica_metatype tmp9_2;
tmp9_1 = _vstart;
tmp9_2 = _vstop;
{
int tmp9;
{
switch (MMC_SWITCH_CAST(valueConstructor(tmp9_1))) {
case 6: {
modelica_metatype tmpMeta10;
if (mmc__uniontype__metarecord__typedef__equal(tmp9_1,3,1) == 0) goto tmp8_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp9_2,3,1) == 0) goto tmp8_end;
{
modelica_metatype __omcQ_24tmpVar1;
modelica_metatype* tmp11;
modelica_metatype tmpMeta12;
modelica_metatype __omcQ_24tmpVar0;
modelica_integer tmp13;
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)))));
tmpMeta12 = MMC_REFSTRUCTLIT(mmc_nil);
__omcQ_24tmpVar1 = tmpMeta12;
tmp11 = &__omcQ_24tmpVar1;
while(1) {
tmp13 = 1;
if (!listEmpty(_b_loopVar)) {
_b = MMC_CAR(_b_loopVar);
_b_loopVar = MMC_CDR(_b_loopVar);
tmp13--;
}
if (tmp13 == 0) {
__omcQ_24tmpVar0 = omc_ValuesUtil_makeBoolean(threadData, mmc_unbox_boolean(_b));
*tmp11 = mmc_mk_cons(__omcQ_24tmpVar0,0);
tmp11 = &MMC_CDR(*tmp11);
} else if (tmp13 == 1) {
break;
} else {
goto goto_7;
}
}
*tmp11 = mmc_mk_nil();
tmpMeta10 = __omcQ_24tmpVar1;
}
tmpMeta6 = tmpMeta10;
goto tmp8_done;
}
case 3: {
modelica_metatype tmpMeta14;
modelica_metatype tmpMeta15;
modelica_integer tmp16;
modelica_metatype tmpMeta17;
modelica_metatype tmpMeta18;
if (mmc__uniontype__metarecord__typedef__equal(tmp9_1,0,1) == 0) goto tmp8_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp9_2,0,1) == 0) goto tmp8_end;
if(isSome(_step))
{
tmpMeta17 = omc_Ceval_ceval(threadData, _outCache, _env, omc_Util_getOption(threadData, _step), _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta14);
_outCache = tmpMeta17;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta14,0,1) == 0) goto goto_7;
tmpMeta15 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta14), 2));
tmp16 = mmc_unbox_integer(tmpMeta15);
_istep = tmp16;
}
else
{
_istep = ((modelica_integer) 1);
}
{
modelica_metatype __omcQ_24tmpVar3;
modelica_metatype* tmp19;
modelica_metatype tmpMeta20;
modelica_metatype __omcQ_24tmpVar2;
modelica_integer tmp21;
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)))));
tmpMeta20 = MMC_REFSTRUCTLIT(mmc_nil);
__omcQ_24tmpVar3 = tmpMeta20;
tmp19 = &__omcQ_24tmpVar3;
while(1) {
tmp21 = 1;
if (!listEmpty(_i_loopVar)) {
_i = MMC_CAR(_i_loopVar);
_i_loopVar = MMC_CDR(_i_loopVar);
tmp21--;
}
if (tmp21 == 0) {
__omcQ_24tmpVar2 = omc_ValuesUtil_makeInteger(threadData, mmc_unbox_integer(_i));
*tmp19 = mmc_mk_cons(__omcQ_24tmpVar2,0);
tmp19 = &MMC_CDR(*tmp19);
} else if (tmp21 == 1) {
break;
} else {
goto goto_7;
}
}
*tmp19 = mmc_mk_nil();
tmpMeta18 = __omcQ_24tmpVar3;
}
tmpMeta6 = tmpMeta18;
goto tmp8_done;
}
case 7: {
if (mmc__uniontype__metarecord__typedef__equal(tmp9_1,4,2) == 0) goto tmp8_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp9_2,4,2) == 0) goto tmp8_end;
tmpMeta6 = 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 tmp8_done;
}
case 4: {
modelica_metatype tmpMeta22;
modelica_metatype tmpMeta23;
modelica_real tmp24;
modelica_metatype tmpMeta25;
modelica_metatype tmpMeta26;
if (mmc__uniontype__metarecord__typedef__equal(tmp9_1,1,1) == 0) goto tmp8_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp9_2,1,1) == 0) goto tmp8_end;
if(isSome(_step))
{
tmpMeta25 = omc_Ceval_ceval(threadData, _outCache, _env, omc_Util_getOption(threadData, _step), _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta22);
_outCache = tmpMeta25;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta22,1,1) == 0) goto goto_7;
tmpMeta23 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta22), 2));
tmp24 = mmc_unbox_real(tmpMeta23);
_rstep = tmp24;
}
else
{
_rstep = 1.0;
}
{
modelica_metatype __omcQ_24tmpVar5;
modelica_metatype* tmp27;
modelica_metatype tmpMeta28;
modelica_metatype __omcQ_24tmpVar4;
modelica_integer tmp29;
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)))));
tmpMeta28 = MMC_REFSTRUCTLIT(mmc_nil);
__omcQ_24tmpVar5 = tmpMeta28;
tmp27 = &__omcQ_24tmpVar5;
while(1) {
tmp29 = 1;
if (!listEmpty(_r_loopVar)) {
_r = MMC_CAR(_r_loopVar);
_r_loopVar = MMC_CDR(_r_loopVar);
tmp29--;
}
if (tmp29 == 0) {
__omcQ_24tmpVar4 = omc_ValuesUtil_makeReal(threadData, mmc_unbox_real(_r));
*tmp27 = mmc_mk_cons(__omcQ_24tmpVar4,0);
tmp27 = &MMC_CDR(*tmp27);
} else if (tmp29 == 1) {
break;
} else {
goto goto_7;
}
}
*tmp27 = mmc_mk_nil();
tmpMeta26 = __omcQ_24tmpVar5;
}
tmpMeta6 = tmpMeta26;
goto tmp8_done;
}
}
goto tmp8_end;
tmp8_end: ;
}
goto goto_7;
goto_7:;
MMC_THROW_INTERNAL();
goto tmp8_done;
tmp8_done:;
}
}
_arr = tmpMeta6;
_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 tmpMeta10;
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;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
tmp6 = omc_Flags_isSet(threadData, _OMC_LIT44);
if (1 != tmp6) goto goto_2;
tmpMeta7 = stringAppend(_OMC_LIT45,omc_ValuesUtil_printValStr(threadData, _inValue1));
tmpMeta8 = stringAppend(tmpMeta7,omc_ExpressionDump_relopSymbol(threadData, _inOperator));
tmpMeta9 = stringAppend(tmpMeta8,omc_ValuesUtil_printValStr(threadData, _inValue2));
omc_Debug_traceln(threadData, tmpMeta9);
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;
tmpMeta10 = mmc_mk_box2(6, &Values_Value_BOOL__desc, mmc_mk_boolean(_result));
_outValue = tmpMeta10;
_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[2] __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_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_integer tmp10;
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
modelica_metatype tmpMeta13;
if (listEmpty(tmp4_2)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_2);
tmpMeta7 = MMC_CDR(tmp4_2);
_dim = tmpMeta6;
_rest_dims = tmpMeta7;
_cache = tmp4_1;
_cache = omc_Ceval_cevalBuiltinFill2(threadData, _cache, _inEnv, _inFillValue, _rest_dims, _inImpl, _inMsg, _numIter ,&_fill_value);
tmpMeta11 = omc_Ceval_ceval(threadData, _cache, _inEnv, _dim, _inImpl, _inMsg, ((modelica_integer) 1) + _numIter, &tmpMeta8);
_cache = tmpMeta11;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta8,0,1) == 0) goto goto_2;
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta8), 2));
tmp10 = mmc_unbox_integer(tmpMeta9);
_int_dim = tmp10;
_fill_vals = omc_List_fill(threadData, _fill_value, _int_dim);
_array_dims = omc_ValuesUtil_valueDimensions(threadData, _fill_value);
tmpMeta12 = mmc_mk_cons(mmc_mk_integer(_int_dim), _array_dims);
_array_dims = tmpMeta12;
tmpMeta13 = mmc_mk_box3(8, &Values_Value_ARRAY__desc, _fill_vals, _array_dims);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta13;
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[2] __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: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
if (listEmpty(tmp4_2)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_2);
tmpMeta7 = MMC_CDR(tmp4_2);
_fill_exp = tmpMeta6;
_dims = tmpMeta7;
_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[2] __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: {
modelica_metatype tmpMeta6;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,6,2) == 0) goto tmp3_end;
tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
_cr = tmpMeta6;
_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: {
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,17,3) == 0) goto tmp3_end;
tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta7,6,2) == 0) goto tmp3_end;
tmpMeta8 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta7), 3));
_dims = tmpMeta8;
_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: {
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
_cache = tmp4_1;
_env = tmp4_2;
_exp = tmp4_3;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta11 = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta9);
_cache = tmpMeta11;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta9,5,2) == 0) goto goto_2;
tmpMeta10 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta9), 3));
_sizelst = tmpMeta10;
_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 tmpMeta1;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
volatile modelica_metatype tmp4_1;volatile modelica_integer tmp4_2;volatile modelica_metatype tmp4_3;
tmp4_1 = _inValuesValueLst1;
tmp4_2 = _inInteger2;
tmp4_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 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_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_integer tmp8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_3);
tmpMeta7 = MMC_CDR(tmp4_3);
tmp8 = mmc_unbox_integer(tmpMeta6);
_dim1 = tmp8;
_vlst = tmp4_1;
_indx = tmp4_2;
if((!(_indx <= _dim1)))
{
goto goto_2;
}
_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);
tmpMeta10 = mmc_mk_box3(8, &Values_Value_ARRAY__desc, _transposed_row, _inDims);
tmpMeta9 = mmc_mk_cons(tmpMeta10, _rest);
tmpMeta1 = tmpMeta9;
goto tmp3_done;
}
case 1: {
modelica_metatype tmpMeta11;
tmpMeta11 = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta1 = tmpMeta11;
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:;
}
}
_outValuesValueLst = tmpMeta1;
_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[2] __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_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
modelica_metatype tmpMeta13;
modelica_metatype tmpMeta14;
modelica_integer tmp15;
modelica_metatype tmpMeta16;
modelica_metatype tmpMeta17;
modelica_metatype tmpMeta18;
modelica_metatype tmpMeta19;
modelica_metatype tmpMeta20;
modelica_metatype tmpMeta21;
modelica_integer tmp22;
modelica_metatype tmpMeta23;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_3);
tmpMeta7 = MMC_CDR(tmp4_3);
if (listEmpty(tmpMeta7)) goto tmp3_end;
tmpMeta8 = MMC_CAR(tmpMeta7);
tmpMeta9 = MMC_CDR(tmpMeta7);
if (!listEmpty(tmpMeta9)) goto tmp3_end;
_xe = tmpMeta6;
_ye = tmpMeta8;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta16 = omc_Ceval_ceval(threadData, _cache, _env, _xe, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta10);
_cache = tmpMeta16;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta10,5,2) == 0) goto goto_2;
tmpMeta11 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta10), 2));
tmpMeta12 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta10), 3));
if (listEmpty(tmpMeta12)) goto goto_2;
tmpMeta13 = MMC_CAR(tmpMeta12);
tmpMeta14 = MMC_CDR(tmpMeta12);
tmp15 = mmc_unbox_integer(tmpMeta13);
if (3 != tmp15) goto goto_2;
if (!listEmpty(tmpMeta14)) goto goto_2;
_xv = tmpMeta11;
tmpMeta23 = omc_Ceval_ceval(threadData, _cache, _env, _ye, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta17);
_cache = tmpMeta23;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta17,5,2) == 0) goto goto_2;
tmpMeta18 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta17), 2));
tmpMeta19 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta17), 3));
if (listEmpty(tmpMeta19)) goto goto_2;
tmpMeta20 = MMC_CAR(tmpMeta19);
tmpMeta21 = MMC_CDR(tmpMeta19);
tmp22 = mmc_unbox_integer(tmpMeta20);
if (3 != tmp22) goto goto_2;
if (!listEmpty(tmpMeta21)) goto goto_2;
_yv = tmpMeta18;
_res = omc_ValuesUtil_crossProduct(threadData, _xv, _yv);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _res;
goto tmp3_done;
}
case 1: {
modelica_metatype tmpMeta24;
modelica_metatype tmpMeta25;
modelica_metatype tmpMeta26;
modelica_metatype tmpMeta27;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_5,0,1) == 0) goto tmp3_end;
tmpMeta24 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_5), 2));
_info = tmpMeta24;
tmpMeta25 = mmc_mk_box2(22, &DAE_Exp_TUPLE__desc, _inExpExpLst);
tmpMeta26 = stringAppend(_OMC_LIT47,omc_ExpressionDump_printExpStr(threadData, tmpMeta25));
_str = tmpMeta26;
tmpMeta27 = mmc_mk_cons(_str, MMC_REFSTRUCTLIT(mmc_nil));
omc_Error_addSourceMessage(threadData, _OMC_LIT50, tmpMeta27, _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[2] __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_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
modelica_metatype tmpMeta13;
modelica_metatype tmpMeta14;
modelica_integer tmp15;
modelica_metatype tmpMeta16;
modelica_metatype tmpMeta17;
modelica_metatype tmpMeta31;
modelica_metatype tmpMeta32;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_3);
tmpMeta7 = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta7)) goto tmp3_end;
_exp = tmpMeta6;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta8 = omc_Expression_typeof(threadData, _exp);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta8,6,2) == 0) goto goto_2;
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta8), 2));
_ty = tmpMeta9;
tmpMeta16 = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta10);
_cache = tmpMeta16;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta10,5,2) == 0) goto goto_2;
tmpMeta11 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta10), 2));
tmpMeta12 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta10), 3));
if (listEmpty(tmpMeta12)) goto goto_2;
tmpMeta13 = MMC_CAR(tmpMeta12);
tmpMeta14 = MMC_CDR(tmpMeta12);
tmp15 = mmc_unbox_integer(tmpMeta13);
if (!listEmpty(tmpMeta14)) goto goto_2;
_vals = tmpMeta11;
_dimension = tmp15;
_zero = omc_ValuesUtil_makeZero(threadData, _ty);
{
modelica_metatype __omcQ_24tmpVar9;
modelica_metatype* tmp18;
modelica_metatype tmpMeta19;
modelica_metatype tmpMeta20;
modelica_metatype tmpMeta26;
modelica_metatype tmpMeta27;
modelica_metatype __omcQ_24tmpVar8;
modelica_integer tmp28;
modelica_integer tmp29;
modelica_integer tmp30;
modelica_integer _j;
tmp29 = 1;
tmp30 = _dimension;
_j = ((modelica_integer) 1);
_j = (((modelica_integer) 1) /* Range start-value */)-tmp29;
tmpMeta19 = MMC_REFSTRUCTLIT(mmc_nil);
__omcQ_24tmpVar9 = tmpMeta19;
tmp18 = &__omcQ_24tmpVar9;
while(1) {
tmp28 = 1;
if (tmp29 > 0 ? _j+tmp29 <= tmp30 : _j+tmp29 >= tmp30) {
_j += tmp29;
tmp28--;
}
if (tmp28 == 0) {
{
modelica_metatype __omcQ_24tmpVar7;
modelica_metatype* tmp21;
modelica_metatype tmpMeta22;
modelica_metatype __omcQ_24tmpVar6;
modelica_integer tmp23;
modelica_integer tmp24;
modelica_integer tmp25;
modelica_integer _i;
tmp24 = 1;
tmp25 = _dimension;
_i = ((modelica_integer) 1);
_i = (((modelica_integer) 1) /* Range start-value */)-tmp24;
tmpMeta22 = MMC_REFSTRUCTLIT(mmc_nil);
__omcQ_24tmpVar7 = tmpMeta22;
tmp21 = &__omcQ_24tmpVar7;
while(1) {
tmp23 = 1;
if (tmp24 > 0 ? _i+tmp24 <= tmp25 : _i+tmp24 >= tmp25) {
_i += tmp24;
tmp23--;
}
if (tmp23 == 0) {
__omcQ_24tmpVar6 = ((_i == _j)?listGet(_vals, _i):_zero);
*tmp21 = mmc_mk_cons(__omcQ_24tmpVar6,0);
tmp21 = &MMC_CDR(*tmp21);
} else if (tmp23 == 1) {
break;
} else {
goto goto_2;
}
}
*tmp21 = mmc_mk_nil();
tmpMeta20 = __omcQ_24tmpVar7;
}
tmpMeta26 = mmc_mk_cons(mmc_mk_integer(_dimension), MMC_REFSTRUCTLIT(mmc_nil));
tmpMeta27 = mmc_mk_box3(8, &Values_Value_ARRAY__desc, tmpMeta20, tmpMeta26);
__omcQ_24tmpVar8 = tmpMeta27;
*tmp18 = mmc_mk_cons(__omcQ_24tmpVar8,0);
tmp18 = &MMC_CDR(*tmp18);
} else if (tmp28 == 1) {
break;
} else {
goto goto_2;
}
}
*tmp18 = mmc_mk_nil();
tmpMeta17 = __omcQ_24tmpVar9;
}
tmpMeta31 = mmc_mk_cons(mmc_mk_integer(_dimension), mmc_mk_cons(mmc_mk_integer(_dimension), MMC_REFSTRUCTLIT(mmc_nil)));
tmpMeta32 = mmc_mk_box3(8, &Values_Value_ARRAY__desc, tmpMeta17, tmpMeta31);
_res = tmpMeta32;
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _res;
goto tmp3_done;
}
case 1: {
modelica_metatype tmpMeta33;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_5,0,1) == 0) goto tmp3_end;
tmpMeta33 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_5), 2));
_info = tmpMeta33;
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[2] __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_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_integer tmp10;
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_3);
tmpMeta7 = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta7)) goto tmp3_end;
_exp = tmpMeta6;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta11 = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta8);
_cache = tmpMeta11;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta8,4,2) == 0) goto goto_2;
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta8), 3));
tmp10 = mmc_unbox_integer(tmpMeta9);
_ri = tmp10;
tmpMeta12 = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(_ri));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta12;
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[2] __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: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_3);
tmpMeta7 = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta7)) goto tmp3_end;
_exp = tmpMeta6;
_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[2] __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_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_boolean tmp8 = 0;
modelica_metatype tmpMeta18;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_3);
tmpMeta7 = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta7)) goto tmp3_end;
_exp = tmpMeta6;
_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 tmp11_1;
tmp11_1 = _v;
{
int tmp11;
{
switch (MMC_SWITCH_CAST(valueConstructor(tmp11_1))) {
case 4: {
modelica_metatype tmpMeta12;
modelica_real tmp13;
if (mmc__uniontype__metarecord__typedef__equal(tmp11_1,1,1) == 0) goto tmp10_end;
tmpMeta12 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp11_1), 2));
tmp13 = mmc_unbox_real(tmpMeta12);
_rv = tmp13;
tmp8 = (!(_rv == 0.0));
goto tmp10_done;
}
case 3: {
modelica_metatype tmpMeta14;
modelica_integer tmp15;
if (mmc__uniontype__metarecord__typedef__equal(tmp11_1,0,1) == 0) goto tmp10_end;
tmpMeta14 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp11_1), 2));
tmp15 = mmc_unbox_integer(tmpMeta14);
_iv = tmp15;
tmp8 = (!(_iv == ((modelica_integer) 0)));
goto tmp10_done;
}
case 6: {
modelica_metatype tmpMeta16;
modelica_integer tmp17;
if (mmc__uniontype__metarecord__typedef__equal(tmp11_1,3,1) == 0) goto tmp10_end;
tmpMeta16 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp11_1), 2));
tmp17 = mmc_unbox_integer(tmpMeta16);
_bv = tmp17;
tmp8 = _bv;
goto tmp10_done;
}
}
goto tmp10_end;
tmp10_end: ;
}
goto goto_9;
goto_9:;
goto goto_2;
goto tmp10_done;
tmp10_done:;
}
}
_b = tmp8;
tmpMeta18 = mmc_mk_box2(6, &Values_Value_BOOL__desc, mmc_mk_boolean(_b));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta18;
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[2] __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_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_real tmp10;
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_3);
tmpMeta7 = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta7)) goto tmp3_end;
_exp = tmpMeta6;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta11 = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta8);
_cache = tmpMeta11;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta8,1,1) == 0) goto goto_2;
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta8), 2));
tmp10 = mmc_unbox_real(tmpMeta9);
_rv = tmp10;
_ri = ((modelica_integer)floor(_rv));
tmpMeta12 = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(_ri));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta12;
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[2] __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_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
modelica_real tmp12;
modelica_metatype tmpMeta13;
modelica_metatype tmpMeta14;
modelica_metatype tmpMeta15;
modelica_real tmp16;
modelica_metatype tmpMeta17;
modelica_metatype tmpMeta18;
modelica_metatype tmpMeta19;
modelica_real tmp20;
modelica_metatype tmpMeta21;
modelica_metatype tmpMeta22;
modelica_metatype tmpMeta23;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_3);
tmpMeta7 = MMC_CDR(tmp4_3);
if (listEmpty(tmpMeta7)) goto tmp3_end;
tmpMeta8 = MMC_CAR(tmpMeta7);
tmpMeta9 = MMC_CDR(tmpMeta7);
if (!listEmpty(tmpMeta9)) goto tmp3_end;
_exp1 = tmpMeta6;
_exp2 = tmpMeta8;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta13 = omc_Ceval_ceval(threadData, _cache, _env, _exp1, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta10);
_cache = tmpMeta13;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta10,1,1) == 0) goto goto_2;
tmpMeta11 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta10), 2));
tmp12 = mmc_unbox_real(tmpMeta11);
_rv1 = tmp12;
tmpMeta17 = omc_Ceval_ceval(threadData, _cache, _env, _exp2, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta14);
_cache = tmpMeta17;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta14,1,1) == 0) goto goto_2;
tmpMeta15 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta14), 2));
tmp16 = mmc_unbox_real(tmpMeta15);
_rv2 = tmp16;
tmpMeta21 = mmc_mk_cons(_exp1, mmc_mk_cons(_exp2, MMC_REFSTRUCTLIT(mmc_nil)));
tmpMeta22 = omc_Ceval_cevalBuiltinDiv(threadData, _cache, _env, tmpMeta21, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta18);
_cache = tmpMeta22;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta18,1,1) == 0) goto goto_2;
tmpMeta19 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta18), 2));
tmp20 = mmc_unbox_real(tmpMeta19);
_dr = tmp20;
_rvd = _rv1 - ((_rv2) * (_dr));
tmpMeta23 = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rvd));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta23;
goto tmp3_done;
}
case 1: {
modelica_metatype tmpMeta24;
modelica_metatype tmpMeta25;
modelica_metatype tmpMeta26;
modelica_metatype tmpMeta27;
modelica_metatype tmpMeta28;
modelica_metatype tmpMeta29;
modelica_integer tmp30;
modelica_metatype tmpMeta31;
modelica_metatype tmpMeta32;
modelica_metatype tmpMeta33;
modelica_real tmp34;
modelica_metatype tmpMeta35;
modelica_metatype tmpMeta36;
modelica_metatype tmpMeta37;
modelica_real tmp38;
modelica_metatype tmpMeta39;
modelica_metatype tmpMeta40;
modelica_metatype tmpMeta41;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta24 = MMC_CAR(tmp4_3);
tmpMeta25 = MMC_CDR(tmp4_3);
if (listEmpty(tmpMeta25)) goto tmp3_end;
tmpMeta26 = MMC_CAR(tmpMeta25);
tmpMeta27 = MMC_CDR(tmpMeta25);
if (!listEmpty(tmpMeta27)) goto tmp3_end;
_exp1 = tmpMeta24;
_exp2 = tmpMeta26;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta31 = omc_Ceval_ceval(threadData, _cache, _env, _exp1, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta28);
_cache = tmpMeta31;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta28,0,1) == 0) goto goto_2;
tmpMeta29 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta28), 2));
tmp30 = mmc_unbox_integer(tmpMeta29);
_ri = tmp30;
_rv1 = ((modelica_real)_ri);
tmpMeta35 = omc_Ceval_ceval(threadData, _cache, _env, _exp2, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta32);
_cache = tmpMeta35;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta32,1,1) == 0) goto goto_2;
tmpMeta33 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta32), 2));
tmp34 = mmc_unbox_real(tmpMeta33);
_rv2 = tmp34;
tmpMeta39 = mmc_mk_cons(_exp1, mmc_mk_cons(_exp2, MMC_REFSTRUCTLIT(mmc_nil)));
tmpMeta40 = omc_Ceval_cevalBuiltinDiv(threadData, _cache, _env, tmpMeta39, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta36);
_cache = tmpMeta40;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta36,1,1) == 0) goto goto_2;
tmpMeta37 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta36), 2));
tmp38 = mmc_unbox_real(tmpMeta37);
_dr = tmp38;
_rvd = _rv1 - ((_rv2) * (_dr));
tmpMeta41 = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rvd));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta41;
goto tmp3_done;
}
case 2: {
modelica_metatype tmpMeta42;
modelica_metatype tmpMeta43;
modelica_metatype tmpMeta44;
modelica_metatype tmpMeta45;
modelica_metatype tmpMeta46;
modelica_metatype tmpMeta47;
modelica_real tmp48;
modelica_metatype tmpMeta49;
modelica_metatype tmpMeta50;
modelica_metatype tmpMeta51;
modelica_integer tmp52;
modelica_metatype tmpMeta53;
modelica_metatype tmpMeta54;
modelica_metatype tmpMeta55;
modelica_real tmp56;
modelica_metatype tmpMeta57;
modelica_metatype tmpMeta58;
modelica_metatype tmpMeta59;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta42 = MMC_CAR(tmp4_3);
tmpMeta43 = MMC_CDR(tmp4_3);
if (listEmpty(tmpMeta43)) goto tmp3_end;
tmpMeta44 = MMC_CAR(tmpMeta43);
tmpMeta45 = MMC_CDR(tmpMeta43);
if (!listEmpty(tmpMeta45)) goto tmp3_end;
_exp1 = tmpMeta42;
_exp2 = tmpMeta44;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta49 = omc_Ceval_ceval(threadData, _cache, _env, _exp1, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta46);
_cache = tmpMeta49;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta46,1,1) == 0) goto goto_2;
tmpMeta47 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta46), 2));
tmp48 = mmc_unbox_real(tmpMeta47);
_rv1 = tmp48;
tmpMeta53 = omc_Ceval_ceval(threadData, _cache, _env, _exp2, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta50);
_cache = tmpMeta53;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta50,0,1) == 0) goto goto_2;
tmpMeta51 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta50), 2));
tmp52 = mmc_unbox_integer(tmpMeta51);
_ri = tmp52;
_rv2 = ((modelica_real)_ri);
tmpMeta57 = mmc_mk_cons(_exp1, mmc_mk_cons(_exp2, MMC_REFSTRUCTLIT(mmc_nil)));
tmpMeta58 = omc_Ceval_cevalBuiltinDiv(threadData, _cache, _env, tmpMeta57, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta54);
_cache = tmpMeta58;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta54,1,1) == 0) goto goto_2;
tmpMeta55 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta54), 2));
tmp56 = mmc_unbox_real(tmpMeta55);
_dr = tmp56;
_rvd = _rv1 - ((_rv2) * (_dr));
tmpMeta59 = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rvd));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta59;
goto tmp3_done;
}
case 3: {
modelica_metatype tmpMeta60;
modelica_metatype tmpMeta61;
modelica_metatype tmpMeta62;
modelica_metatype tmpMeta63;
modelica_metatype tmpMeta64;
modelica_metatype tmpMeta65;
modelica_integer tmp66;
modelica_metatype tmpMeta67;
modelica_metatype tmpMeta68;
modelica_metatype tmpMeta69;
modelica_integer tmp70;
modelica_metatype tmpMeta71;
modelica_metatype tmpMeta72;
modelica_metatype tmpMeta73;
modelica_integer tmp74;
modelica_metatype tmpMeta75;
modelica_metatype tmpMeta76;
modelica_metatype tmpMeta77;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta60 = MMC_CAR(tmp4_3);
tmpMeta61 = MMC_CDR(tmp4_3);
if (listEmpty(tmpMeta61)) goto tmp3_end;
tmpMeta62 = MMC_CAR(tmpMeta61);
tmpMeta63 = MMC_CDR(tmpMeta61);
if (!listEmpty(tmpMeta63)) goto tmp3_end;
_exp1 = tmpMeta60;
_exp2 = tmpMeta62;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta67 = omc_Ceval_ceval(threadData, _cache, _env, _exp1, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta64);
_cache = tmpMeta67;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta64,0,1) == 0) goto goto_2;
tmpMeta65 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta64), 2));
tmp66 = mmc_unbox_integer(tmpMeta65);
_ri1 = tmp66;
tmpMeta71 = omc_Ceval_ceval(threadData, _cache, _env, _exp2, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta68);
_cache = tmpMeta71;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta68,0,1) == 0) goto goto_2;
tmpMeta69 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta68), 2));
tmp70 = mmc_unbox_integer(tmpMeta69);
_ri2 = tmp70;
tmpMeta75 = mmc_mk_cons(_exp1, mmc_mk_cons(_exp2, MMC_REFSTRUCTLIT(mmc_nil)));
tmpMeta76 = omc_Ceval_cevalBuiltinDiv(threadData, _cache, _env, tmpMeta75, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta72);
_cache = tmpMeta76;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta72,0,1) == 0) goto goto_2;
tmpMeta73 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta72), 2));
tmp74 = mmc_unbox_integer(tmpMeta73);
_di = tmp74;
_ri_1 = _ri1 - ((_ri2) * (_di));
tmpMeta77 = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(_ri_1));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta77;
goto tmp3_done;
}
case 4: {
modelica_metatype tmpMeta78;
modelica_metatype tmpMeta79;
modelica_metatype tmpMeta80;
modelica_metatype tmpMeta81;
modelica_metatype tmpMeta82;
modelica_metatype tmpMeta83;
modelica_metatype tmpMeta84;
modelica_real tmp85;
modelica_metatype tmpMeta86;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_5,0,1) == 0) goto tmp3_end;
tmpMeta78 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_5), 2));
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta79 = MMC_CAR(tmp4_3);
tmpMeta80 = MMC_CDR(tmp4_3);
if (listEmpty(tmpMeta80)) goto tmp3_end;
tmpMeta81 = MMC_CAR(tmpMeta80);
tmpMeta82 = MMC_CDR(tmpMeta80);
if (!listEmpty(tmpMeta82)) goto tmp3_end;
_info = tmpMeta78;
_exp1 = tmpMeta79;
_exp2 = tmpMeta81;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
omc_Ceval_ceval(threadData, _cache, _env, _exp2, _impl, _inMsg, ((modelica_integer) 1) + _numIter, &tmpMeta83);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta83,1,1) == 0) goto goto_2;
tmpMeta84 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta83), 2));
tmp85 = mmc_unbox_real(tmpMeta84);
_rv2 = tmp85;
if((!(_rv2 == 0.0)))
{
goto goto_2;
}
_exp1_str = omc_ExpressionDump_printExpStr(threadData, _exp1);
_exp2_str = omc_ExpressionDump_printExpStr(threadData, _exp2);
tmpMeta86 = mmc_mk_cons(_exp1_str, mmc_mk_cons(_exp2_str, MMC_REFSTRUCTLIT(mmc_nil)));
omc_Error_addSourceMessage(threadData, _OMC_LIT59, tmpMeta86, _info);
goto goto_2;
goto tmp3_done;
}
case 5: {
modelica_metatype tmpMeta87;
modelica_metatype tmpMeta88;
modelica_metatype tmpMeta89;
modelica_metatype tmpMeta90;
modelica_metatype tmpMeta91;
modelica_metatype tmpMeta92;
modelica_metatype tmpMeta93;
modelica_integer tmp94;
modelica_metatype tmpMeta95;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_5,0,1) == 0) goto tmp3_end;
tmpMeta87 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_5), 2));
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta88 = MMC_CAR(tmp4_3);
tmpMeta89 = MMC_CDR(tmp4_3);
if (listEmpty(tmpMeta89)) goto tmp3_end;
tmpMeta90 = MMC_CAR(tmpMeta89);
tmpMeta91 = MMC_CDR(tmpMeta89);
if (!listEmpty(tmpMeta91)) goto tmp3_end;
_info = tmpMeta87;
_exp1 = tmpMeta88;
_exp2 = tmpMeta90;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
omc_Ceval_ceval(threadData, _cache, _env, _exp2, _impl, _inMsg, ((modelica_integer) 1) + _numIter, &tmpMeta92);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta92,0,1) == 0) goto goto_2;
tmpMeta93 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta92), 2));
tmp94 = mmc_unbox_integer(tmpMeta93);
_ri2 = tmp94;
if((!(_ri2 == ((modelica_integer) 0))))
{
goto goto_2;
}
_exp1_str = omc_ExpressionDump_printExpStr(threadData, _exp1);
_exp2_str = omc_ExpressionDump_printExpStr(threadData, _exp2);
tmpMeta95 = mmc_mk_cons(_exp1_str, mmc_mk_cons(_exp2_str, MMC_REFSTRUCTLIT(mmc_nil)));
omc_Error_addSourceMessage(threadData, _OMC_LIT59, tmpMeta95, _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 tmpMeta1;
modelica_metatype tmpMeta2;
modelica_metatype tmpMeta4;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
tmpMeta1 = _inValue;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta1,5,2) == 0) MMC_THROW_INTERNAL();
tmpMeta2 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta1), 2));
_vals = tmpMeta2;
{
modelica_integer tmp3;
modelica_metatype __omcQ_24tmpVar11;
modelica_metatype __omcQ_24tmpVar10;
modelica_integer tmp5;
modelica_metatype _v_loopVar = 0;
modelica_metatype _v;
_v_loopVar = _vals;
tmp3 = 0;
while(1) {
tmp5 = 1;
if (!listEmpty(_v_loopVar)) {
_v = MMC_CAR(_v_loopVar);
_v_loopVar = MMC_CDR(_v_loopVar);
tmp5--;
}
if (tmp5 == 0) {
__omcQ_24tmpVar10 = _v;
if (tmp3)
{
__omcQ_24tmpVar11 = omc_Ceval_cevalBuiltinMin2(threadData, __omcQ_24tmpVar10, __omcQ_24tmpVar11);
}
else
{
__omcQ_24tmpVar11 = __omcQ_24tmpVar10;
tmp3 = 1;
}
} else if (tmp5 == 1) {
break;
} else {
MMC_THROW_INTERNAL();
}
}
if (!tmp3) MMC_THROW_INTERNAL();
tmpMeta4 = __omcQ_24tmpVar11;
}
_outValue = tmpMeta4;
_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 tmpMeta1;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;
tmp4_1 = _v1;
tmp4_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 tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 5; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_metatype tmpMeta6;
modelica_integer tmp7;
modelica_metatype tmpMeta8;
modelica_integer tmp9;
modelica_metatype tmpMeta10;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,0,1) == 0) goto tmp3_end;
tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 2));
tmp7 = mmc_unbox_integer(tmpMeta6);
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,0,1) == 0) goto tmp3_end;
tmpMeta8 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_2), 2));
tmp9 = mmc_unbox_integer(tmpMeta8);
_i1 = tmp7;
_i2 = tmp9;
tmpMeta10 = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(modelica_integer_min((modelica_integer)(_i1),(modelica_integer)(_i2))));
tmpMeta1 = tmpMeta10;
goto tmp3_done;
}
case 1: {
modelica_metatype tmpMeta11;
modelica_real tmp12;
modelica_metatype tmpMeta13;
modelica_real tmp14;
modelica_metatype tmpMeta15;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,1,1) == 0) goto tmp3_end;
tmpMeta11 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 2));
tmp12 = mmc_unbox_real(tmpMeta11);
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,1,1) == 0) goto tmp3_end;
tmpMeta13 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_2), 2));
tmp14 = mmc_unbox_real(tmpMeta13);
_r1 = tmp12;
_r2 = tmp14;
tmpMeta15 = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(fmin(_r1,_r2)));
tmpMeta1 = tmpMeta15;
goto tmp3_done;
}
case 2: {
modelica_metatype tmpMeta16;
modelica_integer tmp17;
modelica_metatype tmpMeta18;
modelica_integer tmp19;
modelica_metatype tmpMeta20;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,3,1) == 0) goto tmp3_end;
tmpMeta16 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 2));
tmp17 = mmc_unbox_integer(tmpMeta16);
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,3,1) == 0) goto tmp3_end;
tmpMeta18 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_2), 2));
tmp19 = mmc_unbox_integer(tmpMeta18);
_b1 = tmp17;
_b2 = tmp19;
tmpMeta20 = mmc_mk_box2(6, &Values_Value_BOOL__desc, mmc_mk_boolean((_b1 && _b2)));
tmpMeta1 = tmpMeta20;
goto tmp3_done;
}
case 3: {
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;
tmpMeta1 = ((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 tmp3_done;
}
case 4: {
modelica_boolean tmp21;
modelica_metatype tmpMeta22;
modelica_metatype tmpMeta23;
modelica_metatype tmpMeta24;
modelica_metatype tmpMeta25;
tmp21 = omc_Flags_isSet(threadData, _OMC_LIT44);
if (1 != tmp21) goto goto_2;
_s1 = omc_ValuesUtil_valString(threadData, _v1);
_s2 = omc_ValuesUtil_valString(threadData, _v2);
tmpMeta22 = stringAppend(_OMC_LIT60,_s1);
tmpMeta23 = stringAppend(tmpMeta22,_OMC_LIT61);
tmpMeta24 = stringAppend(tmpMeta23,_s2);
tmpMeta25 = stringAppend(tmpMeta24,_OMC_LIT62);
omc_Debug_traceln(threadData, tmpMeta25);
goto goto_2;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outValue = tmpMeta1;
_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[2] __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: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_3);
tmpMeta7 = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta7)) goto tmp3_end;
_arr = tmpMeta6;
_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: {
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta8 = MMC_CAR(tmp4_3);
tmpMeta9 = MMC_CDR(tmp4_3);
if (listEmpty(tmpMeta9)) goto tmp3_end;
tmpMeta10 = MMC_CAR(tmpMeta9);
tmpMeta11 = MMC_CDR(tmpMeta9);
if (!listEmpty(tmpMeta11)) goto tmp3_end;
_s1 = tmpMeta8;
_s2 = tmpMeta10;
_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 tmpMeta1;
modelica_metatype tmpMeta2;
modelica_metatype tmpMeta4;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
tmpMeta1 = _inValue;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta1,5,2) == 0) MMC_THROW_INTERNAL();
tmpMeta2 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta1), 2));
_vals = tmpMeta2;
{
modelica_integer tmp3;
modelica_metatype __omcQ_24tmpVar13;
modelica_metatype __omcQ_24tmpVar12;
modelica_integer tmp5;
modelica_metatype _v_loopVar = 0;
modelica_metatype _v;
_v_loopVar = _vals;
tmp3 = 0;
while(1) {
tmp5 = 1;
if (!listEmpty(_v_loopVar)) {
_v = MMC_CAR(_v_loopVar);
_v_loopVar = MMC_CDR(_v_loopVar);
tmp5--;
}
if (tmp5 == 0) {
__omcQ_24tmpVar12 = _v;
if (tmp3)
{
__omcQ_24tmpVar13 = omc_Ceval_cevalBuiltinMax2(threadData, __omcQ_24tmpVar12, __omcQ_24tmpVar13);
}
else
{
__omcQ_24tmpVar13 = __omcQ_24tmpVar12;
tmp3 = 1;
}
} else if (tmp5 == 1) {
break;
} else {
MMC_THROW_INTERNAL();
}
}
if (!tmp3) MMC_THROW_INTERNAL();
tmpMeta4 = __omcQ_24tmpVar13;
}
_outValue = tmpMeta4;
_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 tmpMeta1;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;
tmp4_1 = _v1;
tmp4_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 tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 5; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_metatype tmpMeta6;
modelica_integer tmp7;
modelica_metatype tmpMeta8;
modelica_integer tmp9;
modelica_metatype tmpMeta10;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,0,1) == 0) goto tmp3_end;
tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 2));
tmp7 = mmc_unbox_integer(tmpMeta6);
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,0,1) == 0) goto tmp3_end;
tmpMeta8 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_2), 2));
tmp9 = mmc_unbox_integer(tmpMeta8);
_i1 = tmp7;
_i2 = tmp9;
tmpMeta10 = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(modelica_integer_max((modelica_integer)(_i1),(modelica_integer)(_i2))));
tmpMeta1 = tmpMeta10;
goto tmp3_done;
}
case 1: {
modelica_metatype tmpMeta11;
modelica_real tmp12;
modelica_metatype tmpMeta13;
modelica_real tmp14;
modelica_metatype tmpMeta15;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,1,1) == 0) goto tmp3_end;
tmpMeta11 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 2));
tmp12 = mmc_unbox_real(tmpMeta11);
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,1,1) == 0) goto tmp3_end;
tmpMeta13 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_2), 2));
tmp14 = mmc_unbox_real(tmpMeta13);
_r1 = tmp12;
_r2 = tmp14;
tmpMeta15 = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(fmax(_r1,_r2)));
tmpMeta1 = tmpMeta15;
goto tmp3_done;
}
case 2: {
modelica_metatype tmpMeta16;
modelica_integer tmp17;
modelica_metatype tmpMeta18;
modelica_integer tmp19;
modelica_metatype tmpMeta20;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,3,1) == 0) goto tmp3_end;
tmpMeta16 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 2));
tmp17 = mmc_unbox_integer(tmpMeta16);
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,3,1) == 0) goto tmp3_end;
tmpMeta18 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_2), 2));
tmp19 = mmc_unbox_integer(tmpMeta18);
_b1 = tmp17;
_b2 = tmp19;
tmpMeta20 = mmc_mk_box2(6, &Values_Value_BOOL__desc, mmc_mk_boolean((_b1 || _b2)));
tmpMeta1 = tmpMeta20;
goto tmp3_done;
}
case 3: {
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;
tmpMeta1 = ((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 tmp3_done;
}
case 4: {
modelica_boolean tmp21;
modelica_metatype tmpMeta22;
modelica_metatype tmpMeta23;
modelica_metatype tmpMeta24;
modelica_metatype tmpMeta25;
tmp21 = omc_Flags_isSet(threadData, _OMC_LIT44);
if (1 != tmp21) goto goto_2;
_s1 = omc_ValuesUtil_valString(threadData, _v1);
_s2 = omc_ValuesUtil_valString(threadData, _v2);
tmpMeta22 = stringAppend(_OMC_LIT60,_s1);
tmpMeta23 = stringAppend(tmpMeta22,_OMC_LIT61);
tmpMeta24 = stringAppend(tmpMeta23,_s2);
tmpMeta25 = stringAppend(tmpMeta24,_OMC_LIT62);
omc_Debug_traceln(threadData, tmpMeta25);
goto goto_2;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outValue = tmpMeta1;
_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[2] __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: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_3);
tmpMeta7 = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta7)) goto tmp3_end;
_arr = tmpMeta6;
_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: {
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta8 = MMC_CAR(tmp4_3);
tmpMeta9 = MMC_CDR(tmp4_3);
if (listEmpty(tmpMeta9)) goto tmp3_end;
tmpMeta10 = MMC_CAR(tmpMeta9);
tmpMeta11 = MMC_CDR(tmpMeta9);
if (!listEmpty(tmpMeta11)) goto tmp3_end;
_s1 = tmpMeta8;
_s2 = tmpMeta10;
_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[2] __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: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_3);
tmpMeta7 = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta7)) goto tmp3_end;
_arr = tmpMeta6;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta10 = omc_Ceval_ceval(threadData, _cache, _env, _arr, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta8);
_cache = tmpMeta10;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta8,5,2) == 0) goto goto_2;
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta8), 2));
_vals = tmpMeta9;
if(omc_Types_isInteger(threadData, omc_Expression_typeof(threadData, _arr)))
{
if(listEmpty(_vals))
{
_v = _OMC_LIT64;
}
else
{
tmpMeta11 = omc_ValuesUtil_sumArrayelt(threadData, _vals);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta11,0,1) == 0) goto goto_2;
_v = tmpMeta11;
}
}
else
{
if(listEmpty(_vals))
{
_v = _OMC_LIT63;
}
else
{
tmpMeta12 = omc_ValuesUtil_sumArrayelt(threadData, _vals);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta12,1,1) == 0) goto goto_2;
_v = tmpMeta12;
}
}
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 tmpMeta1;
modelica_metatype tmpMeta2;
modelica_metatype tmpMeta3;
modelica_metatype tmpMeta4;
modelica_metatype tmpMeta5;
modelica_metatype tmpMeta6;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_cache = _inCache;
tmpMeta1 = _inExpExpLst;
if (listEmpty(tmpMeta1)) MMC_THROW_INTERNAL();
tmpMeta2 = MMC_CAR(tmpMeta1);
tmpMeta3 = MMC_CDR(tmpMeta1);
if (listEmpty(tmpMeta3)) MMC_THROW_INTERNAL();
tmpMeta4 = MMC_CAR(tmpMeta3);
tmpMeta5 = MMC_CDR(tmpMeta3);
if (!listEmpty(tmpMeta5)) MMC_THROW_INTERNAL();
_exp1 = tmpMeta2;
_exp2 = tmpMeta4;
_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 tmp9_1;modelica_metatype tmp9_2;modelica_metatype tmp9_3;
tmp9_1 = _v1;
tmp9_2 = _v2;
tmp9_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 tmp9;
int tmp10;
tmp9 = 0;
for (; tmp9 < 6; tmp9++) {
switch (MMC_SWITCH_CAST(tmp9)) {
case 0: {
modelica_metatype tmpMeta11;
modelica_real tmp12;
modelica_metatype tmpMeta13;
modelica_real tmp14;
modelica_metatype tmpMeta15;
if (mmc__uniontype__metarecord__typedef__equal(tmp9_1,1,1) == 0) goto tmp8_end;
tmpMeta11 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp9_1), 2));
tmp12 = mmc_unbox_real(tmpMeta11);
if (mmc__uniontype__metarecord__typedef__equal(tmp9_2,1,1) == 0) goto tmp8_end;
tmpMeta13 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp9_2), 2));
tmp14 = mmc_unbox_real(tmpMeta13);
_rv1 = tmp12;
_rv2 = tmp14;
tmpMeta15 = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(modelica_real_mod(_rv1, _rv2)));
tmpMeta6 = tmpMeta15;
goto tmp8_done;
}
case 1: {
modelica_metatype tmpMeta16;
modelica_integer tmp17;
modelica_metatype tmpMeta18;
modelica_real tmp19;
modelica_metatype tmpMeta20;
if (mmc__uniontype__metarecord__typedef__equal(tmp9_1,0,1) == 0) goto tmp8_end;
tmpMeta16 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp9_1), 2));
tmp17 = mmc_unbox_integer(tmpMeta16);
if (mmc__uniontype__metarecord__typedef__equal(tmp9_2,1,1) == 0) goto tmp8_end;
tmpMeta18 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp9_2), 2));
tmp19 = mmc_unbox_real(tmpMeta18);
_ri = tmp17;
_rv2 = tmp19;
tmpMeta20 = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(modelica_real_mod(((modelica_real)_ri), _rv2)));
tmpMeta6 = tmpMeta20;
goto tmp8_done;
}
case 2: {
modelica_metatype tmpMeta21;
modelica_real tmp22;
modelica_metatype tmpMeta23;
modelica_integer tmp24;
modelica_metatype tmpMeta25;
if (mmc__uniontype__metarecord__typedef__equal(tmp9_1,1,1) == 0) goto tmp8_end;
tmpMeta21 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp9_1), 2));
tmp22 = mmc_unbox_real(tmpMeta21);
if (mmc__uniontype__metarecord__typedef__equal(tmp9_2,0,1) == 0) goto tmp8_end;
tmpMeta23 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp9_2), 2));
tmp24 = mmc_unbox_integer(tmpMeta23);
_rv1 = tmp22;
_ri = tmp24;
tmpMeta25 = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(modelica_real_mod(_rv1, ((modelica_real)_ri))));
tmpMeta6 = tmpMeta25;
goto tmp8_done;
}
case 3: {
modelica_metatype tmpMeta26;
modelica_integer tmp27;
modelica_metatype tmpMeta28;
modelica_integer tmp29;
modelica_metatype tmpMeta30;
if (mmc__uniontype__metarecord__typedef__equal(tmp9_1,0,1) == 0) goto tmp8_end;
tmpMeta26 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp9_1), 2));
tmp27 = mmc_unbox_integer(tmpMeta26);
if (mmc__uniontype__metarecord__typedef__equal(tmp9_2,0,1) == 0) goto tmp8_end;
tmpMeta28 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp9_2), 2));
tmp29 = mmc_unbox_integer(tmpMeta28);
_ri1 = tmp27;
_ri2 = tmp29;
tmpMeta30 = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(modelica_integer_mod(_ri1, _ri2)));
tmpMeta6 = tmpMeta30;
goto tmp8_done;
}
case 4: {
modelica_metatype tmpMeta31;
modelica_real tmp32;
modelica_metatype tmpMeta33;
modelica_metatype tmpMeta34;
if (mmc__uniontype__metarecord__typedef__equal(tmp9_2,1,1) == 0) goto tmp8_end;
tmpMeta31 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp9_2), 2));
tmp32 = mmc_unbox_real(tmpMeta31);
if (mmc__uniontype__metarecord__typedef__equal(tmp9_3,0,1) == 0) goto tmp8_end;
tmpMeta33 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp9_3), 2));
_rv2 = tmp32;
_info = tmpMeta33;
if (!(_rv2 == 0.0)) goto tmp8_end;
_lhs_str = omc_ExpressionDump_printExpStr(threadData, _exp1);
_rhs_str = omc_ExpressionDump_printExpStr(threadData, _exp2);
tmpMeta34 = mmc_mk_cons(_lhs_str, mmc_mk_cons(_rhs_str, MMC_REFSTRUCTLIT(mmc_nil)));
omc_Error_addSourceMessage(threadData, _OMC_LIT67, tmpMeta34, _info);
goto goto_7;
goto tmp8_done;
}
case 5: {
modelica_metatype tmpMeta35;
modelica_metatype tmpMeta36;
modelica_integer tmp37;
modelica_metatype tmpMeta38;
if (mmc__uniontype__metarecord__typedef__equal(tmp9_3,0,1) == 0) goto tmp8_end;
tmpMeta35 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp9_3), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmp9_2,0,1) == 0) goto tmp8_end;
tmpMeta36 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp9_2), 2));
tmp37 = mmc_unbox_integer(tmpMeta36);
if (0 != tmp37) goto tmp8_end;
_info = tmpMeta35;
_lhs_str = omc_ExpressionDump_printExpStr(threadData, _exp1);
_rhs_str = omc_ExpressionDump_printExpStr(threadData, _exp2);
tmpMeta38 = mmc_mk_cons(_lhs_str, mmc_mk_cons(_rhs_str, MMC_REFSTRUCTLIT(mmc_nil)));
omc_Error_addSourceMessage(threadData, _OMC_LIT67, tmpMeta38, _info);
goto goto_7;
goto tmp8_done;
}
}
goto tmp8_end;
tmp8_end: ;
}
goto goto_7;
goto_7:;
MMC_THROW_INTERNAL();
goto tmp8_done;
tmp8_done:;
}
}
_outValue = tmpMeta6;
_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[2] __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_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
modelica_real tmp12;
modelica_metatype tmpMeta13;
modelica_metatype tmpMeta14;
modelica_metatype tmpMeta15;
modelica_real tmp16;
modelica_metatype tmpMeta17;
modelica_real tmp18;
modelica_metatype tmpMeta19;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_3);
tmpMeta7 = MMC_CDR(tmp4_3);
if (listEmpty(tmpMeta7)) goto tmp3_end;
tmpMeta8 = MMC_CAR(tmpMeta7);
tmpMeta9 = MMC_CDR(tmpMeta7);
if (!listEmpty(tmpMeta9)) goto tmp3_end;
_exp1 = tmpMeta6;
_exp2 = tmpMeta8;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta13 = omc_Ceval_ceval(threadData, _cache, _env, _exp1, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta10);
_cache = tmpMeta13;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta10,1,1) == 0) goto goto_2;
tmpMeta11 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta10), 2));
tmp12 = mmc_unbox_real(tmpMeta11);
_rv1 = tmp12;
tmpMeta17 = omc_Ceval_ceval(threadData, _cache, _env, _exp2, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta14);
_cache = tmpMeta17;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta14,1,1) == 0) goto goto_2;
tmpMeta15 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta14), 2));
tmp16 = mmc_unbox_real(tmpMeta15);
_rv2 = tmp16;
tmp18 = _rv2;
if (tmp18 == 0) {goto goto_2;}
_rv_1 = (_rv1) / tmp18;
_b = (_rv_1 < 0.0);
_rv_2 = (_b?ceil(_rv_1):floor(_rv_1));
tmpMeta19 = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_2));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta19;
goto tmp3_done;
}
case 1: {
modelica_metatype tmpMeta20;
modelica_metatype tmpMeta21;
modelica_metatype tmpMeta22;
modelica_metatype tmpMeta23;
modelica_metatype tmpMeta24;
modelica_metatype tmpMeta25;
modelica_integer tmp26;
modelica_metatype tmpMeta27;
modelica_metatype tmpMeta28;
modelica_metatype tmpMeta29;
modelica_real tmp30;
modelica_metatype tmpMeta31;
modelica_real tmp32;
modelica_metatype tmpMeta33;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta20 = MMC_CAR(tmp4_3);
tmpMeta21 = MMC_CDR(tmp4_3);
if (listEmpty(tmpMeta21)) goto tmp3_end;
tmpMeta22 = MMC_CAR(tmpMeta21);
tmpMeta23 = MMC_CDR(tmpMeta21);
if (!listEmpty(tmpMeta23)) goto tmp3_end;
_exp1 = tmpMeta20;
_exp2 = tmpMeta22;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta27 = omc_Ceval_ceval(threadData, _cache, _env, _exp1, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta24);
_cache = tmpMeta27;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta24,0,1) == 0) goto goto_2;
tmpMeta25 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta24), 2));
tmp26 = mmc_unbox_integer(tmpMeta25);
_ri = tmp26;
_rv1 = ((modelica_real)_ri);
tmpMeta31 = omc_Ceval_ceval(threadData, _cache, _env, _exp2, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta28);
_cache = tmpMeta31;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta28,1,1) == 0) goto goto_2;
tmpMeta29 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta28), 2));
tmp30 = mmc_unbox_real(tmpMeta29);
_rv2 = tmp30;
omc_Error_addInternalError(threadData, _OMC_LIT68, _OMC_LIT70);
tmp32 = _rv2;
if (tmp32 == 0) {goto goto_2;}
_rv_1 = (_rv1) / tmp32;
_b = (_rv_1 < 0.0);
_rv_2 = (_b?ceil(_rv_1):floor(_rv_1));
tmpMeta33 = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_2));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta33;
goto tmp3_done;
}
case 2: {
modelica_metatype tmpMeta34;
modelica_metatype tmpMeta35;
modelica_metatype tmpMeta36;
modelica_metatype tmpMeta37;
modelica_metatype tmpMeta38;
modelica_metatype tmpMeta39;
modelica_real tmp40;
modelica_metatype tmpMeta41;
modelica_metatype tmpMeta42;
modelica_metatype tmpMeta43;
modelica_integer tmp44;
modelica_metatype tmpMeta45;
modelica_real tmp46;
modelica_metatype tmpMeta47;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta34 = MMC_CAR(tmp4_3);
tmpMeta35 = MMC_CDR(tmp4_3);
if (listEmpty(tmpMeta35)) goto tmp3_end;
tmpMeta36 = MMC_CAR(tmpMeta35);
tmpMeta37 = MMC_CDR(tmpMeta35);
if (!listEmpty(tmpMeta37)) goto tmp3_end;
_exp1 = tmpMeta34;
_exp2 = tmpMeta36;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta41 = omc_Ceval_ceval(threadData, _cache, _env, _exp1, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta38);
_cache = tmpMeta41;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta38,1,1) == 0) goto goto_2;
tmpMeta39 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta38), 2));
tmp40 = mmc_unbox_real(tmpMeta39);
_rv1 = tmp40;
tmpMeta45 = omc_Ceval_ceval(threadData, _cache, _env, _exp2, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta42);
_cache = tmpMeta45;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta42,0,1) == 0) goto goto_2;
tmpMeta43 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta42), 2));
tmp44 = mmc_unbox_integer(tmpMeta43);
_ri = tmp44;
omc_Error_addInternalError(threadData, _OMC_LIT71, _OMC_LIT72);
_rv2 = ((modelica_real)_ri);
tmp46 = _rv2;
if (tmp46 == 0) {goto goto_2;}
_rv_1 = (_rv1) / tmp46;
_b = (_rv_1 < 0.0);
_rv_2 = (_b?ceil(_rv_1):floor(_rv_1));
tmpMeta47 = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_2));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta47;
goto tmp3_done;
}
case 3: {
modelica_metatype tmpMeta48;
modelica_metatype tmpMeta49;
modelica_metatype tmpMeta50;
modelica_metatype tmpMeta51;
modelica_metatype tmpMeta52;
modelica_metatype tmpMeta53;
modelica_integer tmp54;
modelica_metatype tmpMeta55;
modelica_metatype tmpMeta56;
modelica_metatype tmpMeta57;
modelica_integer tmp58;
modelica_metatype tmpMeta59;
modelica_integer tmp60;
modelica_metatype tmpMeta61;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta48 = MMC_CAR(tmp4_3);
tmpMeta49 = MMC_CDR(tmp4_3);
if (listEmpty(tmpMeta49)) goto tmp3_end;
tmpMeta50 = MMC_CAR(tmpMeta49);
tmpMeta51 = MMC_CDR(tmpMeta49);
if (!listEmpty(tmpMeta51)) goto tmp3_end;
_exp1 = tmpMeta48;
_exp2 = tmpMeta50;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta55 = omc_Ceval_ceval(threadData, _cache, _env, _exp1, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta52);
_cache = tmpMeta55;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta52,0,1) == 0) goto goto_2;
tmpMeta53 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta52), 2));
tmp54 = mmc_unbox_integer(tmpMeta53);
_ri1 = tmp54;
tmpMeta59 = omc_Ceval_ceval(threadData, _cache, _env, _exp2, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta56);
_cache = tmpMeta59;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta56,0,1) == 0) goto goto_2;
tmpMeta57 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta56), 2));
tmp58 = mmc_unbox_integer(tmpMeta57);
_ri2 = tmp58;
tmp60 = _ri2;
if (tmp60 == 0) {goto goto_2;}
_ri_1 = modelica_div_integer(_ri1,tmp60).quot;
tmpMeta61 = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(_ri_1));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta61;
goto tmp3_done;
}
case 4: {
modelica_metatype tmpMeta62;
modelica_metatype tmpMeta63;
modelica_metatype tmpMeta64;
modelica_metatype tmpMeta65;
modelica_metatype tmpMeta66;
modelica_metatype tmpMeta67;
modelica_metatype tmpMeta68;
modelica_real tmp69;
modelica_metatype tmpMeta70;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_5,0,1) == 0) goto tmp3_end;
tmpMeta62 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_5), 2));
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta63 = MMC_CAR(tmp4_3);
tmpMeta64 = MMC_CDR(tmp4_3);
if (listEmpty(tmpMeta64)) goto tmp3_end;
tmpMeta65 = MMC_CAR(tmpMeta64);
tmpMeta66 = MMC_CDR(tmpMeta64);
if (!listEmpty(tmpMeta66)) goto tmp3_end;
_info = tmpMeta62;
_exp1 = tmpMeta63;
_exp2 = tmpMeta65;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
tmp4 += 1;
omc_Ceval_ceval(threadData, _cache, _env, _exp2, _impl, _inMsg, ((modelica_integer) 1) + _numIter, &tmpMeta67);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta67,1,1) == 0) goto goto_2;
tmpMeta68 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta67), 2));
tmp69 = mmc_unbox_real(tmpMeta68);
_rv2 = tmp69;
if((!(_rv2 == 0.0)))
{
goto goto_2;
}
_exp1_str = omc_ExpressionDump_printExpStr(threadData, _exp1);
_exp2_str = omc_ExpressionDump_printExpStr(threadData, _exp2);
tmpMeta70 = mmc_mk_cons(_exp1_str, mmc_mk_cons(_exp2_str, MMC_REFSTRUCTLIT(mmc_nil)));
omc_Error_addSourceMessage(threadData, _OMC_LIT75, tmpMeta70, _info);
goto goto_2;
goto tmp3_done;
}
case 5: {
modelica_metatype tmpMeta71;
modelica_metatype tmpMeta72;
modelica_metatype tmpMeta73;
modelica_metatype tmpMeta74;
modelica_metatype tmpMeta75;
modelica_metatype tmpMeta76;
modelica_real tmp77;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_5,1,0) == 0) goto tmp3_end;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta71 = MMC_CAR(tmp4_3);
tmpMeta72 = MMC_CDR(tmp4_3);
if (listEmpty(tmpMeta72)) goto tmp3_end;
tmpMeta73 = MMC_CAR(tmpMeta72);
tmpMeta74 = MMC_CDR(tmpMeta72);
if (!listEmpty(tmpMeta74)) goto tmp3_end;
_exp2 = tmpMeta73;
_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, &tmpMeta75);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta75,1,1) == 0) goto goto_2;
tmpMeta76 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta75), 2));
tmp77 = mmc_unbox_real(tmpMeta76);
_rv2 = tmp77;
if((!(_rv2 == 0.0)))
{
goto goto_2;
}
goto goto_2;
goto tmp3_done;
}
case 6: {
modelica_metatype tmpMeta78;
modelica_metatype tmpMeta79;
modelica_metatype tmpMeta80;
modelica_metatype tmpMeta81;
modelica_metatype tmpMeta82;
modelica_metatype tmpMeta83;
modelica_metatype tmpMeta84;
modelica_integer tmp85;
modelica_metatype tmpMeta86;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_5,0,1) == 0) goto tmp3_end;
tmpMeta78 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_5), 2));
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta79 = MMC_CAR(tmp4_3);
tmpMeta80 = MMC_CDR(tmp4_3);
if (listEmpty(tmpMeta80)) goto tmp3_end;
tmpMeta81 = MMC_CAR(tmpMeta80);
tmpMeta82 = MMC_CDR(tmpMeta80);
if (!listEmpty(tmpMeta82)) goto tmp3_end;
_info = tmpMeta78;
_exp1 = tmpMeta79;
_exp2 = tmpMeta81;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
tmp4 += 1;
omc_Ceval_ceval(threadData, _cache, _env, _exp2, _impl, _inMsg, ((modelica_integer) 1) + _numIter, &tmpMeta83);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta83,0,1) == 0) goto goto_2;
tmpMeta84 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta83), 2));
tmp85 = mmc_unbox_integer(tmpMeta84);
_ri2 = tmp85;
if((!(_ri2 == ((modelica_integer) 0))))
{
goto goto_2;
}
_lh_str = omc_ExpressionDump_printExpStr(threadData, _exp1);
_rh_str = omc_ExpressionDump_printExpStr(threadData, _exp2);
tmpMeta86 = mmc_mk_cons(_lh_str, mmc_mk_cons(_rh_str, MMC_REFSTRUCTLIT(mmc_nil)));
omc_Error_addSourceMessage(threadData, _OMC_LIT75, tmpMeta86, _info);
goto goto_2;
goto tmp3_done;
}
case 7: {
modelica_metatype tmpMeta87;
modelica_metatype tmpMeta88;
modelica_metatype tmpMeta89;
modelica_metatype tmpMeta90;
modelica_metatype tmpMeta91;
modelica_metatype tmpMeta92;
modelica_integer tmp93;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_5,1,0) == 0) goto tmp3_end;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta87 = MMC_CAR(tmp4_3);
tmpMeta88 = MMC_CDR(tmp4_3);
if (listEmpty(tmpMeta88)) goto tmp3_end;
tmpMeta89 = MMC_CAR(tmpMeta88);
tmpMeta90 = MMC_CDR(tmpMeta88);
if (!listEmpty(tmpMeta90)) goto tmp3_end;
_exp2 = tmpMeta89;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
omc_Ceval_ceval(threadData, _cache, _env, _exp2, _impl, _OMC_LIT76, ((modelica_integer) 1) + _numIter, &tmpMeta91);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta91,0,1) == 0) goto goto_2;
tmpMeta92 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta91), 2));
tmp93 = mmc_unbox_integer(tmpMeta92);
_ri2 = tmp93;
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[2] __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_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
modelica_real tmp12;
modelica_metatype tmpMeta13;
modelica_metatype tmpMeta14;
modelica_metatype tmpMeta15;
modelica_real tmp16;
modelica_metatype tmpMeta17;
modelica_metatype tmpMeta18;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_3);
tmpMeta7 = MMC_CDR(tmp4_3);
if (listEmpty(tmpMeta7)) goto tmp3_end;
tmpMeta8 = MMC_CAR(tmpMeta7);
tmpMeta9 = MMC_CDR(tmpMeta7);
if (!listEmpty(tmpMeta9)) goto tmp3_end;
_exp1 = tmpMeta6;
_exp2 = tmpMeta8;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta13 = omc_Ceval_ceval(threadData, _cache, _env, _exp1, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta10);
_cache = tmpMeta13;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta10,1,1) == 0) goto goto_2;
tmpMeta11 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta10), 2));
tmp12 = mmc_unbox_real(tmpMeta11);
_rv_1 = tmp12;
tmpMeta17 = omc_Ceval_ceval(threadData, _cache, _env, _exp2, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta14);
_cache = tmpMeta17;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta14,1,1) == 0) goto goto_2;
tmpMeta15 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta14), 2));
tmp16 = mmc_unbox_real(tmpMeta15);
_rv_2 = tmp16;
_rv = atan2(_rv_1, _rv_2);
tmpMeta18 = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta18;
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[2] __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_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_real tmp10;
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_3);
tmpMeta7 = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta7)) goto tmp3_end;
_exp = tmpMeta6;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta11 = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta8);
_cache = tmpMeta11;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta8,1,1) == 0) goto goto_2;
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta8), 2));
tmp10 = mmc_unbox_real(tmpMeta9);
_rv = tmp10;
_rv_1 = atan(_rv);
tmpMeta12 = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_1));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta12;
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[2] __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_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_real tmp10;
modelica_metatype tmpMeta11;
modelica_boolean tmp12;
modelica_real tmp13;
modelica_metatype tmpMeta14;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_3);
tmpMeta7 = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta7)) goto tmp3_end;
_exp = tmpMeta6;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta11 = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta8);
_cache = tmpMeta11;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta8,1,1) == 0) goto goto_2;
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta8), 2));
tmp10 = mmc_unbox_real(tmpMeta9);
_rv = tmp10;
tmp12 = ((_rv >= -1.0) && (_rv <= 1.0));
if (1 != tmp12) goto goto_2;
tmp13 = _rv;
if(!(tmp13 >= -1.0 && tmp13 <= 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", tmp13);
}
_rv_1 = acos(tmp13);
tmpMeta14 = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_1));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta14;
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[2] __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_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_real tmp10;
modelica_metatype tmpMeta11;
modelica_boolean tmp12;
modelica_real tmp13;
modelica_metatype tmpMeta14;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_3);
tmpMeta7 = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta7)) goto tmp3_end;
_exp = tmpMeta6;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta11 = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta8);
_cache = tmpMeta11;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta8,1,1) == 0) goto goto_2;
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta8), 2));
tmp10 = mmc_unbox_real(tmpMeta9);
_rv = tmp10;
tmp12 = ((_rv >= -1.0) && (_rv <= 1.0));
if (1 != tmp12) goto goto_2;
tmp13 = _rv;
if(!(tmp13 >= -1.0 && tmp13 <= 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", tmp13);
}
_rv_1 = asin(tmp13);
tmpMeta14 = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_1));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta14;
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[2] __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_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_real tmp10;
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_3);
tmpMeta7 = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta7)) goto tmp3_end;
_exp = tmpMeta6;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta11 = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta8);
_cache = tmpMeta11;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta8,1,1) == 0) goto goto_2;
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta8), 2));
tmp10 = mmc_unbox_real(tmpMeta9);
_rv = tmp10;
_rv_1 = tanh(_rv);
tmpMeta12 = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_1));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta12;
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[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 = _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_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_real tmp10;
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_3);
tmpMeta7 = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta7)) goto tmp3_end;
_exp = tmpMeta6;
_cache = tmp4_1;
_env = tmp4_2;
tmpMeta11 = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta8);
_cache = tmpMeta11;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta8,1,1) == 0) goto goto_2;
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta8), 2));
tmp10 = mmc_unbox_real(tmpMeta9);
_rv = tmp10;
_rv_1 = tan(_rv);
tmpMeta12 = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_1));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta12;
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[2] __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_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_real tmp10;
modelica_metatype tmpMeta11;
modelica_boolean tmp12;
modelica_real tmp13;
modelica_metatype tmpMeta14;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_3);
tmpMeta7 = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta7)) goto tmp3_end;
_exp = tmpMeta6;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta11 = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta8);
_cache = tmpMeta11;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta8,1,1) == 0) goto goto_2;
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta8), 2));
tmp10 = mmc_unbox_real(tmpMeta9);
_rv = tmp10;
tmp12 = (_rv > 0.0);
if (1 != tmp12) goto goto_2;
tmp13 = _rv;
if(!(tmp13 > 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", tmp13);
}
_rv_1 = log10(tmp13);
tmpMeta14 = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_1));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta14;
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[2] __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_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_real tmp10;
modelica_metatype tmpMeta11;
modelica_boolean tmp12;
modelica_real tmp13;
modelica_metatype tmpMeta14;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_3);
tmpMeta7 = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta7)) goto tmp3_end;
_exp = tmpMeta6;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta11 = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta8);
_cache = tmpMeta11;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta8,1,1) == 0) goto goto_2;
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta8), 2));
tmp10 = mmc_unbox_real(tmpMeta9);
_rv = tmp10;
tmp12 = (_rv > 0.0);
if (1 != tmp12) goto goto_2;
tmp13 = _rv;
if(!(tmp13 > 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", tmp13);
}
_rv_1 = log(tmp13);
tmpMeta14 = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_1));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta14;
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[2] __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_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_real tmp10;
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_3);
tmpMeta7 = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta7)) goto tmp3_end;
_exp = tmpMeta6;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta11 = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta8);
_cache = tmpMeta11;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta8,1,1) == 0) goto goto_2;
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta8), 2));
tmp10 = mmc_unbox_real(tmpMeta9);
_rv = tmp10;
_rv_1 = cosh(_rv);
tmpMeta12 = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_1));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta12;
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[2] __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_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_real tmp10;
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_3);
tmpMeta7 = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta7)) goto tmp3_end;
_exp = tmpMeta6;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta11 = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta8);
_cache = tmpMeta11;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta8,1,1) == 0) goto goto_2;
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta8), 2));
tmp10 = mmc_unbox_real(tmpMeta9);
_rv = tmp10;
_rv_1 = cos(_rv);
tmpMeta12 = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_1));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta12;
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[2] __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_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_real tmp10;
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_3);
tmpMeta7 = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta7)) goto tmp3_end;
_exp = tmpMeta6;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta11 = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta8);
_cache = tmpMeta11;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta8,1,1) == 0) goto goto_2;
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta8), 2));
tmp10 = mmc_unbox_real(tmpMeta9);
_rv = tmp10;
_rv_1 = sinh(_rv);
tmpMeta12 = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_1));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta12;
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[2] __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_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_real tmp10;
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_3);
tmpMeta7 = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta7)) goto tmp3_end;
_exp = tmpMeta6;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta11 = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta8);
_cache = tmpMeta11;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta8,1,1) == 0) goto goto_2;
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta8), 2));
tmp10 = mmc_unbox_real(tmpMeta9);
_rv = tmp10;
_rv_1 = sin(_rv);
tmpMeta12 = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_1));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta12;
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[2] __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_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_real tmp10;
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
modelica_metatype tmpMeta13;
modelica_metatype tmpMeta14;
modelica_real tmp15;
modelica_metatype tmpMeta16;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_3);
tmpMeta7 = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta7)) goto tmp3_end;
_exp = tmpMeta6;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta11 = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta8);
_cache = tmpMeta11;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta8,1,1) == 0) goto goto_2;
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta8), 2));
tmp10 = mmc_unbox_real(tmpMeta9);
_rv = tmp10;
if((_rv < 0.0))
{
tmpMeta12 = _msg;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta12,0,1) == 0) goto goto_2;
tmpMeta13 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta12), 2));
_info = tmpMeta13;
tmpMeta14 = MMC_REFSTRUCTLIT(mmc_nil);
omc_Error_addSourceMessage(threadData, _OMC_LIT79, tmpMeta14, _info);
goto goto_2;
}
else
{
tmp15 = _rv;
if(!(tmp15 >= 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", tmp15);
}
_rv_1 = sqrt(tmp15);
}
tmpMeta16 = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_1));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta16;
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[2] __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_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_real tmp10;
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
modelica_metatype tmpMeta13;
modelica_boolean tmp14;
modelica_metatype tmpMeta15;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_3);
tmpMeta7 = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta7)) goto tmp3_end;
_exp = tmpMeta6;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta11 = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta8);
_cache = tmpMeta11;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta8,1,1) == 0) goto goto_2;
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta8), 2));
tmp10 = mmc_unbox_real(tmpMeta9);
_rv = tmp10;
_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);
tmp14 = (modelica_boolean)(_rvt == _rv);
if(tmp14)
{
tmpMeta12 = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rvt));
tmpMeta15 = tmpMeta12;
}
else
{
tmpMeta13 = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_realRet));
tmpMeta15 = tmpMeta13;
}
_v = tmpMeta15;
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[2] __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_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_real tmp10;
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_3);
tmpMeta7 = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta7)) goto tmp3_end;
_exp = tmpMeta6;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta11 = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta8);
_cache = tmpMeta11;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta8,1,1) == 0) goto goto_2;
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta8), 2));
tmp10 = mmc_unbox_real(tmpMeta9);
_rv = tmp10;
_rv_1 = floor(_rv);
tmpMeta12 = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_1));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta12;
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 tmpMeta1;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
volatile modelica_metatype tmp4_1;volatile modelica_integer tmp4_2;
tmp4_1 = _inValuesValueLstLst;
tmp4_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 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;
_lst = tmp4_1;
_dim = tmp4_2;
_l_lst = listHead(_lst);
tmp6 = listLength(_l_lst);
if (1 != tmp6) goto goto_2;
_first_lst = omc_List_map(threadData, _lst, boxvar_listHead);
_first_lst_1 = omc_Ceval_catDimension(threadData, _first_lst, _dim);
tmpMeta1 = omc_List_map(threadData, _first_lst_1, boxvar_List_create);
goto tmp3_done;
}
case 1: {
_lst = tmp4_1;
_dim = tmp4_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);
tmpMeta1 = omc_List_threadMap(threadData, _rest_1, _first_lst_1, boxvar_List_consr);
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:;
}
}
_outValuesValueLstLst = tmpMeta1;
_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 tmpMeta1;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
volatile modelica_metatype tmp4_1;volatile modelica_integer tmp4_2;
tmp4_1 = _inValuesValueLst;
tmp4_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 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 (1 != tmp4_2) goto tmp3_end;
_vlst = tmp4_1;
_vlst_lst = omc_List_map(threadData, _vlst, boxvar_ValuesUtil_arrayValues);
tmpMeta1 = omc_List_flatten(threadData, _vlst_lst);
goto tmp3_done;
}
case 1: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
modelica_integer tmp12;
modelica_metatype tmpMeta13;
modelica_metatype tmpMeta14;
_vlst = tmp4_1;
_dim = tmp4_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);
tmpMeta6 = _v_lst_1;
if (listEmpty(tmpMeta6)) goto goto_2;
tmpMeta7 = MMC_CAR(tmpMeta6);
tmpMeta8 = MMC_CDR(tmpMeta6);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta7,5,2) == 0) goto goto_2;
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta7), 3));
if (listEmpty(tmpMeta9)) goto goto_2;
tmpMeta10 = MMC_CAR(tmpMeta9);
tmpMeta11 = MMC_CDR(tmpMeta9);
tmp12 = mmc_unbox_integer(tmpMeta10);
_i2 = tmp12;
_il = tmpMeta11;
_i1 = listLength(_v_lst_1);
tmpMeta14 = mmc_mk_cons(mmc_mk_integer(_i1), _il);
tmpMeta13 = mmc_mk_cons(mmc_mk_integer(_i2), tmpMeta14);
tmpMeta1 = omc_Ceval_cevalBuiltinTranspose2(threadData, _v_lst_1, ((modelica_integer) 1), tmpMeta13);
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:;
}
}
_outValuesValueLst = tmpMeta1;
_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;
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_metatype tmpMeta6;
modelica_integer tmp7;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,2,1) == 0) goto tmp3_end;
tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 2));
_str = tmpMeta6;
tmp7 = stringLength(_str);
if (1 != tmp7) 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[2] __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: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_3);
tmpMeta7 = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta7)) goto tmp3_end;
_exp1 = tmpMeta6;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta12 = omc_Ceval_ceval(threadData, _cache, _env, _exp1, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta8);
_cache = tmpMeta12;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta8,6,1) == 0) goto goto_2;
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta8), 2));
if (listEmpty(tmpMeta9)) goto goto_2;
tmpMeta10 = MMC_CAR(tmpMeta9);
tmpMeta11 = MMC_CDR(tmpMeta9);
_v = tmpMeta10;
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 tmpMeta1;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;
tmp4_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 tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 2; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,2,8) == 0) goto tmp3_end;
tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 9));
tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta6), 2));
if (13 != MMC_STRLEN(tmpMeta7) || strcmp(MMC_STRINGDATA(_OMC_LIT83), MMC_STRINGDATA(tmpMeta7)) != 0) goto tmp3_end;
tmpMeta1 = _acc;
goto tmp3_done;
}
case 1: {
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
modelica_metatype tmpMeta13;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,2,8) == 0) goto tmp3_end;
tmpMeta8 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 2));
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 9));
tmpMeta10 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta9), 2));
_name = tmpMeta8;
_fileName = tmpMeta10;
_dir = omc_System_dirname(threadData, _fileName);
_fileName = omc_System_basename(threadData, _fileName);
tmpMeta12 = mmc_mk_box2(5, &Values_Value_STRING__desc, _name);
tmpMeta13 = mmc_mk_box2(5, &Values_Value_STRING__desc, _dir);
tmpMeta11 = mmc_mk_cons(tmpMeta12, mmc_mk_cons(tmpMeta13, MMC_REFSTRUCTLIT(mmc_nil)));
_v = omc_ValuesUtil_makeArray(threadData, tmpMeta11);
_b = (((stringEqual(_fileName, _OMC_LIT80)) || (stringEqual(_fileName, _OMC_LIT81))) || (stringEqual(_dir, _OMC_LIT82)));
tmpMeta1 = omc_List_consOnTrue(threadData, (!_b), _v, _acc);
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_out = tmpMeta1;
_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_metatype tmpMeta1;
modelica_metatype tmpMeta2;
modelica_metatype tmpMeta3;
modelica_metatype tmpMeta4;
modelica_metatype tmpMeta5;
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_integer tmp8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
modelica_integer tmp12;
modelica_metatype tmpMeta13;
modelica_metatype tmpMeta14;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_cache = __omcQ_24in_5Fcache;
tmpMeta1 = _args;
if (listEmpty(tmpMeta1)) MMC_THROW_INTERNAL();
tmpMeta2 = MMC_CAR(tmpMeta1);
tmpMeta3 = MMC_CDR(tmpMeta1);
if (listEmpty(tmpMeta3)) MMC_THROW_INTERNAL();
tmpMeta4 = MMC_CAR(tmpMeta3);
tmpMeta5 = MMC_CDR(tmpMeta3);
_e1 = tmpMeta2;
_e2 = tmpMeta4;
tmpMeta9 = omc_Ceval_ceval(threadData, _cache, _env, _e1, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta6);
_cache = tmpMeta9;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta6,0,1) == 0) MMC_THROW_INTERNAL();
tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta6), 2));
tmp8 = mmc_unbox_integer(tmpMeta7);
_i = tmp8;
tmpMeta13 = omc_Ceval_ceval(threadData, _cache, _env, _e2, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta10);
_cache = tmpMeta13;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta10,0,1) == 0) MMC_THROW_INTERNAL();
tmpMeta11 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta10), 2));
tmp12 = mmc_unbox_integer(tmpMeta11);
_s = tmp12;
tmpMeta14 = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(((_i) >> (_s))));
_result = tmpMeta14;
_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_metatype tmpMeta1;
modelica_metatype tmpMeta2;
modelica_metatype tmpMeta3;
modelica_metatype tmpMeta4;
modelica_metatype tmpMeta5;
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_integer tmp8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
modelica_integer tmp12;
modelica_metatype tmpMeta13;
modelica_metatype tmpMeta14;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_cache = __omcQ_24in_5Fcache;
tmpMeta1 = _args;
if (listEmpty(tmpMeta1)) MMC_THROW_INTERNAL();
tmpMeta2 = MMC_CAR(tmpMeta1);
tmpMeta3 = MMC_CDR(tmpMeta1);
if (listEmpty(tmpMeta3)) MMC_THROW_INTERNAL();
tmpMeta4 = MMC_CAR(tmpMeta3);
tmpMeta5 = MMC_CDR(tmpMeta3);
_e1 = tmpMeta2;
_e2 = tmpMeta4;
tmpMeta9 = omc_Ceval_ceval(threadData, _cache, _env, _e1, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta6);
_cache = tmpMeta9;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta6,0,1) == 0) MMC_THROW_INTERNAL();
tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta6), 2));
tmp8 = mmc_unbox_integer(tmpMeta7);
_i = tmp8;
tmpMeta13 = omc_Ceval_ceval(threadData, _cache, _env, _e2, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta10);
_cache = tmpMeta13;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta10,0,1) == 0) MMC_THROW_INTERNAL();
tmpMeta11 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta10), 2));
tmp12 = mmc_unbox_integer(tmpMeta11);
_s = tmp12;
tmpMeta14 = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(((_i) << (_s))));
_result = tmpMeta14;
_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_metatype tmpMeta1;
modelica_metatype tmpMeta2;
modelica_metatype tmpMeta3;
modelica_metatype tmpMeta4;
modelica_metatype tmpMeta5;
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_integer tmp8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
modelica_integer tmp12;
modelica_metatype tmpMeta13;
modelica_metatype tmpMeta14;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_cache = __omcQ_24in_5Fcache;
tmpMeta1 = _args;
if (listEmpty(tmpMeta1)) MMC_THROW_INTERNAL();
tmpMeta2 = MMC_CAR(tmpMeta1);
tmpMeta3 = MMC_CDR(tmpMeta1);
if (listEmpty(tmpMeta3)) MMC_THROW_INTERNAL();
tmpMeta4 = MMC_CAR(tmpMeta3);
tmpMeta5 = MMC_CDR(tmpMeta3);
_e1 = tmpMeta2;
_e2 = tmpMeta4;
tmpMeta9 = omc_Ceval_ceval(threadData, _cache, _env, _e1, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta6);
_cache = tmpMeta9;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta6,0,1) == 0) MMC_THROW_INTERNAL();
tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta6), 2));
tmp8 = mmc_unbox_integer(tmpMeta7);
_i1 = tmp8;
tmpMeta13 = omc_Ceval_ceval(threadData, _cache, _env, _e2, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta10);
_cache = tmpMeta13;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta10,0,1) == 0) MMC_THROW_INTERNAL();
tmpMeta11 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta10), 2));
tmp12 = mmc_unbox_integer(tmpMeta11);
_i2 = tmp12;
tmpMeta14 = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(((_i1) ^ (_i2))));
_result = tmpMeta14;
_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_metatype tmpMeta1;
modelica_metatype tmpMeta2;
modelica_metatype tmpMeta3;
modelica_metatype tmpMeta4;
modelica_metatype tmpMeta5;
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_integer tmp8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
modelica_integer tmp12;
modelica_metatype tmpMeta13;
modelica_metatype tmpMeta14;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_cache = __omcQ_24in_5Fcache;
tmpMeta1 = _args;
if (listEmpty(tmpMeta1)) MMC_THROW_INTERNAL();
tmpMeta2 = MMC_CAR(tmpMeta1);
tmpMeta3 = MMC_CDR(tmpMeta1);
if (listEmpty(tmpMeta3)) MMC_THROW_INTERNAL();
tmpMeta4 = MMC_CAR(tmpMeta3);
tmpMeta5 = MMC_CDR(tmpMeta3);
_e1 = tmpMeta2;
_e2 = tmpMeta4;
tmpMeta9 = omc_Ceval_ceval(threadData, _cache, _env, _e1, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta6);
_cache = tmpMeta9;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta6,0,1) == 0) MMC_THROW_INTERNAL();
tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta6), 2));
tmp8 = mmc_unbox_integer(tmpMeta7);
_i1 = tmp8;
tmpMeta13 = omc_Ceval_ceval(threadData, _cache, _env, _e2, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta10);
_cache = tmpMeta13;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta10,0,1) == 0) MMC_THROW_INTERNAL();
tmpMeta11 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta10), 2));
tmp12 = mmc_unbox_integer(tmpMeta11);
_i2 = tmp12;
tmpMeta14 = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(((_i1) | (_i2))));
_result = tmpMeta14;
_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_metatype tmpMeta1;
modelica_metatype tmpMeta2;
modelica_metatype tmpMeta3;
modelica_metatype tmpMeta4;
modelica_metatype tmpMeta5;
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_integer tmp8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
modelica_integer tmp12;
modelica_metatype tmpMeta13;
modelica_metatype tmpMeta14;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_cache = __omcQ_24in_5Fcache;
tmpMeta1 = _args;
if (listEmpty(tmpMeta1)) MMC_THROW_INTERNAL();
tmpMeta2 = MMC_CAR(tmpMeta1);
tmpMeta3 = MMC_CDR(tmpMeta1);
if (listEmpty(tmpMeta3)) MMC_THROW_INTERNAL();
tmpMeta4 = MMC_CAR(tmpMeta3);
tmpMeta5 = MMC_CDR(tmpMeta3);
_e1 = tmpMeta2;
_e2 = tmpMeta4;
tmpMeta9 = omc_Ceval_ceval(threadData, _cache, _env, _e1, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta6);
_cache = tmpMeta9;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta6,0,1) == 0) MMC_THROW_INTERNAL();
tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta6), 2));
tmp8 = mmc_unbox_integer(tmpMeta7);
_i1 = tmp8;
tmpMeta13 = omc_Ceval_ceval(threadData, _cache, _env, _e2, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta10);
_cache = tmpMeta13;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta10,0,1) == 0) MMC_THROW_INTERNAL();
tmpMeta11 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta10), 2));
tmp12 = mmc_unbox_integer(tmpMeta11);
_i2 = tmp12;
tmpMeta14 = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(((_i1) & (_i2))));
_result = tmpMeta14;
_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[2] __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: {
modelica_metatype tmpMeta6;
if (!listEmpty(tmp4_1)) goto tmp3_end;
_i = intMaxLit();
tmpMeta6 = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(_i));
tmpMeta[0+0] = _inCache;
tmpMeta[0+1] = tmpMeta6;
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[2] __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: {
modelica_metatype tmpMeta6;
if (!listEmpty(tmp4_1)) goto tmp3_end;
_i = omc_System_numBits(threadData);
tmpMeta6 = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(_i));
tmpMeta[0+0] = _inCache;
tmpMeta[0+1] = tmpMeta6;
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[2] __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: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_3);
tmpMeta7 = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta7)) goto tmp3_end;
_exp1 = tmpMeta6;
_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);
tmpMeta8 = mmc_mk_box2(5, &Values_Value_STRING__desc, _s);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta8;
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[2] __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: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_3);
tmpMeta7 = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta7)) goto tmp3_end;
_exp = tmpMeta6;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta10 = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta8);
_cache = tmpMeta10;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta8,6,1) == 0) goto goto_2;
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta8), 2));
_vals = tmpMeta9;
tmpMeta11 = mmc_mk_box2(10, &Values_Value_META__ARRAY__desc, _vals);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta11;
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[2] __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: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
modelica_metatype tmpMeta13;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_3);
tmpMeta7 = MMC_CDR(tmp4_3);
if (listEmpty(tmpMeta7)) goto tmp3_end;
tmpMeta8 = MMC_CAR(tmpMeta7);
tmpMeta9 = MMC_CDR(tmpMeta7);
if (!listEmpty(tmpMeta9)) goto tmp3_end;
_exp1 = tmpMeta6;
_exp2 = tmpMeta8;
_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);
tmpMeta12 = omc_Ceval_ceval(threadData, _cache, _env, _exp2, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta10);
_cache = tmpMeta12;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta10,6,1) == 0) goto goto_2;
tmpMeta11 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta10), 2));
_vals = tmpMeta11;
_b = listMember(_val, _vals);
tmpMeta13 = mmc_mk_box2(6, &Values_Value_BOOL__desc, mmc_mk_boolean(_b));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta13;
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[2] __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: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
modelica_metatype tmpMeta13;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_3);
tmpMeta7 = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta7)) goto tmp3_end;
_exp1 = tmpMeta6;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta12 = omc_Ceval_ceval(threadData, _cache, _env, _exp1, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta8);
_cache = tmpMeta12;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta8,6,1) == 0) goto goto_2;
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta8), 2));
if (listEmpty(tmpMeta9)) goto goto_2;
tmpMeta10 = MMC_CAR(tmpMeta9);
tmpMeta11 = MMC_CDR(tmpMeta9);
_valList1 = tmpMeta11;
tmpMeta13 = mmc_mk_box2(9, &Values_Value_LIST__desc, _valList1);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta13;
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[2] __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: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_3);
tmpMeta7 = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta7)) goto tmp3_end;
_exp1 = tmpMeta6;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta10 = omc_Ceval_ceval(threadData, _cache, _env, _exp1, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta8);
_cache = tmpMeta10;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta8,6,1) == 0) goto goto_2;
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta8), 2));
_valList1 = tmpMeta9;
_valList = listReverse(_valList1);
tmpMeta11 = mmc_mk_box2(9, &Values_Value_LIST__desc, _valList);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta11;
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[2] __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: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
modelica_metatype tmpMeta13;
modelica_metatype tmpMeta14;
modelica_metatype tmpMeta15;
modelica_metatype tmpMeta16;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_3);
tmpMeta7 = MMC_CDR(tmp4_3);
if (listEmpty(tmpMeta7)) goto tmp3_end;
tmpMeta8 = MMC_CAR(tmpMeta7);
tmpMeta9 = MMC_CDR(tmpMeta7);
if (!listEmpty(tmpMeta9)) goto tmp3_end;
_exp1 = tmpMeta6;
_exp2 = tmpMeta8;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta12 = omc_Ceval_ceval(threadData, _cache, _env, _exp1, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta10);
_cache = tmpMeta12;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta10,6,1) == 0) goto goto_2;
tmpMeta11 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta10), 2));
_valList1 = tmpMeta11;
tmpMeta15 = omc_Ceval_ceval(threadData, _cache, _env, _exp2, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta13);
_cache = tmpMeta15;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta13,6,1) == 0) goto goto_2;
tmpMeta14 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta13), 2));
_valList2 = tmpMeta14;
_valList = listAppend(_valList1, _valList2);
tmpMeta16 = mmc_mk_box2(9, &Values_Value_LIST__desc, _valList);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta16;
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[2] __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: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_3);
tmpMeta7 = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta7)) goto tmp3_end;
_exp = tmpMeta6;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta10 = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta8);
_cache = tmpMeta10;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta8,6,1) == 0) goto goto_2;
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta8), 2));
_valList = tmpMeta9;
_i = listLength(_valList);
tmpMeta11 = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(_i));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta11;
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[2] __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: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
modelica_metatype tmpMeta13;
modelica_metatype tmpMeta14;
modelica_metatype tmpMeta15;
modelica_metatype tmpMeta16;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_3);
tmpMeta7 = MMC_CDR(tmp4_3);
if (listEmpty(tmpMeta7)) goto tmp3_end;
tmpMeta8 = MMC_CAR(tmpMeta7);
tmpMeta9 = MMC_CDR(tmpMeta7);
if (!listEmpty(tmpMeta9)) goto tmp3_end;
_exp1 = tmpMeta6;
_exp2 = tmpMeta8;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta12 = omc_Ceval_ceval(threadData, _cache, _env, _exp1, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta10);
_cache = tmpMeta12;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta10,6,1) == 0) goto goto_2;
tmpMeta11 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta10), 2));
_valList = tmpMeta11;
tmpMeta15 = omc_Ceval_ceval(threadData, _cache, _env, _exp2, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta13);
_cache = tmpMeta15;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta13,2,1) == 0) goto goto_2;
tmpMeta14 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta13), 2));
_str = tmpMeta14;
_chList = omc_List_map(threadData, _valList, boxvar_ValuesUtil_extractValueString);
_str = stringDelimitList(_chList, _str);
tmpMeta16 = mmc_mk_box2(5, &Values_Value_STRING__desc, _str);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta16;
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[2] __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: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_3);
tmpMeta7 = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta7)) goto tmp3_end;
_exp = tmpMeta6;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta10 = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta8);
_cache = tmpMeta10;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta8,6,1) == 0) goto goto_2;
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta8), 2));
_valList = tmpMeta9;
_chList = omc_List_map(threadData, _valList, boxvar_ValuesUtil_extractValueString);
_str = stringAppendList(_chList);
tmpMeta11 = mmc_mk_box2(5, &Values_Value_STRING__desc, _str);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta11;
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[2] __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: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_3);
tmpMeta7 = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta7)) goto tmp3_end;
_exp = tmpMeta6;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta10 = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta8);
_cache = tmpMeta10;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta8,6,1) == 0) goto goto_2;
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta8), 2));
_valList = tmpMeta9;
_chList = omc_List_map(threadData, _valList, boxvar_Ceval_extractValueStringChar);
_str = stringAppendList(_chList);
tmpMeta11 = mmc_mk_box2(5, &Values_Value_STRING__desc, _str);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta11;
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 tmpMeta1;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
tmpMeta1 = mmc_mk_box2(5, &Values_Value_STRING__desc, _str);
_val = tmpMeta1;
_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[2] __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: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_3);
tmpMeta7 = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta7)) goto tmp3_end;
_exp = tmpMeta6;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta10 = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta8);
_cache = tmpMeta10;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta8,2,1) == 0) goto goto_2;
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta8), 2));
_str = tmpMeta9;
_chList = stringListStringChar(_str);
_valList = omc_List_map(threadData, _chList, boxvar_Ceval_generateValueString);
tmpMeta11 = mmc_mk_box2(9, &Values_Value_LIST__desc, _valList);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta11;
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[2] __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_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_3);
tmpMeta7 = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta7)) goto tmp3_end;
_exp = tmpMeta6;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta10 = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta8);
_cache = tmpMeta10;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta8,2,1) == 0) goto goto_2;
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta8), 2));
_str = tmpMeta9;
_i = stringLength(_str);
tmpMeta11 = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(_i));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta11;
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[2] __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_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_3);
tmpMeta7 = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta7)) goto tmp3_end;
_exp = tmpMeta6;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta10 = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta8);
_cache = tmpMeta10;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta8,2,1) == 0) goto goto_2;
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta8), 2));
_str = tmpMeta9;
_i = stringInt(_str);
tmpMeta11 = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(_i));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta11;
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[2] __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_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_integer tmp10;
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_3);
tmpMeta7 = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta7)) goto tmp3_end;
_exp = tmpMeta6;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta11 = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta8);
_cache = tmpMeta11;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta8,0,1) == 0) goto goto_2;
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta8), 2));
tmp10 = mmc_unbox_integer(tmpMeta9);
_i = tmp10;
_str = intStringChar(_i);
tmpMeta12 = mmc_mk_box2(5, &Values_Value_STRING__desc, _str);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta12;
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[2] __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_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_3);
tmpMeta7 = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta7)) goto tmp3_end;
_exp = tmpMeta6;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta10 = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta8);
_cache = tmpMeta10;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta8,2,1) == 0) goto goto_2;
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta8), 2));
_str = tmpMeta9;
_i = stringCharInt(_str);
tmpMeta11 = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(_i));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta11;
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[2] __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_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_real tmp10;
modelica_metatype tmpMeta11;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_3);
tmpMeta7 = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta7)) goto tmp3_end;
_exp = tmpMeta6;
_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);
tmpMeta8 = _v;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta8,1,1) == 0) goto goto_2;
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta8), 2));
tmp10 = mmc_unbox_real(tmpMeta9);
_r = tmp10;
_str = realString(_r);
tmpMeta11 = mmc_mk_box2(5, &Values_Value_STRING__desc, _str);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta11;
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[2] __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_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_integer tmp10;
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_3);
tmpMeta7 = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta7)) goto tmp3_end;
_exp = tmpMeta6;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta11 = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta8);
_cache = tmpMeta11;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta8,0,1) == 0) goto goto_2;
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta8), 2));
tmp10 = mmc_unbox_integer(tmpMeta9);
_i = tmp10;
_str = intString(_i);
tmpMeta12 = mmc_mk_box2(5, &Values_Value_STRING__desc, _str);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta12;
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[2] __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: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_3);
tmpMeta7 = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta7)) goto tmp3_end;
_exp = tmpMeta6;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta10 = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta8);
_cache = tmpMeta10;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta8,2,1) == 0) goto goto_2;
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta8), 2));
_str = tmpMeta9;
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[2] __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_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_integer tmp8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
modelica_integer tmp12;
modelica_metatype tmpMeta13;
_cache = tmp4_1;
tmpMeta9 = omc_Ceval_ceval(threadData, _cache, _inEnv, _lengthExp, _inBoolean, _inMsg, ((modelica_integer) 1) + _numIter, &tmpMeta6);
_cache = tmpMeta9;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta6,0,1) == 0) goto goto_2;
tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta6), 2));
tmp8 = mmc_unbox_integer(tmpMeta7);
_min_length = tmp8;
tmpMeta13 = omc_Ceval_ceval(threadData, _cache, _inEnv, _justifiedExp, _inBoolean, _inMsg, ((modelica_integer) 1) + _numIter, &tmpMeta10);
_cache = tmpMeta13;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta10,3,1) == 0) goto goto_2;
tmpMeta11 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta10), 2));
tmp12 = mmc_unbox_integer(tmpMeta11);
_left_justified = tmp12;
_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[2] __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_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
modelica_string tmp12 = 0;
modelica_metatype tmpMeta21;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_3);
tmpMeta7 = MMC_CDR(tmp4_3);
if (listEmpty(tmpMeta7)) goto tmp3_end;
tmpMeta8 = MMC_CAR(tmpMeta7);
tmpMeta9 = MMC_CDR(tmpMeta7);
if (listEmpty(tmpMeta9)) goto tmp3_end;
tmpMeta10 = MMC_CAR(tmpMeta9);
tmpMeta11 = MMC_CDR(tmpMeta9);
if (!listEmpty(tmpMeta11)) goto tmp3_end;
_exp = tmpMeta6;
_len_exp = tmpMeta8;
_justified_exp = tmpMeta10;
_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 tmp15_1;
tmp15_1 = _v;
{
int tmp15;
{
switch (MMC_SWITCH_CAST(valueConstructor(tmp15_1))) {
case 3: {
modelica_metatype tmpMeta16;
modelica_integer tmp17;
if (mmc__uniontype__metarecord__typedef__equal(tmp15_1,0,1) == 0) goto tmp14_end;
tmpMeta16 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp15_1), 2));
tmp17 = mmc_unbox_integer(tmpMeta16);
_i = tmp17;
tmp12 = intString(_i);
goto tmp14_done;
}
case 6: {
modelica_metatype tmpMeta18;
modelica_integer tmp19;
if (mmc__uniontype__metarecord__typedef__equal(tmp15_1,3,1) == 0) goto tmp14_end;
tmpMeta18 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp15_1), 2));
tmp19 = mmc_unbox_integer(tmpMeta18);
_b = tmp19;
tmp12 = (_b?_OMC_LIT85:_OMC_LIT86);
goto tmp14_done;
}
case 7: {
modelica_metatype tmpMeta20;
if (mmc__uniontype__metarecord__typedef__equal(tmp15_1,4,2) == 0) goto tmp14_end;
tmpMeta20 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp15_1), 2));
_p = tmpMeta20;
tmp12 = omc_AbsynUtil_pathLastIdent(threadData, _p);
goto tmp14_done;
}
}
goto tmp14_end;
tmp14_end: ;
}
goto goto_13;
goto_13:;
goto goto_2;
goto tmp14_done;
tmp14_done:;
}
}
_str = tmp12;
_cache = omc_Ceval_cevalBuiltinStringFormat(threadData, _cache, _env, _str, _len_exp, _justified_exp, _impl, _msg, ((modelica_integer) 1) + _numIter ,&_str);
tmpMeta21 = mmc_mk_box2(5, &Values_Value_STRING__desc, _str);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta21;
goto tmp3_done;
}
case 1: {
modelica_metatype tmpMeta22;
modelica_metatype tmpMeta23;
modelica_metatype tmpMeta24;
modelica_metatype tmpMeta25;
modelica_metatype tmpMeta26;
modelica_metatype tmpMeta27;
modelica_metatype tmpMeta28;
modelica_metatype tmpMeta29;
modelica_metatype tmpMeta30;
modelica_metatype tmpMeta31;
modelica_real tmp32;
modelica_metatype tmpMeta33;
modelica_metatype tmpMeta34;
modelica_metatype tmpMeta35;
modelica_integer tmp36;
modelica_metatype tmpMeta37;
modelica_metatype tmpMeta38;
modelica_metatype tmpMeta39;
modelica_integer tmp40;
modelica_metatype tmpMeta41;
modelica_metatype tmpMeta42;
modelica_metatype tmpMeta43;
modelica_integer tmp44;
modelica_metatype tmpMeta45;
modelica_metatype tmpMeta46;
modelica_metatype tmpMeta47;
modelica_metatype tmpMeta48;
modelica_metatype tmpMeta49;
modelica_metatype tmpMeta50;
modelica_metatype tmpMeta51;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta22 = MMC_CAR(tmp4_3);
tmpMeta23 = MMC_CDR(tmp4_3);
if (listEmpty(tmpMeta23)) goto tmp3_end;
tmpMeta24 = MMC_CAR(tmpMeta23);
tmpMeta25 = MMC_CDR(tmpMeta23);
if (listEmpty(tmpMeta25)) goto tmp3_end;
tmpMeta26 = MMC_CAR(tmpMeta25);
tmpMeta27 = MMC_CDR(tmpMeta25);
if (listEmpty(tmpMeta27)) goto tmp3_end;
tmpMeta28 = MMC_CAR(tmpMeta27);
tmpMeta29 = MMC_CDR(tmpMeta27);
if (!listEmpty(tmpMeta29)) goto tmp3_end;
_exp = tmpMeta22;
_sig_dig = tmpMeta24;
_len_exp = tmpMeta26;
_justified_exp = tmpMeta28;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta33 = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta30);
_cache = tmpMeta33;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta30,1,1) == 0) goto goto_2;
tmpMeta31 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta30), 2));
tmp32 = mmc_unbox_real(tmpMeta31);
_r = tmp32;
tmpMeta37 = omc_Ceval_ceval(threadData, _cache, _env, _len_exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta34);
_cache = tmpMeta37;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta34,0,1) == 0) goto goto_2;
tmpMeta35 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta34), 2));
tmp36 = mmc_unbox_integer(tmpMeta35);
_len = tmp36;
tmpMeta41 = omc_Ceval_ceval(threadData, _cache, _env, _justified_exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta38);
_cache = tmpMeta41;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta38,3,1) == 0) goto goto_2;
tmpMeta39 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta38), 2));
tmp40 = mmc_unbox_integer(tmpMeta39);
_left_just = tmp40;
tmpMeta45 = omc_Ceval_ceval(threadData, _cache, _env, _sig_dig, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta42);
_cache = tmpMeta45;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta42,0,1) == 0) goto goto_2;
tmpMeta43 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta42), 2));
tmp44 = mmc_unbox_integer(tmpMeta43);
_sig = tmp44;
tmpMeta46 = stringAppend(_OMC_LIT87,(_left_just?_OMC_LIT88:_OMC_LIT1));
tmpMeta47 = stringAppend(tmpMeta46,intString(_len));
tmpMeta48 = stringAppend(tmpMeta47,_OMC_LIT82);
tmpMeta49 = stringAppend(tmpMeta48,intString(_sig));
tmpMeta50 = stringAppend(tmpMeta49,_OMC_LIT89);
_format = tmpMeta50;
_str = omc_System_snprintff(threadData, _format, ((modelica_integer) 20) + _len, _r);
tmpMeta51 = mmc_mk_box2(5, &Values_Value_STRING__desc, _str);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta51;
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[2] __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_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
modelica_metatype tmpMeta13;
modelica_metatype tmpMeta14;
modelica_metatype tmpMeta15;
modelica_metatype tmpMeta16;
modelica_integer tmp17;
modelica_metatype tmpMeta18;
modelica_metatype tmpMeta19;
modelica_metatype tmpMeta20;
modelica_integer tmp21;
modelica_metatype tmpMeta22;
modelica_metatype tmpMeta23;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_3);
tmpMeta7 = MMC_CDR(tmp4_3);
if (listEmpty(tmpMeta7)) goto tmp3_end;
tmpMeta8 = MMC_CAR(tmpMeta7);
tmpMeta9 = MMC_CDR(tmpMeta7);
if (listEmpty(tmpMeta9)) goto tmp3_end;
tmpMeta10 = MMC_CAR(tmpMeta9);
tmpMeta11 = MMC_CDR(tmpMeta9);
if (!listEmpty(tmpMeta11)) goto tmp3_end;
_str_exp = tmpMeta6;
_start_exp = tmpMeta8;
_stop_exp = tmpMeta10;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta14 = omc_Ceval_ceval(threadData, _cache, _env, _str_exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta12);
_cache = tmpMeta14;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta12,2,1) == 0) goto goto_2;
tmpMeta13 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta12), 2));
_str = tmpMeta13;
tmpMeta18 = omc_Ceval_ceval(threadData, _cache, _env, _start_exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta15);
_cache = tmpMeta18;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta15,0,1) == 0) goto goto_2;
tmpMeta16 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta15), 2));
tmp17 = mmc_unbox_integer(tmpMeta16);
_start = tmp17;
tmpMeta22 = omc_Ceval_ceval(threadData, _cache, _env, _stop_exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta19);
_cache = tmpMeta22;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta19,0,1) == 0) goto goto_2;
tmpMeta20 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta19), 2));
tmp21 = mmc_unbox_integer(tmpMeta20);
_stop = tmp21;
_str = substring(_str, _start, _stop);
tmpMeta23 = mmc_mk_box2(5, &Values_Value_STRING__desc, _str);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta23;
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 tmpMeta1;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
volatile modelica_metatype tmp4_1;volatile modelica_integer tmp4_2;
tmp4_1 = _inValue;
tmp4_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 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: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
if (0 != tmp4_2) goto tmp3_end;
_v = tmp4_1;
tmpMeta6 = mmc_mk_cons(_v, MMC_REFSTRUCTLIT(mmc_nil));
tmpMeta7 = mmc_mk_box3(8, &Values_Value_ARRAY__desc, tmpMeta6, _OMC_LIT90);
tmpMeta1 = tmpMeta7;
goto tmp3_done;
}
case 1: {
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
modelica_integer tmp12;
modelica_metatype tmpMeta13;
modelica_metatype tmpMeta14;
modelica_metatype tmpMeta15;
modelica_metatype tmpMeta16;
modelica_metatype tmpMeta17;
modelica_metatype tmpMeta18;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,5,2) == 0) goto tmp3_end;
tmpMeta8 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 2));
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 3));
if (listEmpty(tmpMeta9)) goto tmp3_end;
tmpMeta10 = MMC_CAR(tmpMeta9);
tmpMeta11 = MMC_CDR(tmpMeta9);
tmp12 = mmc_unbox_integer(tmpMeta10);
_vs = tmpMeta8;
_i = tmp12;
_n = tmp4_2;
_n_1 = ((modelica_integer) -1) + _n;
tmpMeta13 = omc_List_map1(threadData, _vs, boxvar_Ceval_cevalBuiltinPromote2, mmc_mk_integer(_n_1));
if (listEmpty(tmpMeta13)) goto goto_2;
tmpMeta14 = MMC_CAR(tmpMeta13);
tmpMeta15 = MMC_CDR(tmpMeta13);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta14,5,2) == 0) goto goto_2;
tmpMeta16 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta14), 3));
_vs_1 = tmpMeta13;
_il = tmpMeta16;
tmpMeta17 = mmc_mk_cons(mmc_mk_integer(_i), _il);
tmpMeta18 = mmc_mk_box3(8, &Values_Value_ARRAY__desc, _vs_1, tmpMeta17);
tmpMeta1 = tmpMeta18;
goto tmp3_done;
}
case 2: {
modelica_boolean tmp19;
modelica_metatype tmpMeta21;
modelica_metatype tmpMeta22;
modelica_metatype tmpMeta23;
modelica_metatype tmpMeta24;
modelica_metatype tmpMeta25;
modelica_metatype tmpMeta26;
_v = tmp4_1;
_n = tmp4_2;
tmp19 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmpMeta21 = _v;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta21,5,2) == 0) goto goto_20;
tmp19 = 1;
goto goto_20;
goto_20:;
MMC_CATCH_INTERNAL(mmc_jumper)
if (tmp19) {goto goto_2;}
_n_1 = ((modelica_integer) -1) + _n;
tmpMeta22 = omc_Ceval_cevalBuiltinPromote2(threadData, _v, _n_1);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta22,5,2) == 0) goto goto_2;
tmpMeta23 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta22), 3));
_v = tmpMeta22;
_il = tmpMeta23;
tmpMeta24 = mmc_mk_cons(_v, MMC_REFSTRUCTLIT(mmc_nil));
tmpMeta25 = mmc_mk_cons(mmc_mk_integer(((modelica_integer) 1)), _il);
tmpMeta26 = mmc_mk_box3(8, &Values_Value_ARRAY__desc, tmpMeta24, tmpMeta25);
tmpMeta1 = tmpMeta26;
goto tmp3_done;
}
case 3: {
modelica_boolean tmp27;
tmp27 = omc_Flags_isSet(threadData, _OMC_LIT44);
if (1 != tmp27) goto goto_2;
omc_Debug_trace(threadData, _OMC_LIT91);
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 < 4) {
goto tmp3_top;
}
MMC_THROW_INTERNAL();
tmp3_done2:;
}
}
_outValue = tmpMeta1;
_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[2] __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_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
modelica_metatype tmpMeta13;
modelica_metatype tmpMeta14;
modelica_integer tmp15;
modelica_metatype tmpMeta16;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_3);
tmpMeta7 = MMC_CDR(tmp4_3);
if (listEmpty(tmpMeta7)) goto tmp3_end;
tmpMeta8 = MMC_CAR(tmpMeta7);
tmpMeta9 = MMC_CDR(tmpMeta7);
if (!listEmpty(tmpMeta9)) goto tmp3_end;
_arr = tmpMeta6;
_dim = tmpMeta8;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta12 = omc_Ceval_ceval(threadData, _cache, _env, _arr, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta10);
_cache = tmpMeta12;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta10,5,2) == 0) goto goto_2;
tmpMeta11 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta10), 3));
_arr_val = tmpMeta10;
_dims = tmpMeta11;
tmpMeta16 = omc_Ceval_ceval(threadData, _cache, _env, _dim, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta13);
_cache = tmpMeta16;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta13,0,1) == 0) goto goto_2;
tmpMeta14 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta13), 2));
tmp15 = mmc_unbox_integer(tmpMeta14);
_dim_val = tmp15;
_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[2] __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_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_integer tmp10;
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
modelica_metatype tmpMeta26;
modelica_metatype tmpMeta27;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_3);
tmpMeta7 = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta7)) goto tmp3_end;
_dim = tmpMeta6;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta11 = omc_Ceval_ceval(threadData, _cache, _env, _dim, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta8);
_cache = tmpMeta11;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta8,0,1) == 0) goto goto_2;
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta8), 2));
tmp10 = mmc_unbox_integer(tmpMeta9);
_dimension = tmp10;
{
modelica_metatype __omcQ_24tmpVar17;
modelica_metatype* tmp13;
modelica_metatype tmpMeta14;
modelica_metatype tmpMeta15;
modelica_metatype tmpMeta21;
modelica_metatype tmpMeta22;
modelica_metatype __omcQ_24tmpVar16;
modelica_integer tmp23;
modelica_integer tmp24;
modelica_integer tmp25;
modelica_integer _j;
tmp24 = 1;
tmp25 = _dimension;
_j = ((modelica_integer) 1);
_j = (((modelica_integer) 1) /* Range start-value */)-tmp24;
tmpMeta14 = MMC_REFSTRUCTLIT(mmc_nil);
__omcQ_24tmpVar17 = tmpMeta14;
tmp13 = &__omcQ_24tmpVar17;
while(1) {
tmp23 = 1;
if (tmp24 > 0 ? _j+tmp24 <= tmp25 : _j+tmp24 >= tmp25) {
_j += tmp24;
tmp23--;
}
if (tmp23 == 0) {
{
modelica_metatype __omcQ_24tmpVar15;
modelica_metatype* tmp16;
modelica_metatype tmpMeta17;
modelica_metatype __omcQ_24tmpVar14;
modelica_integer tmp18;
modelica_integer tmp19;
modelica_integer tmp20;
modelica_integer _i;
tmp19 = 1;
tmp20 = _dimension;
_i = ((modelica_integer) 1);
_i = (((modelica_integer) 1) /* Range start-value */)-tmp19;
tmpMeta17 = MMC_REFSTRUCTLIT(mmc_nil);
__omcQ_24tmpVar15 = tmpMeta17;
tmp16 = &__omcQ_24tmpVar15;
while(1) {
tmp18 = 1;
if (tmp19 > 0 ? _i+tmp19 <= tmp20 : _i+tmp19 >= tmp20) {
_i += tmp19;
tmp18--;
}
if (tmp18 == 0) {
__omcQ_24tmpVar14 = ((_i == _j)?_OMC_LIT92:_OMC_LIT64);
*tmp16 = mmc_mk_cons(__omcQ_24tmpVar14,0);
tmp16 = &MMC_CDR(*tmp16);
} else if (tmp18 == 1) {
break;
} else {
goto goto_2;
}
}
*tmp16 = mmc_mk_nil();
tmpMeta15 = __omcQ_24tmpVar15;
}
tmpMeta21 = mmc_mk_cons(mmc_mk_integer(_dimension), MMC_REFSTRUCTLIT(mmc_nil));
tmpMeta22 = mmc_mk_box3(8, &Values_Value_ARRAY__desc, tmpMeta15, tmpMeta21);
__omcQ_24tmpVar16 = tmpMeta22;
*tmp13 = mmc_mk_cons(__omcQ_24tmpVar16,0);
tmp13 = &MMC_CDR(*tmp13);
} else if (tmp23 == 1) {
break;
} else {
goto goto_2;
}
}
*tmp13 = mmc_mk_nil();
tmpMeta12 = __omcQ_24tmpVar17;
}
tmpMeta26 = mmc_mk_cons(mmc_mk_integer(_dimension), mmc_mk_cons(mmc_mk_integer(_dimension), MMC_REFSTRUCTLIT(mmc_nil)));
tmpMeta27 = mmc_mk_box3(8, &Values_Value_ARRAY__desc, tmpMeta12, tmpMeta26);
_res = tmpMeta27;
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[2] __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_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_integer tmp10;
modelica_metatype tmpMeta11;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_3);
tmpMeta7 = MMC_CDR(tmp4_3);
_dim = tmpMeta6;
_matrices = tmpMeta7;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta11 = omc_Ceval_ceval(threadData, _cache, _env, _dim, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta8);
_cache = tmpMeta11;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta8,0,1) == 0) goto goto_2;
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta8), 2));
tmp10 = mmc_unbox_integer(tmpMeta9);
_dim_int = tmp10;
_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[2] __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: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_3);
tmpMeta7 = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta7)) goto tmp3_end;
_exp = tmpMeta6;
_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[2] __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_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_real tmp10;
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_3);
tmpMeta7 = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta7)) goto tmp3_end;
_exp = tmpMeta6;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta11 = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta8);
_cache = tmpMeta11;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta8,1,1) == 0) goto goto_2;
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta8), 2));
tmp10 = mmc_unbox_real(tmpMeta9);
_rv = tmp10;
_rv_1 = exp(_rv);
tmpMeta12 = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_1));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta12;
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[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_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_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_boolean tmp8_c0 __attribute__((unused)) = 0;
modelica_boolean tmp8_c1 __attribute__((unused)) = 0;
modelica_boolean tmp8_c2 __attribute__((unused)) = 0;
modelica_metatype tmpMeta17;
modelica_metatype tmpMeta18;
modelica_metatype tmpMeta19;
modelica_metatype tmpMeta20;
modelica_metatype tmpMeta21;
modelica_metatype tmpMeta22;
modelica_metatype tmpMeta23;
modelica_metatype tmpMeta24;
modelica_integer tmp25;
modelica_metatype tmpMeta26;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_3);
tmpMeta7 = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta7)) goto tmp3_end;
_exp = tmpMeta6;
_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 tmp11_1;
tmp11_1 = _v;
{
volatile mmc_switch_type tmp11;
int tmp12;
tmp11 = 0;
for (; tmp11 < 2; tmp11++) {
switch (MMC_SWITCH_CAST(tmp11)) {
case 0: {
modelica_metatype tmpMeta13;
modelica_real tmp14;
if (mmc__uniontype__metarecord__typedef__equal(tmp11_1,1,1) == 0) goto tmp10_end;
tmpMeta13 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp11_1), 2));
tmp14 = mmc_unbox_real(tmpMeta13);
_rv = tmp14;
tmp8_c0 = (_rv > 0.0);
tmp8_c1 = (_rv < 0.0);
tmp8_c2 = (_rv == 0.0);
goto tmp10_done;
}
case 1: {
modelica_metatype tmpMeta15;
modelica_integer tmp16;
if (mmc__uniontype__metarecord__typedef__equal(tmp11_1,0,1) == 0) goto tmp10_end;
tmpMeta15 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp11_1), 2));
tmp16 = mmc_unbox_integer(tmpMeta15);
_iv = tmp16;
tmp8_c0 = (_iv > ((modelica_integer) 0));
tmp8_c1 = (_iv < ((modelica_integer) 0));
tmp8_c2 = (_iv == ((modelica_integer) 0));
goto tmp10_done;
}
}
goto tmp10_end;
tmp10_end: ;
}
goto goto_9;
goto_9:;
goto goto_2;
goto tmp10_done;
tmp10_done:;
}
}
_b1 = tmp8_c0;
_b2 = tmp8_c1;
_b3 = tmp8_c2;
tmpMeta18 = mmc_mk_box2(0, mmc_mk_boolean(_b1), mmc_mk_integer(((modelica_integer) 1)));
tmpMeta19 = mmc_mk_box2(0, mmc_mk_boolean(_b2), mmc_mk_integer(((modelica_integer) -1)));
tmpMeta20 = mmc_mk_box2(0, mmc_mk_boolean(_b3), mmc_mk_integer(((modelica_integer) 0)));
tmpMeta17 = mmc_mk_cons(tmpMeta18, mmc_mk_cons(tmpMeta19, mmc_mk_cons(tmpMeta20, MMC_REFSTRUCTLIT(mmc_nil))));
tmpMeta21 = omc_List_select(threadData, tmpMeta17, boxvar_Util_tuple21);
if (listEmpty(tmpMeta21)) goto goto_2;
tmpMeta22 = MMC_CAR(tmpMeta21);
tmpMeta23 = MMC_CDR(tmpMeta21);
tmpMeta24 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta22), 2));
tmp25 = mmc_unbox_integer(tmpMeta24);
if (!listEmpty(tmpMeta23)) goto goto_2;
_iv_1 = tmp25;
tmpMeta26 = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(_iv_1));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta26;
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[2] __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_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_real tmp10;
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_3);
tmpMeta7 = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta7)) goto tmp3_end;
_exp = tmpMeta6;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta11 = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta8);
_cache = tmpMeta11;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta8,1,1) == 0) goto goto_2;
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta8), 2));
tmp10 = mmc_unbox_real(tmpMeta9);
_rv = tmp10;
_rv_1 = fabs(_rv);
tmpMeta12 = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_1));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta12;
goto tmp3_done;
}
case 1: {
modelica_metatype tmpMeta13;
modelica_metatype tmpMeta14;
modelica_metatype tmpMeta15;
modelica_metatype tmpMeta16;
modelica_integer tmp17;
modelica_metatype tmpMeta18;
modelica_metatype tmpMeta19;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta13 = MMC_CAR(tmp4_3);
tmpMeta14 = MMC_CDR(tmp4_3);
if (!listEmpty(tmpMeta14)) goto tmp3_end;
_exp = tmpMeta13;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta18 = omc_Ceval_ceval(threadData, _cache, _env, _exp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta15);
_cache = tmpMeta18;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta15,0,1) == 0) goto goto_2;
tmpMeta16 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta15), 2));
tmp17 = mmc_unbox_integer(tmpMeta16);
_iv = tmp17;
_iv = labs(_iv);
tmpMeta19 = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(_iv));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta19;
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_metatype tmpMeta1;
modelica_metatype tmpMeta2;
modelica_integer tmp3;
modelica_metatype tmpMeta4;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
tmpMeta1 = listGet(_inDims, _inIndex);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta1,0,1) == 0) MMC_THROW_INTERNAL();
tmpMeta2 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta1), 2));
tmp3 = mmc_unbox_integer(tmpMeta2);
_v = tmp3;
tmpMeta4 = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(_v));
_outValue = tmpMeta4;
_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 tmpMeta1;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
volatile modelica_metatype tmp4_1;volatile modelica_integer tmp4_2;
tmp4_1 = _inValue;
tmp4_2 = _inInteger;
{
modelica_integer _dim;
modelica_integer _ind_1;
modelica_integer _ind;
modelica_metatype _lst = NULL;
modelica_metatype _l = 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: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
if (1 != tmp4_2) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,5,2) == 0) goto tmp3_end;
tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 2));
_lst = tmpMeta6;
_dim = listLength(_lst);
tmpMeta7 = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(_dim));
tmpMeta1 = tmpMeta7;
goto tmp3_done;
}
case 1: {
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,5,2) == 0) goto tmp3_end;
tmpMeta8 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 2));
if (listEmpty(tmpMeta8)) goto tmp3_end;
tmpMeta9 = MMC_CAR(tmpMeta8);
tmpMeta10 = MMC_CDR(tmpMeta8);
_l = tmpMeta9;
_ind = tmp4_2;
_ind_1 = ((modelica_integer) -1) + _ind;
tmpMeta1 = omc_Ceval_cevalBuiltinSize2(threadData, _l, _ind_1);
goto tmp3_done;
}
case 2: {
modelica_boolean tmp11;
tmp11 = omc_Flags_isSet(threadData, _OMC_LIT44);
if (1 != tmp11) goto goto_2;
omc_Debug_trace(threadData, _OMC_LIT93);
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 < 3) {
goto tmp3_top;
}
MMC_THROW_INTERNAL();
tmp3_done2:;
}
}
_outValue = tmpMeta1;
_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[2] __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_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_integer tmp8;
modelica_metatype tmpMeta9;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,17,3) == 0) goto tmp3_end;
tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
if (mmc__uniontype__metarecord__typedef__equal(tmp4_4,0,1) == 0) goto tmp3_end;
tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_4), 2));
tmp8 = mmc_unbox_integer(tmpMeta7);
if (1 != tmp8) goto tmp3_end;
_mat = tmpMeta6;
_cache = tmp4_1;
tmp4 += 1;
_i = listLength(_mat);
tmpMeta9 = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(_i));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta9;
goto tmp3_done;
}
case 1: {
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
modelica_integer tmp12;
modelica_metatype tmpMeta13;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,17,3) == 0) goto tmp3_end;
tmpMeta10 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
if (mmc__uniontype__metarecord__typedef__equal(tmp4_4,0,1) == 0) goto tmp3_end;
tmpMeta11 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_4), 2));
tmp12 = mmc_unbox_integer(tmpMeta11);
if (2 != tmp12) goto tmp3_end;
_mat = tmpMeta10;
_cache = tmp4_1;
_i = listLength(listHead(_mat));
tmpMeta13 = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(_i));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta13;
goto tmp3_done;
}
case 2: {
modelica_metatype tmpMeta14;
modelica_metatype tmpMeta15;
modelica_integer tmp16;
modelica_boolean tmp17;
modelica_metatype tmpMeta18;
modelica_metatype tmpMeta19;
modelica_integer tmp20;
modelica_metatype tmpMeta21;
modelica_metatype tmpMeta22;
modelica_metatype tmpMeta23;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,17,3) == 0) goto tmp3_end;
tmpMeta14 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
if (mmc__uniontype__metarecord__typedef__equal(tmp4_4,0,1) == 0) goto tmp3_end;
tmpMeta15 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_4), 2));
tmp16 = mmc_unbox_integer(tmpMeta15);
_mat = tmpMeta14;
_dim = tmp16;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_5;
_msg = tmp4_6;
tmp4 += 5;
_bl = (_dim > ((modelica_integer) 2));
tmp17 = _bl;
if (1 != tmp17) goto goto_2;
_dim_1 = ((modelica_integer) -2) + _dim;
_e = listHead(listHead(_mat));
tmpMeta21 = mmc_mk_box2(3, &DAE_Exp_ICONST__desc, mmc_mk_integer(_dim_1));
tmpMeta22 = omc_Ceval_cevalBuiltinSize(threadData, _cache, _env, _e, tmpMeta21, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta18);
_cache = tmpMeta22;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta18,0,1) == 0) goto goto_2;
tmpMeta19 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta18), 2));
tmp20 = mmc_unbox_integer(tmpMeta19);
_i = tmp20;
tmpMeta23 = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(_i));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta23;
goto tmp3_done;
}
case 3: {
modelica_metatype tmpMeta24;
modelica_boolean tmp25;
modelica_metatype tmpMeta26;
modelica_metatype tmpMeta27;
modelica_metatype tmpMeta28;
modelica_metatype tmpMeta29;
modelica_metatype tmpMeta30;
modelica_integer tmp31;
modelica_metatype tmpMeta32;
modelica_metatype tmpMeta33;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,6,2) == 0) goto tmp3_end;
tmpMeta24 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
_cr = tmpMeta24;
_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);
tmp25 = omc_Types_dimensionsKnown(threadData, _tp);
if (1 != tmp25) goto goto_2;
tmpMeta26 = omc_Types_getDimensionSizes(threadData, _tp);
if (listEmpty(tmpMeta26)) goto goto_2;
tmpMeta27 = MMC_CAR(tmpMeta26);
tmpMeta28 = MMC_CDR(tmpMeta26);
_sizelst = tmpMeta26;
tmpMeta32 = omc_Ceval_ceval(threadData, _cache, _env, _dimExp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta29);
_cache = tmpMeta32;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta29,0,1) == 0) goto goto_2;
tmpMeta30 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta29), 2));
tmp31 = mmc_unbox_integer(tmpMeta30);
_dim = tmp31;
_i = mmc_unbox_integer(listGet(_sizelst, _dim));
tmpMeta33 = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(_i));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta33;
goto tmp3_done;
}
case 4: {
modelica_metatype tmpMeta34;
modelica_metatype tmpMeta35;
modelica_metatype tmpMeta36;
modelica_integer tmp37;
modelica_metatype tmpMeta38;
if (0 != tmp4_5) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,6,2) == 0) goto tmp3_end;
tmpMeta34 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
_impl = tmp4_5;
_cr = tmpMeta34;
_cache = tmp4_1;
_env = tmp4_2;
_dimExp = tmp4_4;
_msg = tmp4_6;
_cache = omc_InstUtil_elabComponentArraydimFromEnv(threadData, _cache, _env, _cr, _OMC_LIT3 ,&_dims);
tmpMeta38 = omc_Ceval_ceval(threadData, _cache, _env, _dimExp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta35);
_cache = tmpMeta38;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta35,0,1) == 0) goto goto_2;
tmpMeta36 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta35), 2));
tmp37 = mmc_unbox_integer(tmpMeta36);
_dimv = tmp37;
_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: {
modelica_metatype tmpMeta39;
modelica_metatype tmpMeta40;
modelica_metatype tmpMeta41;
modelica_metatype tmpMeta42;
if (0 != tmp4_5) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,6,2) == 0) goto tmp3_end;
tmpMeta39 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmp4_6,0,1) == 0) goto tmp3_end;
tmpMeta40 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_6), 2));
_cr = tmpMeta39;
_info = tmpMeta40;
_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);
tmpMeta41 = 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(tmpMeta41);
tmpMeta42 = mmc_mk_cons(_size_str, MMC_REFSTRUCTLIT(mmc_nil));
omc_Error_addSourceMessage(threadData, _OMC_LIT100, tmpMeta42, _info);
}
else
{
{
modelica_metatype tmp45_1;
tmp45_1 = _binding;
{
volatile mmc_switch_type tmp45;
int tmp46;
tmp45 = 0;
for (; tmp45 < 1; tmp45++) {
switch (MMC_SWITCH_CAST(tmp45)) {
case 0: {
modelica_metatype tmpMeta47;
if (mmc__uniontype__metarecord__typedef__equal(tmp45_1,0,0) == 0) goto tmp44_end;
_expstr = omc_ExpressionDump_printExpStr(threadData, _inExp2);
tmpMeta47 = mmc_mk_cons(_expstr, MMC_REFSTRUCTLIT(mmc_nil));
omc_Error_addSourceMessage(threadData, _OMC_LIT96, tmpMeta47, _info);
goto goto_43;
goto tmp44_done;
}
}
goto tmp44_end;
tmp44_end: ;
}
goto goto_43;
goto_43:;
goto goto_2;
goto tmp44_done;
tmp44_done:;
}
}
;
}
goto goto_2;
goto tmp3_done;
}
case 6: {
modelica_metatype tmpMeta48;
modelica_metatype tmpMeta49;
modelica_metatype tmpMeta50;
modelica_integer tmp51;
modelica_metatype tmpMeta52;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,6,2) == 0) goto tmp3_end;
tmpMeta48 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
_cr = tmpMeta48;
_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);
tmpMeta52 = omc_Ceval_ceval(threadData, _cache, _env, _dimExp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta49);
_cache = tmpMeta52;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta49,0,1) == 0) goto goto_2;
tmpMeta50 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta49), 2));
tmp51 = mmc_unbox_integer(tmpMeta50);
_dimv = tmp51;
_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_metatype tmpMeta53;
modelica_metatype tmpMeta54;
modelica_metatype tmpMeta55;
modelica_metatype tmpMeta56;
modelica_metatype tmpMeta57;
modelica_integer tmp58;
modelica_metatype tmpMeta59;
modelica_metatype tmpMeta60;
modelica_metatype tmpMeta61;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,16,3) == 0) goto tmp3_end;
tmpMeta53 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
if (listEmpty(tmpMeta53)) goto tmp3_end;
tmpMeta54 = MMC_CAR(tmpMeta53);
tmpMeta55 = MMC_CDR(tmpMeta53);
_exp = tmpMeta54;
_es = tmpMeta55;
_cache = tmp4_1;
_env = tmp4_2;
_dimExp = tmp4_4;
_impl = tmp4_5;
_msg = tmp4_6;
omc_Expression_typeof(threadData, _exp);
tmpMeta59 = omc_Ceval_ceval(threadData, _cache, _env, _dimExp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta56);
_cache = tmpMeta59;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta56,0,1) == 0) goto goto_2;
tmpMeta57 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta56), 2));
tmp58 = mmc_unbox_integer(tmpMeta57);
if (1 != tmp58) goto goto_2;
tmpMeta60 = mmc_mk_cons(_exp, _es);
_len = listLength(tmpMeta60);
tmpMeta61 = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(_len));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta61;
goto tmp3_done;
}
case 8: {
modelica_metatype tmpMeta62;
modelica_metatype tmpMeta63;
modelica_integer tmp64;
modelica_metatype tmpMeta65;
modelica_metatype tmpMeta66;
_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);
tmpMeta65 = omc_Ceval_ceval(threadData, _cache, _env, _dimExp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta62);
_cache = tmpMeta65;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta62,0,1) == 0) goto goto_2;
tmpMeta63 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta62), 2));
tmp64 = mmc_unbox_integer(tmpMeta63);
_dimv = tmp64;
{
modelica_metatype tmp69_1;
tmp69_1 = _val;
{
volatile mmc_switch_type tmp69;
int tmp70;
tmp69 = 0;
for (; tmp69 < 2; tmp69++) {
switch (MMC_SWITCH_CAST(tmp69)) {
case 0: {
modelica_metatype tmpMeta71;
modelica_metatype tmpMeta72;
modelica_metatype tmpMeta73;
if (mmc__uniontype__metarecord__typedef__equal(tmp69_1,5,2) == 0) goto tmp68_end;
tmpMeta71 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp69_1), 2));
if (!listEmpty(tmpMeta71)) goto tmp68_end;
tmpMeta72 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp69_1), 3));
_adims = tmpMeta72;
tmpMeta73 = mmc_mk_box2(3, &Values_Value_INTEGER__desc, listGet(_adims, _dimv));
tmpMeta66 = tmpMeta73;
goto tmp68_done;
}
case 1: {
tmpMeta66 = omc_Ceval_cevalBuiltinSize2(threadData, _val, _dimv);
goto tmp68_done;
}
}
goto tmp68_end;
tmp68_end: ;
}
goto goto_67;
goto_67:;
goto goto_2;
goto tmp68_done;
tmp68_done:;
}
}
_v2 = tmpMeta66;
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _v2;
goto tmp3_done;
}
case 9: {
modelica_boolean tmp74;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_6,0,1) == 0) goto tmp3_end;
_exp = tmp4_3;
tmp74 = omc_Flags_isSet(threadData, _OMC_LIT44);
if (1 != tmp74) 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 tmpMeta1;
modelica_metatype _v = NULL;
modelica_metatype _vl = NULL;
modelica_metatype tmpMeta2;
modelica_metatype tmpMeta3;
modelica_metatype tmpMeta4;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_outCache = _inCache;
tmpMeta1 = MMC_REFSTRUCTLIT(mmc_nil);
_outValues = tmpMeta1;
{
modelica_metatype _expl;
for (tmpMeta2 = _inMatrix; !listEmpty(tmpMeta2); tmpMeta2=MMC_CDR(tmpMeta2))
{
_expl = MMC_CAR(tmpMeta2);
_outCache = omc_Ceval_cevalList(threadData, _outCache, _inEnv, _expl, _inBoolean, _inMsg, _numIter ,&_vl);
_v = omc_ValuesUtil_makeArray(threadData, _vl);
tmpMeta3 = mmc_mk_cons(_v, _outValues);
_outValues = tmpMeta3;
}
}
_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 tmpMeta1;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_string tmp4_1;modelica_metatype tmp4_2;
tmp4_1 = _id;
tmp4_2 = _inValuesValueLst;
{
modelica_real _rv_1;
modelica_real _rv;
modelica_real _rv1;
modelica_real _rv2;
modelica_string _str = NULL;
modelica_string _re = NULL;
modelica_integer _start;
modelica_integer _stop;
modelica_integer _i;
modelica_integer _n;
modelica_boolean _extended;
modelica_boolean _insensitive;
modelica_metatype _strs = NULL;
modelica_metatype _vals = NULL;
modelica_metatype _v = NULL;
int tmp4;
{
switch (MMC_SWITCH_CAST(stringHashDjb2Mod(tmp4_1,8192))) {
case 5163 /* acos */: {
modelica_metatype tmpMeta5;
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_real tmp8;
modelica_boolean tmp9;
modelica_real tmp10;
modelica_metatype tmpMeta11;
if (4 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT103), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
if (listEmpty(tmp4_2)) goto tmp3_end;
tmpMeta5 = MMC_CAR(tmp4_2);
tmpMeta6 = MMC_CDR(tmp4_2);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta5,1,1) == 0) goto tmp3_end;
tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta5), 2));
tmp8 = mmc_unbox_real(tmpMeta7);
if (!listEmpty(tmpMeta6)) goto tmp3_end;
_rv = tmp8;
tmp9 = ((_rv >= -1.0) && (_rv <= 1.0));
if (1 != tmp9) goto goto_2;
tmp10 = _rv;
if(!(tmp10 >= -1.0 && tmp10 <= 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", tmp10);
}
_rv_1 = acos(tmp10);
tmpMeta11 = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_1));
tmpMeta1 = tmpMeta11;
goto tmp3_done;
}
case 6000 /* asin */: {
modelica_metatype tmpMeta12;
modelica_metatype tmpMeta13;
modelica_metatype tmpMeta14;
modelica_real tmp15;
modelica_boolean tmp16;
modelica_real tmp17;
modelica_metatype tmpMeta18;
if (4 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT104), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
if (listEmpty(tmp4_2)) goto tmp3_end;
tmpMeta12 = MMC_CAR(tmp4_2);
tmpMeta13 = MMC_CDR(tmp4_2);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta12,1,1) == 0) goto tmp3_end;
tmpMeta14 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta12), 2));
tmp15 = mmc_unbox_real(tmpMeta14);
if (!listEmpty(tmpMeta13)) goto tmp3_end;
_rv = tmp15;
tmp16 = ((_rv >= -1.0) && (_rv <= 1.0));
if (1 != tmp16) goto goto_2;
tmp17 = _rv;
if(!(tmp17 >= -1.0 && tmp17 <= 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", tmp17);
}
_rv_1 = asin(tmp17);
tmpMeta18 = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_1));
tmpMeta1 = tmpMeta18;
goto tmp3_done;
}
case 6825 /* atan */: {
modelica_metatype tmpMeta19;
modelica_metatype tmpMeta20;
modelica_metatype tmpMeta21;
modelica_real tmp22;
modelica_metatype tmpMeta23;
if (4 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT105), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
if (listEmpty(tmp4_2)) goto tmp3_end;
tmpMeta19 = MMC_CAR(tmp4_2);
tmpMeta20 = MMC_CDR(tmp4_2);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta19,1,1) == 0) goto tmp3_end;
tmpMeta21 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta19), 2));
tmp22 = mmc_unbox_real(tmpMeta21);
if (!listEmpty(tmpMeta20)) goto tmp3_end;
_rv = tmp22;
_rv_1 = atan(_rv);
tmpMeta23 = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_1));
tmpMeta1 = tmpMeta23;
goto tmp3_done;
}
case 4091 /* atan2 */: {
modelica_metatype tmpMeta24;
modelica_metatype tmpMeta25;
modelica_metatype tmpMeta26;
modelica_real tmp27;
modelica_metatype tmpMeta28;
modelica_metatype tmpMeta29;
modelica_metatype tmpMeta30;
modelica_real tmp31;
modelica_metatype tmpMeta32;
if (5 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT106), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
if (listEmpty(tmp4_2)) goto tmp3_end;
tmpMeta24 = MMC_CAR(tmp4_2);
tmpMeta25 = MMC_CDR(tmp4_2);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta24,1,1) == 0) goto tmp3_end;
tmpMeta26 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta24), 2));
tmp27 = mmc_unbox_real(tmpMeta26);
if (listEmpty(tmpMeta25)) goto tmp3_end;
tmpMeta28 = MMC_CAR(tmpMeta25);
tmpMeta29 = MMC_CDR(tmpMeta25);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta28,1,1) == 0) goto tmp3_end;
tmpMeta30 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta28), 2));
tmp31 = mmc_unbox_real(tmpMeta30);
if (!listEmpty(tmpMeta29)) goto tmp3_end;
_rv1 = tmp27;
_rv2 = tmp31;
_rv_1 = atan2(_rv1, _rv2);
tmpMeta32 = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_1));
tmpMeta1 = tmpMeta32;
goto tmp3_done;
}
case 1738 /* cos */: {
modelica_metatype tmpMeta33;
modelica_metatype tmpMeta34;
modelica_metatype tmpMeta35;
modelica_real tmp36;
modelica_metatype tmpMeta37;
if (3 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT107), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
if (listEmpty(tmp4_2)) goto tmp3_end;
tmpMeta33 = MMC_CAR(tmp4_2);
tmpMeta34 = MMC_CDR(tmp4_2);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta33,1,1) == 0) goto tmp3_end;
tmpMeta35 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta33), 2));
tmp36 = mmc_unbox_real(tmpMeta35);
if (!listEmpty(tmpMeta34)) goto tmp3_end;
_rv = tmp36;
_rv_1 = cos(_rv);
tmpMeta37 = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_1));
tmpMeta1 = tmpMeta37;
goto tmp3_done;
}
case 114 /* cosh */: {
modelica_metatype tmpMeta38;
modelica_metatype tmpMeta39;
modelica_metatype tmpMeta40;
modelica_real tmp41;
modelica_metatype tmpMeta42;
if (4 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT108), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
if (listEmpty(tmp4_2)) goto tmp3_end;
tmpMeta38 = MMC_CAR(tmp4_2);
tmpMeta39 = MMC_CDR(tmp4_2);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta38,1,1) == 0) goto tmp3_end;
tmpMeta40 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta38), 2));
tmp41 = mmc_unbox_real(tmpMeta40);
if (!listEmpty(tmpMeta39)) goto tmp3_end;
_rv = tmp41;
_rv_1 = cosh(_rv);
tmpMeta42 = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_1));
tmpMeta1 = tmpMeta42;
goto tmp3_done;
}
case 4210 /* exp */: {
modelica_metatype tmpMeta43;
modelica_metatype tmpMeta44;
modelica_metatype tmpMeta45;
modelica_real tmp46;
modelica_metatype tmpMeta47;
if (3 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT109), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
if (listEmpty(tmp4_2)) goto tmp3_end;
tmpMeta43 = MMC_CAR(tmp4_2);
tmpMeta44 = MMC_CDR(tmp4_2);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta43,1,1) == 0) goto tmp3_end;
tmpMeta45 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta43), 2));
tmp46 = mmc_unbox_real(tmpMeta45);
if (!listEmpty(tmpMeta44)) goto tmp3_end;
_rv = tmp46;
_rv_1 = exp(_rv);
tmpMeta47 = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_1));
tmpMeta1 = tmpMeta47;
goto tmp3_done;
}
case 3335 /* log */: {
modelica_metatype tmpMeta48;
modelica_metatype tmpMeta49;
modelica_metatype tmpMeta50;
modelica_real tmp51;
modelica_boolean tmp52;
modelica_real tmp53;
modelica_metatype tmpMeta54;
if (3 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT110), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
if (listEmpty(tmp4_2)) goto tmp3_end;
tmpMeta48 = MMC_CAR(tmp4_2);
tmpMeta49 = MMC_CDR(tmp4_2);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta48,1,1) == 0) goto tmp3_end;
tmpMeta50 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta48), 2));
tmp51 = mmc_unbox_real(tmpMeta50);
if (!listEmpty(tmpMeta49)) goto tmp3_end;
_rv = tmp51;
tmp52 = (_rv > 0.0);
if (1 != tmp52) goto goto_2;
tmp53 = _rv;
if(!(tmp53 > 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", tmp53);
}
_rv_1 = log(tmp53);
tmpMeta54 = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_1));
tmpMeta1 = tmpMeta54;
goto tmp3_done;
}
case 4424 /* log10 */: {
modelica_metatype tmpMeta55;
modelica_metatype tmpMeta56;
modelica_metatype tmpMeta57;
modelica_real tmp58;
modelica_boolean tmp59;
modelica_real tmp60;
modelica_metatype tmpMeta61;
if (5 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT111), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
if (listEmpty(tmp4_2)) goto tmp3_end;
tmpMeta55 = MMC_CAR(tmp4_2);
tmpMeta56 = MMC_CDR(tmp4_2);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta55,1,1) == 0) goto tmp3_end;
tmpMeta57 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta55), 2));
tmp58 = mmc_unbox_real(tmpMeta57);
if (!listEmpty(tmpMeta56)) goto tmp3_end;
_rv = tmp58;
tmp59 = (_rv > 0.0);
if (1 != tmp59) goto goto_2;
tmp60 = _rv;
if(!(tmp60 > 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", tmp60);
}
_rv_1 = log10(tmp60);
tmpMeta61 = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_1));
tmpMeta1 = tmpMeta61;
goto tmp3_done;
}
case 2575 /* sin */: {
modelica_metatype tmpMeta62;
modelica_metatype tmpMeta63;
modelica_metatype tmpMeta64;
modelica_real tmp65;
modelica_metatype tmpMeta66;
if (3 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT112), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
if (listEmpty(tmp4_2)) goto tmp3_end;
tmpMeta62 = MMC_CAR(tmp4_2);
tmpMeta63 = MMC_CDR(tmp4_2);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta62,1,1) == 0) goto tmp3_end;
tmpMeta64 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta62), 2));
tmp65 = mmc_unbox_real(tmpMeta64);
if (!listEmpty(tmpMeta63)) goto tmp3_end;
_rv = tmp65;
_rv_1 = sin(_rv);
tmpMeta66 = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_1));
tmpMeta1 = tmpMeta66;
goto tmp3_done;
}
case 3159 /* sinh */: {
modelica_metatype tmpMeta67;
modelica_metatype tmpMeta68;
modelica_metatype tmpMeta69;
modelica_real tmp70;
modelica_metatype tmpMeta71;
if (4 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT113), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
if (listEmpty(tmp4_2)) goto tmp3_end;
tmpMeta67 = MMC_CAR(tmp4_2);
tmpMeta68 = MMC_CDR(tmp4_2);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta67,1,1) == 0) goto tmp3_end;
tmpMeta69 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta67), 2));
tmp70 = mmc_unbox_real(tmpMeta69);
if (!listEmpty(tmpMeta68)) goto tmp3_end;
_rv = tmp70;
_rv_1 = sinh(_rv);
tmpMeta71 = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_1));
tmpMeta1 = tmpMeta71;
goto tmp3_done;
}
case 3400 /* tan */: {
modelica_metatype tmpMeta72;
modelica_metatype tmpMeta73;
modelica_metatype tmpMeta74;
modelica_real tmp75;
modelica_metatype tmpMeta76;
if (3 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT114), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
if (listEmpty(tmp4_2)) goto tmp3_end;
tmpMeta72 = MMC_CAR(tmp4_2);
tmpMeta73 = MMC_CDR(tmp4_2);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta72,1,1) == 0) goto tmp3_end;
tmpMeta74 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta72), 2));
tmp75 = mmc_unbox_real(tmpMeta74);
if (!listEmpty(tmpMeta73)) goto tmp3_end;
_rv = tmp75;
_rv_1 = tan(_rv);
tmpMeta76 = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_1));
tmpMeta1 = tmpMeta76;
goto tmp3_done;
}
case 5808 /* tanh */: {
modelica_metatype tmpMeta77;
modelica_metatype tmpMeta78;
modelica_metatype tmpMeta79;
modelica_real tmp80;
modelica_metatype tmpMeta81;
if (4 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT115), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
if (listEmpty(tmp4_2)) goto tmp3_end;
tmpMeta77 = MMC_CAR(tmp4_2);
tmpMeta78 = MMC_CDR(tmp4_2);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta77,1,1) == 0) goto tmp3_end;
tmpMeta79 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta77), 2));
tmp80 = mmc_unbox_real(tmpMeta79);
if (!listEmpty(tmpMeta78)) goto tmp3_end;
_rv = tmp80;
_rv_1 = tanh(_rv);
tmpMeta81 = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_rv_1));
tmpMeta1 = tmpMeta81;
goto tmp3_done;
}
case 6093 /* ModelicaStrings_substring */: {
modelica_metatype tmpMeta82;
modelica_metatype tmpMeta83;
modelica_metatype tmpMeta84;
modelica_metatype tmpMeta85;
modelica_metatype tmpMeta86;
modelica_metatype tmpMeta87;
modelica_integer tmp88;
modelica_metatype tmpMeta89;
modelica_metatype tmpMeta90;
modelica_metatype tmpMeta91;
modelica_integer tmp92;
modelica_metatype tmpMeta93;
if (25 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT116), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
if (listEmpty(tmp4_2)) goto tmp3_end;
tmpMeta82 = MMC_CAR(tmp4_2);
tmpMeta83 = MMC_CDR(tmp4_2);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta82,2,1) == 0) goto tmp3_end;
tmpMeta84 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta82), 2));
if (listEmpty(tmpMeta83)) goto tmp3_end;
tmpMeta85 = MMC_CAR(tmpMeta83);
tmpMeta86 = MMC_CDR(tmpMeta83);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta85,0,1) == 0) goto tmp3_end;
tmpMeta87 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta85), 2));
tmp88 = mmc_unbox_integer(tmpMeta87);
if (listEmpty(tmpMeta86)) goto tmp3_end;
tmpMeta89 = MMC_CAR(tmpMeta86);
tmpMeta90 = MMC_CDR(tmpMeta86);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta89,0,1) == 0) goto tmp3_end;
tmpMeta91 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta89), 2));
tmp92 = mmc_unbox_integer(tmpMeta91);
if (!listEmpty(tmpMeta90)) goto tmp3_end;
_str = tmpMeta84;
_start = tmp88;
_stop = tmp92;
_str = substring(_str, _start, _stop);
tmpMeta93 = mmc_mk_box2(5, &Values_Value_STRING__desc, _str);
tmpMeta1 = tmpMeta93;
goto tmp3_done;
}
case 6638 /* ModelicaStrings_length */: {
modelica_metatype tmpMeta94;
modelica_metatype tmpMeta95;
modelica_metatype tmpMeta96;
modelica_metatype tmpMeta97;
if (22 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT117), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
if (listEmpty(tmp4_2)) goto tmp3_end;
tmpMeta94 = MMC_CAR(tmp4_2);
tmpMeta95 = MMC_CDR(tmp4_2);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta94,2,1) == 0) goto tmp3_end;
tmpMeta96 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta94), 2));
if (!listEmpty(tmpMeta95)) goto tmp3_end;
_str = tmpMeta96;
_i = stringLength(_str);
tmpMeta97 = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(_i));
tmpMeta1 = tmpMeta97;
goto tmp3_done;
}
case 2322 /* print */: {
modelica_metatype tmpMeta98;
modelica_metatype tmpMeta99;
modelica_metatype tmpMeta100;
if (5 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT118), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
if (listEmpty(tmp4_2)) goto tmp3_end;
tmpMeta98 = MMC_CAR(tmp4_2);
tmpMeta99 = MMC_CDR(tmp4_2);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta98,2,1) == 0) goto tmp3_end;
tmpMeta100 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta98), 2));
if (!listEmpty(tmpMeta99)) goto tmp3_end;
_str = tmpMeta100;
fputs(MMC_STRINGDATA(_str),stdout);
tmpMeta1 = _OMC_LIT84;
goto tmp3_done;
}
case 5903 /* OpenModelica_regex */: {
modelica_metatype tmpMeta101;
modelica_metatype tmpMeta102;
modelica_metatype tmpMeta103;
modelica_metatype tmpMeta104;
modelica_metatype tmpMeta105;
modelica_metatype tmpMeta106;
modelica_metatype tmpMeta107;
modelica_metatype tmpMeta108;
modelica_metatype tmpMeta109;
modelica_integer tmp110;
modelica_metatype tmpMeta111;
modelica_metatype tmpMeta112;
modelica_metatype tmpMeta113;
modelica_integer tmp114;
modelica_metatype tmpMeta115;
modelica_metatype tmpMeta116;
modelica_metatype tmpMeta117;
modelica_integer tmp118;
modelica_metatype tmpMeta119;
modelica_metatype tmpMeta120;
modelica_metatype tmpMeta121;
modelica_metatype tmpMeta122;
modelica_metatype tmpMeta123;
if (18 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT119), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
if (listEmpty(tmp4_2)) goto tmp3_end;
tmpMeta101 = MMC_CAR(tmp4_2);
tmpMeta102 = MMC_CDR(tmp4_2);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta101,2,1) == 0) goto tmp3_end;
tmpMeta103 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta101), 2));
if (listEmpty(tmpMeta102)) goto tmp3_end;
tmpMeta104 = MMC_CAR(tmpMeta102);
tmpMeta105 = MMC_CDR(tmpMeta102);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta104,2,1) == 0) goto tmp3_end;
tmpMeta106 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta104), 2));
if (listEmpty(tmpMeta105)) goto tmp3_end;
tmpMeta107 = MMC_CAR(tmpMeta105);
tmpMeta108 = MMC_CDR(tmpMeta105);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta107,0,1) == 0) goto tmp3_end;
tmpMeta109 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta107), 2));
tmp110 = mmc_unbox_integer(tmpMeta109);
if (listEmpty(tmpMeta108)) goto tmp3_end;
tmpMeta111 = MMC_CAR(tmpMeta108);
tmpMeta112 = MMC_CDR(tmpMeta108);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta111,3,1) == 0) goto tmp3_end;
tmpMeta113 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta111), 2));
tmp114 = mmc_unbox_integer(tmpMeta113);
if (listEmpty(tmpMeta112)) goto tmp3_end;
tmpMeta115 = MMC_CAR(tmpMeta112);
tmpMeta116 = MMC_CDR(tmpMeta112);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta115,3,1) == 0) goto tmp3_end;
tmpMeta117 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta115), 2));
tmp118 = mmc_unbox_integer(tmpMeta117);
if (!listEmpty(tmpMeta116)) goto tmp3_end;
_str = tmpMeta103;
_re = tmpMeta106;
_i = tmp110;
_extended = tmp114;
_insensitive = tmp118;
_n = omc_System_regex(threadData, _str, _re, _i, _extended, _insensitive ,&_strs);
_vals = omc_List_map(threadData, _strs, boxvar_ValuesUtil_makeString);
tmpMeta119 = mmc_mk_cons(mmc_mk_integer(_i), MMC_REFSTRUCTLIT(mmc_nil));
tmpMeta120 = mmc_mk_box3(8, &Values_Value_ARRAY__desc, _vals, tmpMeta119);
_v = tmpMeta120;
tmpMeta122 = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(_n));
tmpMeta121 = mmc_mk_cons(tmpMeta122, mmc_mk_cons(_v, MMC_REFSTRUCTLIT(mmc_nil)));
tmpMeta123 = mmc_mk_box2(11, &Values_Value_TUPLE__desc, tmpMeta121);
tmpMeta1 = tmpMeta123;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outValue = tmpMeta1;
_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_LIT103), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
goto tmp2_done;
}
case 6000 /* asin */: {
if (4 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT104), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
goto tmp2_done;
}
case 6825 /* atan */: {
if (4 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT105), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
goto tmp2_done;
}
case 4091 /* atan2 */: {
if (5 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT106), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
goto tmp2_done;
}
case 1738 /* cos */: {
if (3 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT107), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
goto tmp2_done;
}
case 114 /* cosh */: {
if (4 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT108), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
goto tmp2_done;
}
case 4210 /* exp */: {
if (3 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT109), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
goto tmp2_done;
}
case 3335 /* log */: {
if (3 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT110), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
goto tmp2_done;
}
case 4424 /* log10 */: {
if (5 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT111), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
goto tmp2_done;
}
case 2575 /* sin */: {
if (3 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT112), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
goto tmp2_done;
}
case 3159 /* sinh */: {
if (4 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT113), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
goto tmp2_done;
}
case 3400 /* tan */: {
if (3 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT114), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
goto tmp2_done;
}
case 5808 /* tanh */: {
if (4 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT115), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
goto tmp2_done;
}
case 2322 /* print */: {
if (5 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT118), 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_LIT120), 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_LIT116), 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_LIT117), 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_LIT121), 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_LIT122), 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_LIT123), 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_LIT124), 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_LIT125), 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_LIT126), 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_LIT127), 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_LIT128), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
goto tmp2_done;
}
case 3949 /* ModelicaError */: {
if (13 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT129), 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_LIT119), 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 tmpMeta1;
modelica_metatype tmpMeta2;
modelica_metatype tmpMeta3;
modelica_metatype tmpMeta4;
modelica_metatype tmpMeta5;
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_outCache = omc_Lookup_lookupClass(threadData, _inCache, _env, _funcpath, mmc_mk_none() ,&_cdef ,&_env_1);
tmpMeta1 = _cdef;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta1,2,8) == 0) MMC_THROW_INTERNAL();
tmpMeta2 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta1), 2));
tmpMeta3 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta1), 6));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta3,9,1) == 0) MMC_THROW_INTERNAL();
tmpMeta4 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta3), 2));
tmpMeta5 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta1), 7));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta5,0,8) == 0) MMC_THROW_INTERNAL();
tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta5), 9));
_fid = tmpMeta2;
_funcRest = tmpMeta4;
_extdecl = tmpMeta6;
tmpMeta7 = _funcRest;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta7,1,1) == 0) MMC_THROW_INTERNAL();
tmpMeta8 = _extdecl;
if (optionNone(tmpMeta8)) MMC_THROW_INTERNAL();
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta8), 1));
tmpMeta10 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta9), 2));
_oid = tmpMeta10;
_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;
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_LIT131), 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_LIT132), 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_LIT133), 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_LIT134), 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_LIT135), 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_LIT112), 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_LIT107), 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_LIT114), 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_LIT113), 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_LIT108), 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_LIT115), 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_LIT104), 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_LIT103), 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_LIT105), 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_LIT106), 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_LIT110), 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_LIT111), 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_LIT136), 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_LIT137), 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_LIT138), 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_LIT139), 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_LIT140), 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_LIT141), 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_LIT142), 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_LIT143), 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_LIT144), 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_LIT109), 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_LIT145), 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_LIT146), 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_LIT147), 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_LIT148), 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_LIT149), 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_LIT150), 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_LIT151), 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_LIT152), 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_LIT153), 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_LIT118), 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_LIT154), 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_LIT155), 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_LIT156), 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_LIT157), 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_LIT158), 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_LIT159), 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_LIT160), 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_LIT161), 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_LIT162), 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_LIT163), 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_LIT164), 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_LIT165), 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_LIT166), 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_LIT167), 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_LIT168), 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_LIT169), 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_LIT170), 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_LIT171), 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_LIT172), 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_LIT173), 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_LIT174), 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_LIT175), 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_LIT176), 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_LIT177), 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_LIT178), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmp1 = boxvar_Ceval_cevalIntegerMax;
goto tmp3_done;
}
case 64: {
modelica_boolean tmp6;
modelica_metatype tmpMeta7;
_id = tmp4_1;
tmp6 = omc_Flags_isSet(threadData, _OMC_LIT26);
if (1 != tmp6) goto goto_2;
tmpMeta7 = stringAppend(_OMC_LIT130,_id);
omc_Debug_traceln(threadData, tmpMeta7);
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[2] __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: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,24,2) == 0) goto tmp3_end;
tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (optionNone(tmpMeta7)) goto tmp3_end;
tmpMeta8 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta7), 1));
_exp = tmpMeta6;
_dim = tmpMeta8;
_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: {
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,24,2) == 0) goto tmp3_end;
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta10 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (!optionNone(tmpMeta10)) goto tmp3_end;
_exp = tmpMeta9;
_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_metatype tmpMeta11;
modelica_metatype tmpMeta12;
modelica_metatype tmpMeta13;
modelica_metatype tmpMeta14;
modelica_integer tmp15;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,13,3) == 0) goto tmp3_end;
tmpMeta11 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta12 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
tmpMeta13 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
tmpMeta14 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta13), 4));
tmp15 = mmc_unbox_integer(tmpMeta14);
if (1 != tmp15) goto tmp3_end;
_path = tmpMeta11;
_args = tmpMeta12;
_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_metatype tmpMeta16;
modelica_metatype tmpMeta17;
modelica_metatype tmpMeta18;
modelica_integer tmp19;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,13,3) == 0) goto tmp3_end;
tmpMeta16 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
tmpMeta17 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
tmpMeta18 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta17), 4));
tmp19 = mmc_unbox_integer(tmpMeta18);
if (1 != tmp19) goto tmp3_end;
_e = tmp4_3;
_expl = tmpMeta16;
_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[2] __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: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,18,4) == 0) goto tmp3_end;
tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 2));
tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 3));
tmpMeta8 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 4));
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 5));
_ty = tmpMeta6;
_e1 = tmpMeta7;
_e3 = tmpMeta8;
_e2 = tmpMeta9;
_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);
tmpMeta10 = mmc_mk_box5(21, &DAE_Exp_RANGE__desc, _ty, _e1, _e3, _e2);
tmpMeta[0+0] = _inCache;
tmpMeta[0+1] = tmpMeta10;
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[2] __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_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_boolean tmp11;
modelica_metatype tmpMeta12;
modelica_metatype tmpMeta13;
modelica_metatype tmpMeta14;
modelica_metatype tmpMeta15;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,13,3) == 0) goto tmp3_end;
tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 2));
tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 3));
tmpMeta8 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 4));
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta8), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta9,6,2) == 0) goto tmp3_end;
tmpMeta10 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta9), 3));
_e = tmp4_1;
_p = tmpMeta6;
_el = tmpMeta7;
_attr = tmpMeta8;
_dims = tmpMeta10;
tmp11 = omc_Expression_arrayContainWholeDimension(threadData, _dims);
if (1 != tmp11) goto goto_2;
tmpMeta12 = mmc_mk_box2(3, &Absyn_Msg_MSG__desc, _inInfo);
omc_Ceval_ceval(threadData, _inCache, _inEnv, _e, 1, tmpMeta12, ((modelica_integer) 1) + _numIter ,&_v);
_ty = omc_Types_typeOfValue(threadData, _v);
_cevalType = omc_Types_simplifyType(threadData, _ty);
tmpMeta13 = MMC_TAGPTR(mmc_alloc_words(9));
memcpy(MMC_UNTAGPTR(tmpMeta13), MMC_UNTAGPTR(_attr), 9*sizeof(modelica_metatype));
((modelica_metatype*)MMC_UNTAGPTR(tmpMeta13))[2] = _cevalType;
_attr = tmpMeta13;
tmpMeta14 = mmc_mk_box4(16, &DAE_Exp_CALL__desc, _p, _el, _attr);
tmpMeta15 = mmc_mk_box3(3, &DAE_Properties_PROP__desc, _ty, _OMC_LIT179);
tmpMeta[0+0] = tmpMeta14;
tmpMeta[0+1] = tmpMeta15;
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[3] __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: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,0,2) == 0) goto tmp3_end;
tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 2));
tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta7,1,0) == 0) goto tmp3_end;
_tp = tmpMeta6;
tmp4 += 3;
if (!(!omc_Flags_getConfigBool(threadData, _OMC_LIT184))) goto tmp3_end;
tmpMeta8 = mmc_mk_box3(3, &DAE_Properties_PROP__desc, _tp, _OMC_LIT185);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _exp;
tmpMeta[0+2] = tmpMeta8;
goto tmp3_done;
}
case 1: {
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,0,2) == 0) goto tmp3_end;
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 2));
tmpMeta10 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta10,0,0) == 0) goto tmp3_end;
_tp = tmpMeta9;
tmp4 += 2;
tmpMeta11 = mmc_mk_box2(3, &Absyn_Msg_MSG__desc, _inInfo);
_cache = omc_Ceval_ceval(threadData, _cache, _inEnv, _exp, _impl, tmpMeta11, ((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: {
modelica_metatype tmpMeta12;
modelica_metatype tmpMeta13;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,1,2) == 0) goto tmp3_end;
tmpMeta12 = omc_Types_propAllConst(threadData, _prop);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta12,0,0) == 0) goto goto_2;
tmpMeta13 = mmc_mk_box2(3, &Absyn_Msg_MSG__desc, _inInfo);
_cache = omc_Ceval_ceval(threadData, _cache, _inEnv, _exp, 0, tmpMeta13, ((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: {
modelica_metatype tmpMeta14;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,1,2) == 0) goto tmp3_end;
if (!(!omc_Flags_getConfigBool(threadData, _OMC_LIT184))) goto tmp3_end;
tmpMeta14 = omc_Types_propAllConst(threadData, _prop);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta14,1,0) == 0) goto goto_2;
fputs(MMC_STRINGDATA(_OMC_LIT186),stdout);
goto goto_2;
goto tmp3_done;
}
case 4: {
modelica_metatype tmpMeta15;
if (!(omc_Expression_isConst(threadData, _exp) && (!omc_Config_acceptMetaModelicaGrammar(threadData)))) goto tmp3_end;
tmpMeta15 = mmc_mk_box2(3, &Absyn_Msg_MSG__desc, _inInfo);
omc_Ceval_ceval(threadData, _cache, _inEnv, _exp, _impl, tmpMeta15, ((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[2] __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 < 73; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_metatype tmpMeta6;
modelica_integer tmp7;
modelica_metatype tmpMeta8;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,0,1) == 0) goto tmp3_end;
tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmp7 = mmc_unbox_integer(tmpMeta6);
_i = tmp7;
_cache = tmp4_1;
tmp4 += 21;
tmpMeta8 = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(_i));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta8;
goto tmp3_done;
}
case 1: {
modelica_metatype tmpMeta9;
modelica_real tmp10;
modelica_metatype tmpMeta11;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,1,1) == 0) goto tmp3_end;
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmp10 = mmc_unbox_real(tmpMeta9);
_r = tmp10;
_cache = tmp4_1;
tmp4 += 20;
tmpMeta11 = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_r));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta11;
goto tmp3_done;
}
case 2: {
modelica_metatype tmpMeta12;
modelica_metatype tmpMeta13;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,2,1) == 0) goto tmp3_end;
tmpMeta12 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
_s = tmpMeta12;
_cache = tmp4_1;
tmp4 += 19;
tmpMeta13 = mmc_mk_box2(5, &Values_Value_STRING__desc, _s);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta13;
goto tmp3_done;
}
case 3: {
modelica_metatype tmpMeta14;
modelica_integer tmp15;
modelica_metatype tmpMeta16;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,3,1) == 0) goto tmp3_end;
tmpMeta14 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmp15 = mmc_unbox_integer(tmpMeta14);
_b = tmp15;
_cache = tmp4_1;
tmp4 += 18;
tmpMeta16 = mmc_mk_box2(6, &Values_Value_BOOL__desc, mmc_mk_boolean(_b));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta16;
goto tmp3_done;
}
case 4: {
modelica_metatype tmpMeta17;
modelica_metatype tmpMeta18;
modelica_integer tmp19;
modelica_metatype tmpMeta20;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,5,2) == 0) goto tmp3_end;
tmpMeta17 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta18 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
tmp19 = mmc_unbox_integer(tmpMeta18);
_name = tmpMeta17;
_i = tmp19;
_cache = tmp4_1;
tmp4 += 17;
tmpMeta20 = mmc_mk_box3(7, &Values_Value_ENUM__LITERAL__desc, _name, mmc_mk_integer(_i));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta20;
goto tmp3_done;
}
case 5: {
modelica_metatype tmpMeta21;
modelica_metatype tmpMeta22;
modelica_metatype tmpMeta23;
modelica_metatype tmpMeta24;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,25,2) == 0) goto tmp3_end;
tmpMeta21 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta21,6,1) == 0) goto tmp3_end;
tmpMeta22 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta21), 2));
_exp = tmpMeta22;
_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);
tmpMeta23 = mmc_mk_box2(9, &Absyn_CodeNode_C__EXPRESSION__desc, _exp_1);
tmpMeta24 = mmc_mk_box2(15, &Values_Value_CODE__desc, tmpMeta23);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta24;
goto tmp3_done;
}
case 6: {
modelica_metatype tmpMeta25;
modelica_metatype tmpMeta26;
modelica_metatype tmpMeta27;
modelica_metatype tmpMeta28;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,25,2) == 0) goto tmp3_end;
tmpMeta25 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta25,5,1) == 0) goto tmp3_end;
tmpMeta26 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta25), 2));
_elt = tmpMeta26;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
_cache = omc_Ceval_cevalAstElt(threadData, _cache, _env, _elt, _impl, _msg ,&_elt_1);
tmpMeta27 = mmc_mk_box2(8, &Absyn_CodeNode_C__ELEMENT__desc, _elt_1);
tmpMeta28 = mmc_mk_box2(15, &Values_Value_CODE__desc, tmpMeta27);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta28;
goto tmp3_done;
}
case 7: {
modelica_metatype tmpMeta29;
modelica_metatype tmpMeta30;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,25,2) == 0) goto tmp3_end;
tmpMeta29 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
_c = tmpMeta29;
_cache = tmp4_1;
tmp4 += 14;
tmpMeta30 = mmc_mk_box2(15, &Values_Value_CODE__desc, _c);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta30;
goto tmp3_done;
}
case 8: {
modelica_metatype tmpMeta31;
modelica_metatype tmpMeta32;
modelica_metatype tmpMeta33;
modelica_metatype tmpMeta34;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,16,3) == 0) goto tmp3_end;
tmpMeta31 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta31,6,2) == 0) goto tmp3_end;
tmpMeta32 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta31), 3));
tmpMeta33 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_arrayDims = tmpMeta32;
_es = tmpMeta33;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 13;
_cache = omc_Ceval_cevalList(threadData, _cache, _env, _es, _impl, _msg, _numIter ,&_es_1);
{
{
volatile mmc_switch_type tmp37;
int tmp38;
tmp37 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp36_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp37 < 2; tmp37++) {
switch (MMC_SWITCH_CAST(tmp37)) {
case 0: {
modelica_metatype tmpMeta39;
_dims = omc_List_map(threadData, _arrayDims, boxvar_Expression_dimensionSize);
tmpMeta39 = mmc_mk_box3(8, &Values_Value_ARRAY__desc, _es_1, _dims);
tmpMeta34 = tmpMeta39;
goto tmp36_done;
}
case 1: {
tmpMeta34 = omc_ValuesUtil_makeArray(threadData, _es_1);
goto tmp36_done;
}
}
goto tmp36_end;
tmp36_end: ;
}
goto goto_35;
tmp36_done:
(void)tmp37;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp36_done2;
goto_35:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp37 < 2) {
goto tmp36_top;
}
goto goto_2;
tmp36_done2:;
}
}
_v = tmpMeta34;
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _v;
goto tmp3_done;
}
case 9: {
modelica_metatype tmpMeta40;
modelica_metatype tmpMeta41;
modelica_metatype tmpMeta42;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,16,3) == 0) goto tmp3_end;
tmpMeta40 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta40,8,0) == 0) goto tmp3_end;
tmpMeta41 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_es = tmpMeta41;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 12;
if (!(omc_Config_getGraphicsExpMode(threadData) && omc_Config_getEvaluateParametersInAnnotations(threadData))) goto tmp3_end;
_cache = omc_Ceval_cevalList(threadData, _cache, _env, _es, _impl, _msg, _numIter ,&_es_1);
{
{
volatile mmc_switch_type tmp45;
int tmp46;
tmp45 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp44_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp45 < 2; tmp45++) {
switch (MMC_SWITCH_CAST(tmp45)) {
case 0: {
modelica_metatype tmpMeta47;
_dims = _OMC_LIT90;
tmpMeta47 = mmc_mk_box3(8, &Values_Value_ARRAY__desc, _es_1, _dims);
tmpMeta42 = tmpMeta47;
goto tmp44_done;
}
case 1: {
tmpMeta42 = omc_ValuesUtil_makeArray(threadData, _es_1);
goto tmp44_done;
}
}
goto tmp44_end;
tmp44_end: ;
}
goto goto_43;
tmp44_done:
(void)tmp45;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp44_done2;
goto_43:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp45 < 2) {
goto tmp44_top;
}
goto goto_2;
tmp44_done2:;
}
}
_v = tmpMeta42;
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _v;
goto tmp3_done;
}
case 10: {
modelica_metatype tmpMeta48;
modelica_metatype tmpMeta49;
modelica_metatype tmpMeta50;
modelica_metatype tmpMeta51;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,17,3) == 0) goto tmp3_end;
tmpMeta48 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta48,6,2) == 0) goto tmp3_end;
tmpMeta49 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta48), 3));
tmpMeta50 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_arrayDims = tmpMeta49;
_expll = tmpMeta50;
_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);
tmpMeta51 = mmc_mk_box3(8, &Values_Value_ARRAY__desc, _elts, _dims);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta51;
goto tmp3_done;
}
case 11: {
modelica_metatype tmpMeta52;
modelica_metatype tmpMeta53;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,28,1) == 0) goto tmp3_end;
tmpMeta52 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
_expl = tmpMeta52;
_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);
tmpMeta53 = mmc_mk_box2(9, &Values_Value_LIST__desc, _es_1);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta53;
goto tmp3_done;
}
case 12: {
modelica_metatype tmpMeta54;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,34,1) == 0) goto tmp3_end;
tmpMeta54 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
_e1 = tmpMeta54;
_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 13: {
modelica_metatype tmpMeta55;
modelica_metatype tmpMeta56;
modelica_metatype tmpMeta57;
modelica_metatype tmpMeta58;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,35,2) == 0) goto tmp3_end;
tmpMeta55 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
_e1 = tmpMeta55;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 8;
tmpMeta58 = omc_Ceval_ceval(threadData, _cache, _env, _e1, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta56);
_cache = tmpMeta58;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta56,14,1) == 0) goto goto_2;
tmpMeta57 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta56), 2));
_v = tmpMeta57;
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _v;
goto tmp3_done;
}
case 14: {
modelica_metatype tmpMeta59;
modelica_metatype tmpMeta60;
modelica_metatype tmpMeta61;
modelica_metatype tmpMeta62;
modelica_metatype tmpMeta63;
modelica_metatype tmpMeta64;
modelica_metatype tmpMeta65;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,29,2) == 0) goto tmp3_end;
tmpMeta59 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta60 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
_e1 = tmpMeta59;
_e2 = tmpMeta60;
_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);
tmpMeta63 = omc_Ceval_ceval(threadData, _cache, _env, _e2, _impl, _msg, _numIter, &tmpMeta61);
_cache = tmpMeta63;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta61,6,1) == 0) goto goto_2;
tmpMeta62 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta61), 2));
_vallst = tmpMeta62;
tmpMeta64 = mmc_mk_cons(_v, _vallst);
tmpMeta65 = mmc_mk_box2(9, &Values_Value_LIST__desc, tmpMeta64);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta65;
goto tmp3_done;
}
case 15: {
modelica_metatype tmpMeta66;
modelica_metatype tmpMeta67;
modelica_metatype tmpMeta68;
modelica_metatype tmpMeta69;
modelica_integer tmp70;
modelica_metatype tmpMeta71;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,32,5) == 0) goto tmp3_end;
tmpMeta66 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta67 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
tmpMeta68 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
tmpMeta69 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 5));
tmp70 = mmc_unbox_integer(tmpMeta69);
_funcpath = tmpMeta66;
_expl = tmpMeta67;
_fieldNames = tmpMeta68;
_index = tmp70;
_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);
tmpMeta71 = mmc_mk_box5(13, &Values_Value_RECORD__desc, _funcpath, _vallst, _fieldNames, mmc_mk_integer(_index));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta71;
goto tmp3_done;
}
case 16: {
modelica_metatype tmpMeta72;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,31,1) == 0) goto tmp3_end;
tmpMeta72 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
if (!optionNone(tmpMeta72)) goto tmp3_end;
_cache = tmp4_1;
tmp4 += 5;
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _OMC_LIT187;
goto tmp3_done;
}
case 17: {
modelica_metatype tmpMeta73;
modelica_metatype tmpMeta74;
modelica_metatype tmpMeta75;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,31,1) == 0) goto tmp3_end;
tmpMeta73 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
if (optionNone(tmpMeta73)) goto tmp3_end;
tmpMeta74 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta73), 1));
_expExp = tmpMeta74;
_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);
tmpMeta75 = mmc_mk_box2(14, &Values_Value_OPTION__desc, mmc_mk_some(_value));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta75;
goto tmp3_done;
}
case 18: {
modelica_metatype tmpMeta76;
modelica_boolean tmp77;
modelica_metatype tmpMeta78;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,30,1) == 0) goto tmp3_end;
tmpMeta76 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
_expl = tmpMeta76;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 3;
tmp77 = omc_Config_acceptMetaModelicaGrammar(threadData);
if (1 != tmp77) goto goto_2;
_cache = omc_Ceval_cevalList(threadData, _cache, _env, _expl, _impl, _msg, _numIter ,&_vallst);
tmpMeta78 = mmc_mk_box2(12, &Values_Value_META__TUPLE__desc, _vallst);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta78;
goto tmp3_done;
}
case 19: {
modelica_metatype tmpMeta79;
modelica_metatype tmpMeta80;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,19,1) == 0) goto tmp3_end;
tmpMeta79 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
_expl = tmpMeta79;
_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);
tmpMeta80 = mmc_mk_box2(11, &Values_Value_TUPLE__desc, _vallst);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta80;
goto tmp3_done;
}
case 20: {
modelica_metatype tmpMeta81;
if (0 != tmp4_4) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,6,2) == 0) goto tmp3_end;
tmpMeta81 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
_cr = tmpMeta81;
_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 21: {
modelica_metatype tmpMeta82;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,6,2) == 0) goto tmp3_end;
tmpMeta82 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
_cr = tmpMeta82;
_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 22: {
_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 23: {
modelica_metatype tmpMeta83;
modelica_metatype tmpMeta84;
modelica_metatype tmpMeta85;
modelica_metatype tmpMeta86;
modelica_metatype tmpMeta87;
modelica_integer tmp88;
modelica_metatype tmpMeta89;
modelica_metatype tmpMeta90;
modelica_metatype tmpMeta91;
modelica_metatype tmpMeta92;
modelica_integer tmp93;
modelica_metatype tmpMeta94;
modelica_metatype tmpMeta95;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,13,3) == 0) goto tmp3_end;
tmpMeta83 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta84 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (listEmpty(tmpMeta84)) goto tmp3_end;
tmpMeta85 = MMC_CAR(tmpMeta84);
tmpMeta86 = MMC_CDR(tmpMeta84);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta85,0,1) == 0) goto tmp3_end;
tmpMeta87 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta85), 2));
tmp88 = mmc_unbox_integer(tmpMeta87);
if (0 != tmp88) goto tmp3_end;
if (listEmpty(tmpMeta86)) goto tmp3_end;
tmpMeta89 = MMC_CAR(tmpMeta86);
tmpMeta90 = MMC_CDR(tmpMeta86);
if (!listEmpty(tmpMeta90)) goto tmp3_end;
tmpMeta91 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
tmpMeta92 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta91), 5));
tmp93 = mmc_unbox_integer(tmpMeta92);
if (0 != tmp93) goto tmp3_end;
_funcpath = tmpMeta83;
_expExp = tmpMeta89;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta94 = omc_AbsynUtil_makeNotFullyQualified(threadData, _funcpath);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta94,1,1) == 0) goto goto_2;
tmpMeta95 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta94), 2));
if (6 != MMC_STRLEN(tmpMeta95) || strcmp("smooth", MMC_STRINGDATA(tmpMeta95)) != 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 24: {
modelica_metatype tmpMeta96;
modelica_metatype tmpMeta97;
modelica_metatype tmpMeta98;
modelica_metatype tmpMeta99;
modelica_integer tmp100;
modelica_boolean tmp101;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,13,3) == 0) goto tmp3_end;
tmpMeta96 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta97 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
tmpMeta98 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
tmpMeta99 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta98), 5));
tmp100 = mmc_unbox_integer(tmpMeta99);
if (0 != tmp100) goto tmp3_end;
_e = tmp4_3;
_funcpath = tmpMeta96;
_expl = tmpMeta97;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 1;
tmp101 = omc_AbsynUtil_pathEqual(threadData, _OMC_LIT191, _funcpath);
if (0 != tmp101) 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 25: {
modelica_metatype tmpMeta102;
modelica_metatype tmpMeta103;
modelica_boolean tmp104;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,20,2) == 0) goto tmp3_end;
tmpMeta102 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta103 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
_ty = tmpMeta102;
_e = tmpMeta103;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 35;
tmp104 = omc_Types_isRecord(threadData, _ty);
if (1 != tmp104) 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 26: {
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 27: {
modelica_boolean tmp105;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,13,3) == 0) goto tmp3_end;
_e = tmp4_3;
tmp4 += 43;
tmp105 = omc_Flags_isSet(threadData, _OMC_LIT44);
if (1 != tmp105) goto goto_2;
omc_Debug_trace(threadData, _OMC_LIT192);
_str = omc_ExpressionDump_printExpStr(threadData, _e);
omc_Debug_traceln(threadData, _str);
goto goto_2;
goto tmp3_done;
}
case 28: {
modelica_metatype tmpMeta106;
modelica_metatype tmpMeta107;
modelica_metatype tmpMeta108;
modelica_metatype tmpMeta109;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,14,4) == 0) goto tmp3_end;
tmpMeta106 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta107 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
tmpMeta108 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_funcpath = tmpMeta106;
_expl = tmpMeta107;
_fieldNames = tmpMeta108;
_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);
tmpMeta109 = mmc_mk_box5(13, &Values_Value_RECORD__desc, _funcpath, _vallst, _fieldNames, mmc_mk_integer(((modelica_integer) -1)));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta109;
goto tmp3_done;
}
case 29: {
modelica_metatype tmpMeta110;
modelica_metatype tmpMeta111;
modelica_metatype tmpMeta112;
modelica_metatype tmpMeta113;
modelica_metatype tmpMeta114;
modelica_metatype tmpMeta115;
modelica_metatype tmpMeta116;
modelica_metatype tmpMeta117;
modelica_metatype tmpMeta118;
modelica_metatype tmpMeta119;
modelica_metatype tmpMeta120;
modelica_metatype tmpMeta121;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,7,3) == 0) goto tmp3_end;
tmpMeta110 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta111 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta111,0,1) == 0) goto tmp3_end;
tmpMeta112 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta111), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta112,2,1) == 0) goto tmp3_end;
tmpMeta113 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_lh = tmpMeta110;
_rh = tmpMeta113;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 21;
tmpMeta116 = omc_Ceval_ceval(threadData, _cache, _env, _lh, _impl, _msg, _numIter, &tmpMeta114);
_cache = tmpMeta116;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta114,2,1) == 0) goto goto_2;
tmpMeta115 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta114), 2));
_lhvStr = tmpMeta115;
tmpMeta119 = omc_Ceval_ceval(threadData, _cache, _env, _rh, _impl, _msg, _numIter, &tmpMeta117);
_cache = tmpMeta119;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta117,2,1) == 0) goto goto_2;
tmpMeta118 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta117), 2));
_rhvStr = tmpMeta118;
tmpMeta120 = stringAppend(_lhvStr,_rhvStr);
_str = tmpMeta120;
tmpMeta121 = mmc_mk_box2(5, &Values_Value_STRING__desc, _str);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta121;
goto tmp3_done;
}
case 30: {
modelica_metatype tmpMeta122;
modelica_metatype tmpMeta123;
modelica_metatype tmpMeta124;
modelica_metatype tmpMeta125;
modelica_metatype tmpMeta126;
modelica_metatype tmpMeta127;
modelica_real tmp128;
modelica_metatype tmpMeta129;
modelica_metatype tmpMeta130;
modelica_metatype tmpMeta131;
modelica_real tmp132;
modelica_metatype tmpMeta133;
modelica_metatype tmpMeta134;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,7,3) == 0) goto tmp3_end;
tmpMeta122 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta123 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta123,0,1) == 0) goto tmp3_end;
tmpMeta124 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta123), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta124,1,1) == 0) goto tmp3_end;
tmpMeta125 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_lh = tmpMeta122;
_rh = tmpMeta125;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 20;
tmpMeta129 = omc_Ceval_ceval(threadData, _cache, _env, _lh, _impl, _msg, _numIter, &tmpMeta126);
_cache = tmpMeta129;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta126,1,1) == 0) goto goto_2;
tmpMeta127 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta126), 2));
tmp128 = mmc_unbox_real(tmpMeta127);
_lhvReal = tmp128;
tmpMeta133 = omc_Ceval_ceval(threadData, _cache, _env, _rh, _impl, _msg, _numIter, &tmpMeta130);
_cache = tmpMeta133;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta130,1,1) == 0) goto goto_2;
tmpMeta131 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta130), 2));
tmp132 = mmc_unbox_real(tmpMeta131);
_rhvReal = tmp132;
_sum = _lhvReal + _rhvReal;
tmpMeta134 = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_sum));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta134;
goto tmp3_done;
}
case 31: {
modelica_metatype tmpMeta135;
modelica_metatype tmpMeta136;
modelica_metatype tmpMeta137;
modelica_metatype tmpMeta138;
modelica_metatype tmpMeta139;
modelica_metatype tmpMeta140;
modelica_metatype tmpMeta141;
modelica_metatype tmpMeta142;
modelica_metatype tmpMeta143;
modelica_metatype tmpMeta144;
modelica_metatype tmpMeta145;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,7,3) == 0) goto tmp3_end;
tmpMeta135 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta136 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta136,7,1) == 0) goto tmp3_end;
tmpMeta137 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_lh = tmpMeta135;
_rh = tmpMeta137;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 39;
tmpMeta141 = omc_Ceval_ceval(threadData, _cache, _env, _lh, _impl, _msg, _numIter, &tmpMeta138);
_cache = tmpMeta141;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta138,5,2) == 0) goto goto_2;
tmpMeta139 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta138), 2));
tmpMeta140 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta138), 3));
_vlst1 = tmpMeta139;
_dims = tmpMeta140;
tmpMeta144 = omc_Ceval_ceval(threadData, _cache, _env, _rh, _impl, _msg, _numIter, &tmpMeta142);
_cache = tmpMeta144;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta142,5,2) == 0) goto goto_2;
tmpMeta143 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta142), 2));
_vlst2 = tmpMeta143;
_reslst = omc_ValuesUtil_addElementwiseArrayelt(threadData, _vlst1, _vlst2);
tmpMeta145 = mmc_mk_box3(8, &Values_Value_ARRAY__desc, _reslst, _dims);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta145;
goto tmp3_done;
}
case 32: {
modelica_metatype tmpMeta146;
modelica_metatype tmpMeta147;
modelica_metatype tmpMeta148;
modelica_metatype tmpMeta149;
modelica_metatype tmpMeta150;
modelica_metatype tmpMeta151;
modelica_metatype tmpMeta152;
modelica_metatype tmpMeta153;
modelica_metatype tmpMeta154;
modelica_metatype tmpMeta155;
modelica_metatype tmpMeta156;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,7,3) == 0) goto tmp3_end;
tmpMeta146 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta147 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta147,8,1) == 0) goto tmp3_end;
tmpMeta148 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_lh = tmpMeta146;
_rh = tmpMeta148;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 38;
tmpMeta152 = omc_Ceval_ceval(threadData, _cache, _env, _lh, _impl, _msg, _numIter, &tmpMeta149);
_cache = tmpMeta152;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta149,5,2) == 0) goto goto_2;
tmpMeta150 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta149), 2));
tmpMeta151 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta149), 3));
_vlst1 = tmpMeta150;
_dims = tmpMeta151;
tmpMeta155 = omc_Ceval_ceval(threadData, _cache, _env, _rh, _impl, _msg, _numIter, &tmpMeta153);
_cache = tmpMeta155;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta153,5,2) == 0) goto goto_2;
tmpMeta154 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta153), 2));
_vlst2 = tmpMeta154;
_reslst = omc_ValuesUtil_subElementwiseArrayelt(threadData, _vlst1, _vlst2);
tmpMeta156 = mmc_mk_box3(8, &Values_Value_ARRAY__desc, _reslst, _dims);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta156;
goto tmp3_done;
}
case 33: {
modelica_metatype tmpMeta157;
modelica_metatype tmpMeta158;
modelica_metatype tmpMeta159;
modelica_metatype tmpMeta160;
modelica_metatype tmpMeta161;
modelica_metatype tmpMeta162;
modelica_metatype tmpMeta163;
modelica_metatype tmpMeta164;
modelica_metatype tmpMeta165;
modelica_metatype tmpMeta166;
modelica_metatype tmpMeta167;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,7,3) == 0) goto tmp3_end;
tmpMeta157 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta158 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta158,9,1) == 0) goto tmp3_end;
tmpMeta159 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_lh = tmpMeta157;
_rh = tmpMeta159;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 37;
tmpMeta163 = omc_Ceval_ceval(threadData, _cache, _env, _lh, _impl, _msg, _numIter, &tmpMeta160);
_cache = tmpMeta163;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta160,5,2) == 0) goto goto_2;
tmpMeta161 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta160), 2));
tmpMeta162 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta160), 3));
_vlst1 = tmpMeta161;
_dims = tmpMeta162;
tmpMeta166 = omc_Ceval_ceval(threadData, _cache, _env, _rh, _impl, _msg, _numIter, &tmpMeta164);
_cache = tmpMeta166;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta164,5,2) == 0) goto goto_2;
tmpMeta165 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta164), 2));
_vlst2 = tmpMeta165;
_reslst = omc_ValuesUtil_mulElementwiseArrayelt(threadData, _vlst1, _vlst2);
tmpMeta167 = mmc_mk_box3(8, &Values_Value_ARRAY__desc, _reslst, _dims);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta167;
goto tmp3_done;
}
case 34: {
modelica_metatype tmpMeta168;
modelica_metatype tmpMeta169;
modelica_metatype tmpMeta170;
modelica_metatype tmpMeta171;
modelica_metatype tmpMeta172;
modelica_metatype tmpMeta173;
modelica_metatype tmpMeta174;
modelica_metatype tmpMeta175;
modelica_metatype tmpMeta176;
modelica_metatype tmpMeta177;
modelica_metatype tmpMeta178;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,7,3) == 0) goto tmp3_end;
tmpMeta168 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta169 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta169,10,1) == 0) goto tmp3_end;
tmpMeta170 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_lh = tmpMeta168;
_rh = tmpMeta170;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 36;
tmpMeta174 = omc_Ceval_ceval(threadData, _cache, _env, _lh, _impl, _msg, _numIter, &tmpMeta171);
_cache = tmpMeta174;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta171,5,2) == 0) goto goto_2;
tmpMeta172 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta171), 2));
tmpMeta173 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta171), 3));
_vlst1 = tmpMeta172;
_dims = tmpMeta173;
tmpMeta177 = omc_Ceval_ceval(threadData, _cache, _env, _rh, _impl, _msg, _numIter, &tmpMeta175);
_cache = tmpMeta177;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta175,5,2) == 0) goto goto_2;
tmpMeta176 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta175), 2));
_vlst2 = tmpMeta176;
_reslst = omc_ValuesUtil_divElementwiseArrayelt(threadData, _vlst1, _vlst2);
tmpMeta178 = mmc_mk_box3(8, &Values_Value_ARRAY__desc, _reslst, _dims);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta178;
goto tmp3_done;
}
case 35: {
modelica_metatype tmpMeta179;
modelica_metatype tmpMeta180;
modelica_metatype tmpMeta181;
modelica_metatype tmpMeta182;
modelica_metatype tmpMeta183;
modelica_metatype tmpMeta184;
modelica_metatype tmpMeta185;
modelica_metatype tmpMeta186;
modelica_metatype tmpMeta187;
modelica_metatype tmpMeta188;
modelica_metatype tmpMeta189;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,7,3) == 0) goto tmp3_end;
tmpMeta179 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta180 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta180,21,1) == 0) goto tmp3_end;
tmpMeta181 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_lh = tmpMeta179;
_rh = tmpMeta181;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 35;
tmpMeta185 = omc_Ceval_ceval(threadData, _cache, _env, _lh, _impl, _msg, _numIter, &tmpMeta182);
_cache = tmpMeta185;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta182,5,2) == 0) goto goto_2;
tmpMeta183 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta182), 2));
tmpMeta184 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta182), 3));
_vlst1 = tmpMeta183;
_dims = tmpMeta184;
tmpMeta188 = omc_Ceval_ceval(threadData, _cache, _env, _rh, _impl, _msg, _numIter, &tmpMeta186);
_cache = tmpMeta188;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta186,5,2) == 0) goto goto_2;
tmpMeta187 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta186), 2));
_vlst2 = tmpMeta187;
_reslst = omc_ValuesUtil_powElementwiseArrayelt(threadData, _vlst1, _vlst2);
tmpMeta189 = mmc_mk_box3(8, &Values_Value_ARRAY__desc, _reslst, _dims);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta189;
goto tmp3_done;
}
case 36: {
modelica_metatype tmpMeta190;
modelica_metatype tmpMeta191;
modelica_metatype tmpMeta192;
modelica_metatype tmpMeta193;
modelica_metatype tmpMeta194;
modelica_metatype tmpMeta195;
modelica_metatype tmpMeta196;
modelica_metatype tmpMeta197;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,7,3) == 0) goto tmp3_end;
tmpMeta190 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta191 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta191,11,1) == 0) goto tmp3_end;
tmpMeta192 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_lh = tmpMeta190;
_rh = tmpMeta192;
_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);
tmpMeta196 = omc_Ceval_ceval(threadData, _cache, _env, _lh, _impl, _msg, _numIter, &tmpMeta193);
_cache = tmpMeta196;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta193,5,2) == 0) goto goto_2;
tmpMeta194 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta193), 2));
tmpMeta195 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta193), 3));
_aval = tmpMeta194;
_dims = tmpMeta195;
_reslst = omc_ValuesUtil_multScalarArrayelt(threadData, _sval, _aval);
tmpMeta197 = mmc_mk_box3(8, &Values_Value_ARRAY__desc, _reslst, _dims);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta197;
goto tmp3_done;
}
case 37: {
modelica_metatype tmpMeta198;
modelica_metatype tmpMeta199;
modelica_metatype tmpMeta200;
modelica_metatype tmpMeta201;
modelica_metatype tmpMeta202;
modelica_metatype tmpMeta203;
modelica_metatype tmpMeta204;
modelica_metatype tmpMeta205;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,7,3) == 0) goto tmp3_end;
tmpMeta198 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta199 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta199,12,1) == 0) goto tmp3_end;
tmpMeta200 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_lh = tmpMeta198;
_rh = tmpMeta200;
_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);
tmpMeta204 = omc_Ceval_ceval(threadData, _cache, _env, _lh, _impl, _msg, _numIter, &tmpMeta201);
_cache = tmpMeta204;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta201,5,2) == 0) goto goto_2;
tmpMeta202 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta201), 2));
tmpMeta203 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta201), 3));
_aval = tmpMeta202;
_dims = tmpMeta203;
_reslst = omc_ValuesUtil_addScalarArrayelt(threadData, _sval, _aval);
tmpMeta205 = mmc_mk_box3(8, &Values_Value_ARRAY__desc, _reslst, _dims);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta205;
goto tmp3_done;
}
case 38: {
modelica_metatype tmpMeta206;
modelica_metatype tmpMeta207;
modelica_metatype tmpMeta208;
modelica_metatype tmpMeta209;
modelica_metatype tmpMeta210;
modelica_metatype tmpMeta211;
modelica_metatype tmpMeta212;
modelica_metatype tmpMeta213;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,7,3) == 0) goto tmp3_end;
tmpMeta206 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta207 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta207,13,1) == 0) goto tmp3_end;
tmpMeta208 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_lh = tmpMeta206;
_rh = tmpMeta208;
_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);
tmpMeta212 = omc_Ceval_ceval(threadData, _cache, _env, _rh, _impl, _msg, _numIter, &tmpMeta209);
_cache = tmpMeta212;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta209,5,2) == 0) goto goto_2;
tmpMeta210 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta209), 2));
tmpMeta211 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta209), 3));
_aval = tmpMeta210;
_dims = tmpMeta211;
_reslst = omc_ValuesUtil_subScalarArrayelt(threadData, _sval, _aval);
tmpMeta213 = mmc_mk_box3(8, &Values_Value_ARRAY__desc, _reslst, _dims);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta213;
goto tmp3_done;
}
case 39: {
modelica_metatype tmpMeta214;
modelica_metatype tmpMeta215;
modelica_metatype tmpMeta216;
modelica_metatype tmpMeta217;
modelica_metatype tmpMeta218;
modelica_metatype tmpMeta219;
modelica_metatype tmpMeta220;
modelica_metatype tmpMeta221;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,7,3) == 0) goto tmp3_end;
tmpMeta214 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta215 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta215,19,1) == 0) goto tmp3_end;
tmpMeta216 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_lh = tmpMeta214;
_rh = tmpMeta216;
_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);
tmpMeta220 = omc_Ceval_ceval(threadData, _cache, _env, _rh, _impl, _msg, _numIter, &tmpMeta217);
_cache = tmpMeta220;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta217,5,2) == 0) goto goto_2;
tmpMeta218 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta217), 2));
tmpMeta219 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta217), 3));
_aval = tmpMeta218;
_dims = tmpMeta219;
_reslst = omc_ValuesUtil_powScalarArrayelt(threadData, _sval, _aval);
tmpMeta221 = mmc_mk_box3(8, &Values_Value_ARRAY__desc, _reslst, _dims);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta221;
goto tmp3_done;
}
case 40: {
modelica_metatype tmpMeta222;
modelica_metatype tmpMeta223;
modelica_metatype tmpMeta224;
modelica_metatype tmpMeta225;
modelica_metatype tmpMeta226;
modelica_metatype tmpMeta227;
modelica_metatype tmpMeta228;
modelica_metatype tmpMeta229;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,7,3) == 0) goto tmp3_end;
tmpMeta222 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta223 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta223,18,1) == 0) goto tmp3_end;
tmpMeta224 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_lh = tmpMeta222;
_rh = tmpMeta224;
_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);
tmpMeta228 = omc_Ceval_ceval(threadData, _cache, _env, _lh, _impl, _msg, _numIter, &tmpMeta225);
_cache = tmpMeta228;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta225,5,2) == 0) goto goto_2;
tmpMeta226 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta225), 2));
tmpMeta227 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta225), 3));
_aval = tmpMeta226;
_dims = tmpMeta227;
_reslst = omc_ValuesUtil_powArrayeltScalar(threadData, _sval, _aval);
tmpMeta229 = mmc_mk_box3(8, &Values_Value_ARRAY__desc, _reslst, _dims);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta229;
goto tmp3_done;
}
case 41: {
modelica_metatype tmpMeta230;
modelica_metatype tmpMeta231;
modelica_metatype tmpMeta232;
modelica_metatype tmpMeta233;
modelica_metatype tmpMeta234;
modelica_metatype tmpMeta235;
modelica_metatype tmpMeta236;
modelica_metatype tmpMeta237;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,7,3) == 0) goto tmp3_end;
tmpMeta230 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta231 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta231,17,1) == 0) goto tmp3_end;
tmpMeta232 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_lh = tmpMeta230;
_rh = tmpMeta232;
_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);
tmpMeta236 = omc_Ceval_ceval(threadData, _cache, _env, _rh, _impl, _msg, _numIter, &tmpMeta233);
_cache = tmpMeta236;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta233,5,2) == 0) goto goto_2;
tmpMeta234 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta233), 2));
tmpMeta235 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta233), 3));
_aval = tmpMeta234;
_dims = tmpMeta235;
_reslst = omc_ValuesUtil_divScalarArrayelt(threadData, _sval, _aval);
tmpMeta237 = mmc_mk_box3(8, &Values_Value_ARRAY__desc, _reslst, _dims);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta237;
goto tmp3_done;
}
case 42: {
modelica_metatype tmpMeta238;
modelica_metatype tmpMeta239;
modelica_metatype tmpMeta240;
modelica_metatype tmpMeta241;
modelica_metatype tmpMeta242;
modelica_metatype tmpMeta243;
modelica_metatype tmpMeta244;
modelica_metatype tmpMeta245;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,7,3) == 0) goto tmp3_end;
tmpMeta238 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta239 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta239,16,1) == 0) goto tmp3_end;
tmpMeta240 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_lh = tmpMeta238;
_rh = tmpMeta240;
_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);
tmpMeta244 = omc_Ceval_ceval(threadData, _cache, _env, _lh, _impl, _msg, _numIter, &tmpMeta241);
_cache = tmpMeta244;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta241,5,2) == 0) goto goto_2;
tmpMeta242 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta241), 2));
tmpMeta243 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta241), 3));
_aval = tmpMeta242;
_dims = tmpMeta243;
_reslst = omc_ValuesUtil_divArrayeltScalar(threadData, _sval, _aval);
tmpMeta245 = mmc_mk_box3(8, &Values_Value_ARRAY__desc, _reslst, _dims);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta245;
goto tmp3_done;
}
case 43: {
modelica_metatype tmpMeta246;
modelica_metatype tmpMeta247;
modelica_metatype tmpMeta248;
modelica_metatype tmpMeta249;
modelica_metatype tmpMeta250;
modelica_metatype tmpMeta251;
modelica_metatype tmpMeta252;
modelica_metatype tmpMeta253;
modelica_metatype tmpMeta254;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,7,3) == 0) goto tmp3_end;
tmpMeta246 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta247 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta247,14,1) == 0) goto tmp3_end;
tmpMeta248 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_lh = tmpMeta246;
_rh = tmpMeta248;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 27;
tmpMeta251 = omc_Ceval_ceval(threadData, _cache, _env, _rh, _impl, _msg, _numIter, &tmpMeta249);
_cache = tmpMeta251;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta249,5,2) == 0) goto goto_2;
tmpMeta250 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta249), 2));
_rhvals = tmpMeta250;
tmpMeta254 = omc_Ceval_ceval(threadData, _cache, _env, _lh, _impl, _msg, _numIter, &tmpMeta252);
_cache = tmpMeta254;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta252,5,2) == 0) goto goto_2;
tmpMeta253 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta252), 2));
_lhvals = tmpMeta253;
_resVal = omc_ValuesUtil_multScalarProduct(threadData, _rhvals, _lhvals);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _resVal;
goto tmp3_done;
}
case 44: {
modelica_metatype tmpMeta255;
modelica_metatype tmpMeta256;
modelica_metatype tmpMeta257;
modelica_metatype tmpMeta258;
modelica_metatype tmpMeta259;
modelica_metatype tmpMeta260;
modelica_metatype tmpMeta261;
modelica_metatype tmpMeta262;
modelica_metatype tmpMeta263;
modelica_metatype tmpMeta264;
modelica_metatype tmpMeta265;
modelica_metatype tmpMeta266;
modelica_metatype tmpMeta267;
modelica_boolean tmp268;
modelica_boolean tmp269;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,7,3) == 0) goto tmp3_end;
tmpMeta255 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta256 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta256,15,1) == 0) goto tmp3_end;
tmpMeta257 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_lh = tmpMeta255;
_rh = tmpMeta257;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta262 = omc_Ceval_ceval(threadData, _cache, _env, _lh, _impl, _msg, _numIter, &tmpMeta258);
_cache = tmpMeta262;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta258,5,2) == 0) goto goto_2;
tmpMeta259 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta258), 2));
if (listEmpty(tmpMeta259)) goto goto_2;
tmpMeta260 = MMC_CAR(tmpMeta259);
tmpMeta261 = MMC_CDR(tmpMeta259);
_lhvals = tmpMeta259;
_elt1 = tmpMeta260;
tmpMeta267 = omc_Ceval_ceval(threadData, _cache, _env, _rh, _impl, _msg, _numIter, &tmpMeta263);
_cache = tmpMeta267;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta263,5,2) == 0) goto goto_2;
tmpMeta264 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta263), 2));
if (listEmpty(tmpMeta264)) goto goto_2;
tmpMeta265 = MMC_CAR(tmpMeta264);
tmpMeta266 = MMC_CDR(tmpMeta264);
_rhvals = tmpMeta264;
_elt2 = tmpMeta265;
tmp268 = omc_ValuesUtil_isArray(threadData, _elt1);
if (1 != tmp268) goto goto_2;
tmp269 = omc_ValuesUtil_isArray(threadData, _elt2);
if (0 != tmp269) goto goto_2;
_resVal = omc_ValuesUtil_multScalarProduct(threadData, _lhvals, _rhvals);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _resVal;
goto tmp3_done;
}
case 45: {
modelica_metatype tmpMeta270;
modelica_metatype tmpMeta271;
modelica_metatype tmpMeta272;
modelica_metatype tmpMeta273;
modelica_metatype tmpMeta274;
modelica_metatype tmpMeta275;
modelica_metatype tmpMeta276;
modelica_metatype tmpMeta277;
modelica_metatype tmpMeta278;
modelica_metatype tmpMeta279;
modelica_metatype tmpMeta280;
modelica_metatype tmpMeta281;
modelica_metatype tmpMeta282;
modelica_boolean tmp283;
modelica_boolean tmp284;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,7,3) == 0) goto tmp3_end;
tmpMeta270 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta271 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta271,15,1) == 0) goto tmp3_end;
tmpMeta272 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_lh = tmpMeta270;
_rh = tmpMeta272;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta277 = omc_Ceval_ceval(threadData, _cache, _env, _rh, _impl, _msg, _numIter, &tmpMeta273);
_cache = tmpMeta277;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta273,5,2) == 0) goto goto_2;
tmpMeta274 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta273), 2));
if (listEmpty(tmpMeta274)) goto goto_2;
tmpMeta275 = MMC_CAR(tmpMeta274);
tmpMeta276 = MMC_CDR(tmpMeta274);
_rhvals = tmpMeta274;
_elt1 = tmpMeta275;
tmpMeta282 = omc_Ceval_ceval(threadData, _cache, _env, _lh, _impl, _msg, _numIter, &tmpMeta278);
_cache = tmpMeta282;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta278,5,2) == 0) goto goto_2;
tmpMeta279 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta278), 2));
if (listEmpty(tmpMeta279)) goto goto_2;
tmpMeta280 = MMC_CAR(tmpMeta279);
tmpMeta281 = MMC_CDR(tmpMeta279);
_lhvals = tmpMeta279;
_elt2 = tmpMeta280;
tmp283 = omc_ValuesUtil_isArray(threadData, _elt1);
if (1 != tmp283) goto goto_2;
tmp284 = omc_ValuesUtil_isArray(threadData, _elt2);
if (0 != tmp284) goto goto_2;
_resVal = omc_ValuesUtil_multScalarProduct(threadData, _lhvals, _rhvals);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _resVal;
goto tmp3_done;
}
case 46: {
modelica_metatype tmpMeta285;
modelica_metatype tmpMeta286;
modelica_metatype tmpMeta287;
modelica_metatype tmpMeta288;
modelica_metatype tmpMeta289;
modelica_metatype tmpMeta290;
modelica_metatype tmpMeta291;
modelica_metatype tmpMeta292;
modelica_metatype tmpMeta293;
modelica_metatype tmpMeta294;
modelica_metatype tmpMeta295;
modelica_metatype tmpMeta296;
modelica_metatype tmpMeta297;
modelica_boolean tmp298;
modelica_boolean tmp299;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,7,3) == 0) goto tmp3_end;
tmpMeta285 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta286 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta286,15,1) == 0) goto tmp3_end;
tmpMeta287 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_lh = tmpMeta285;
_rh = tmpMeta287;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 24;
tmpMeta292 = omc_Ceval_ceval(threadData, _cache, _env, _rh, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta288);
_cache = tmpMeta292;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta288,5,2) == 0) goto goto_2;
tmpMeta289 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta288), 2));
if (listEmpty(tmpMeta289)) goto goto_2;
tmpMeta290 = MMC_CAR(tmpMeta289);
tmpMeta291 = MMC_CDR(tmpMeta289);
_rhvals = tmpMeta289;
_elt1 = tmpMeta290;
tmpMeta297 = omc_Ceval_ceval(threadData, _cache, _env, _lh, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta293);
_cache = tmpMeta297;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta293,5,2) == 0) goto goto_2;
tmpMeta294 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta293), 2));
if (listEmpty(tmpMeta294)) goto goto_2;
tmpMeta295 = MMC_CAR(tmpMeta294);
tmpMeta296 = MMC_CDR(tmpMeta294);
_lhvals = tmpMeta294;
_elt2 = tmpMeta295;
tmp298 = omc_ValuesUtil_isArray(threadData, _elt1);
if (1 != tmp298) goto goto_2;
tmp299 = omc_ValuesUtil_isArray(threadData, _elt2);
if (1 != tmp299) 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 47: {
modelica_metatype tmpMeta300;
modelica_metatype tmpMeta301;
modelica_metatype tmpMeta302;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,7,3) == 0) goto tmp3_end;
tmpMeta300 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta301 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta301,4,1) == 0) goto tmp3_end;
tmpMeta302 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_lh = tmpMeta300;
_rh = tmpMeta302;
_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_LIT193);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _resVal;
goto tmp3_done;
}
case 48: {
modelica_metatype tmpMeta303;
modelica_metatype tmpMeta304;
modelica_metatype tmpMeta305;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,7,3) == 0) goto tmp3_end;
tmpMeta303 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta304 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta304,2,1) == 0) goto tmp3_end;
tmpMeta305 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_lh = tmpMeta303;
_rh = tmpMeta305;
_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_LIT194);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _resVal;
goto tmp3_done;
}
case 49: {
modelica_metatype tmpMeta306;
modelica_metatype tmpMeta307;
modelica_metatype tmpMeta308;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,7,3) == 0) goto tmp3_end;
tmpMeta306 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta307 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta307,3,1) == 0) goto tmp3_end;
tmpMeta308 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_lh = tmpMeta306;
_rh = tmpMeta308;
_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_LIT195);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _resVal;
goto tmp3_done;
}
case 50: {
modelica_metatype tmpMeta309;
modelica_metatype tmpMeta310;
modelica_metatype tmpMeta311;
modelica_metatype tmpMeta312;
modelica_boolean tmp313;
modelica_metatype tmpMeta314;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_5,0,1) == 0) goto tmp3_end;
tmpMeta309 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_5), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,7,3) == 0) goto tmp3_end;
tmpMeta310 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta311 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta311,3,1) == 0) goto tmp3_end;
tmpMeta312 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_msg = tmp4_5;
_info = tmpMeta309;
_lh = tmpMeta310;
_rh = tmpMeta312;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
tmp4 += 20;
omc_Ceval_ceval(threadData, _cache, _env, _rh, _impl, _msg, _numIter ,&_lhvVal);
tmp313 = omc_ValuesUtil_isZero(threadData, _lhvVal);
if (1 != tmp313) goto goto_2;
_lhvStr = omc_ExpressionDump_printExpStr(threadData, _lh);
_rhvStr = omc_ExpressionDump_printExpStr(threadData, _rh);
tmpMeta314 = mmc_mk_cons(_lhvStr, mmc_mk_cons(_rhvStr, MMC_REFSTRUCTLIT(mmc_nil)));
omc_Error_addSourceMessage(threadData, _OMC_LIT75, tmpMeta314, _info);
goto goto_2;
goto tmp3_done;
}
case 51: {
modelica_metatype tmpMeta315;
modelica_metatype tmpMeta316;
modelica_metatype tmpMeta317;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,7,3) == 0) goto tmp3_end;
tmpMeta315 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta316 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta316,0,1) == 0) goto tmp3_end;
tmpMeta317 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_lh = tmpMeta315;
_rh = tmpMeta317;
_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_LIT196);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _resVal;
goto tmp3_done;
}
case 52: {
modelica_metatype tmpMeta318;
modelica_metatype tmpMeta319;
modelica_metatype tmpMeta320;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,7,3) == 0) goto tmp3_end;
tmpMeta318 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta319 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta319,1,1) == 0) goto tmp3_end;
tmpMeta320 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_lh = tmpMeta318;
_rh = tmpMeta320;
_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_LIT197);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _resVal;
goto tmp3_done;
}
case 53: {
modelica_metatype tmpMeta321;
modelica_metatype tmpMeta322;
modelica_metatype tmpMeta323;
modelica_metatype tmpMeta324;
modelica_metatype tmpMeta325;
modelica_metatype tmpMeta326;
modelica_metatype tmpMeta327;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,8,2) == 0) goto tmp3_end;
tmpMeta321 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta321,6,1) == 0) goto tmp3_end;
tmpMeta322 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
_daeExp = tmpMeta322;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 17;
tmpMeta326 = omc_Ceval_ceval(threadData, _cache, _env, _daeExp, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta323);
_cache = tmpMeta326;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta323,5,2) == 0) goto goto_2;
tmpMeta324 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta323), 2));
tmpMeta325 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta323), 3));
_arr = tmpMeta324;
_dims = tmpMeta325;
_arr_1 = omc_List_map(threadData, _arr, boxvar_ValuesUtil_valueNeg);
tmpMeta327 = mmc_mk_box3(8, &Values_Value_ARRAY__desc, _arr_1, _dims);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta327;
goto tmp3_done;
}
case 54: {
modelica_metatype tmpMeta328;
modelica_metatype tmpMeta329;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,8,2) == 0) goto tmp3_end;
tmpMeta328 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta328,5,1) == 0) goto tmp3_end;
tmpMeta329 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
_daeExp = tmpMeta329;
_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 55: {
modelica_metatype tmpMeta330;
modelica_metatype tmpMeta331;
modelica_metatype tmpMeta332;
modelica_metatype tmpMeta333;
modelica_metatype tmpMeta334;
modelica_integer tmp335;
modelica_metatype tmpMeta336;
modelica_metatype tmpMeta337;
modelica_metatype tmpMeta338;
modelica_integer tmp339;
modelica_metatype tmpMeta340;
modelica_metatype tmpMeta341;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,9,3) == 0) goto tmp3_end;
tmpMeta330 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta331 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta331,22,1) == 0) goto tmp3_end;
tmpMeta332 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_lh = tmpMeta330;
_rh = tmpMeta332;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 15;
tmpMeta336 = omc_Ceval_ceval(threadData, _cache, _env, _lh, _impl, _msg, _numIter, &tmpMeta333);
_cache = tmpMeta336;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta333,3,1) == 0) goto goto_2;
tmpMeta334 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta333), 2));
tmp335 = mmc_unbox_integer(tmpMeta334);
_lhvBool = tmp335;
if((!_lhvBool))
{
_v = _OMC_LIT198;
}
else
{
tmpMeta340 = omc_Ceval_ceval(threadData, _cache, _env, _rh, _impl, _msg, _numIter, &tmpMeta337);
_cache = tmpMeta340;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta337,3,1) == 0) goto goto_2;
tmpMeta338 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta337), 2));
tmp339 = mmc_unbox_integer(tmpMeta338);
_rhvBool = tmp339;
_resBool = (_lhvBool && _rhvBool);
tmpMeta341 = mmc_mk_box2(6, &Values_Value_BOOL__desc, mmc_mk_boolean(_resBool));
_v = tmpMeta341;
}
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _v;
goto tmp3_done;
}
case 56: {
modelica_metatype tmpMeta342;
modelica_metatype tmpMeta343;
modelica_metatype tmpMeta344;
modelica_metatype tmpMeta345;
modelica_metatype tmpMeta346;
modelica_integer tmp347;
modelica_metatype tmpMeta348;
modelica_metatype tmpMeta349;
modelica_metatype tmpMeta350;
modelica_integer tmp351;
modelica_metatype tmpMeta352;
modelica_metatype tmpMeta353;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,9,3) == 0) goto tmp3_end;
tmpMeta342 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta343 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta343,23,1) == 0) goto tmp3_end;
tmpMeta344 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_lh = tmpMeta342;
_rh = tmpMeta344;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta348 = omc_Ceval_ceval(threadData, _cache, _env, _lh, _impl, _msg, _numIter, &tmpMeta345);
_cache = tmpMeta348;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta345,3,1) == 0) goto goto_2;
tmpMeta346 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta345), 2));
tmp347 = mmc_unbox_integer(tmpMeta346);
_lhvBool = tmp347;
if(_lhvBool)
{
_v = _OMC_LIT56;
}
else
{
tmpMeta352 = omc_Ceval_ceval(threadData, _cache, _env, _rh, _impl, _msg, _numIter, &tmpMeta349);
_cache = tmpMeta352;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta349,3,1) == 0) goto goto_2;
tmpMeta350 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta349), 2));
tmp351 = mmc_unbox_integer(tmpMeta350);
_rhvBool = tmp351;
_resBool = (_lhvBool || _rhvBool);
tmpMeta353 = mmc_mk_box2(6, &Values_Value_BOOL__desc, mmc_mk_boolean(_resBool));
_v = tmpMeta353;
}
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _v;
goto tmp3_done;
}
case 57: {
modelica_metatype tmpMeta354;
modelica_metatype tmpMeta355;
modelica_metatype tmpMeta356;
modelica_metatype tmpMeta357;
modelica_metatype tmpMeta358;
modelica_boolean tmp359;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,9,3) == 0) goto tmp3_end;
tmpMeta354 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta355 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta355,23,1) == 0) goto tmp3_end;
tmpMeta356 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_lh = tmpMeta354;
_rh = tmpMeta356;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 13;
tmpMeta358 = omc_Ceval_ceval(threadData, _cache, _env, _lh, _impl, _msg, _numIter, &tmpMeta357);
_cache = tmpMeta358;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta357,3,1) == 0) goto goto_2;
_v = tmpMeta357;
tmp359 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
omc_Ceval_ceval(threadData, _cache, _env, _rh, _impl, _msg, _numIter, NULL);
tmp359 = 1;
goto goto_360;
goto_360:;
MMC_CATCH_INTERNAL(mmc_jumper)
if (tmp359) {goto goto_2;}
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _v;
goto tmp3_done;
}
case 58: {
modelica_metatype tmpMeta361;
modelica_metatype tmpMeta362;
modelica_metatype tmpMeta363;
modelica_metatype tmpMeta364;
modelica_integer tmp365;
modelica_metatype tmpMeta366;
modelica_metatype tmpMeta367;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,10,2) == 0) goto tmp3_end;
tmpMeta361 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta361,24,1) == 0) goto tmp3_end;
tmpMeta362 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
_e = tmpMeta362;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 12;
tmpMeta366 = omc_Ceval_ceval(threadData, _cache, _env, _e, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta363);
_cache = tmpMeta366;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta363,3,1) == 0) goto goto_2;
tmpMeta364 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta363), 2));
tmp365 = mmc_unbox_integer(tmpMeta364);
_b = tmp365;
_b_1 = (!_b);
tmpMeta367 = mmc_mk_box2(6, &Values_Value_BOOL__desc, mmc_mk_boolean(_b_1));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta367;
goto tmp3_done;
}
case 59: {
modelica_metatype tmpMeta368;
modelica_metatype tmpMeta369;
modelica_metatype tmpMeta370;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,11,5) == 0) goto tmp3_end;
tmpMeta368 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta369 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
tmpMeta370 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_lhs = tmpMeta368;
_relop = tmpMeta369;
_rhs = tmpMeta370;
_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 60: {
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 61: {
modelica_metatype tmpMeta371;
modelica_metatype tmpMeta372;
modelica_metatype tmpMeta373;
modelica_metatype tmpMeta374;
modelica_integer tmp375;
modelica_metatype tmpMeta376;
modelica_metatype tmpMeta377;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,20,2) == 0) goto tmp3_end;
tmpMeta371 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta371,1,1) == 0) goto tmp3_end;
tmpMeta372 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
_e = tmpMeta372;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 9;
tmpMeta376 = omc_Ceval_ceval(threadData, _cache, _env, _e, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta373);
_cache = tmpMeta376;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta373,0,1) == 0) goto goto_2;
tmpMeta374 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta373), 2));
tmp375 = mmc_unbox_integer(tmpMeta374);
_i = tmp375;
_r = ((modelica_real)_i);
tmpMeta377 = mmc_mk_box2(4, &Values_Value_REAL__desc, mmc_mk_real(_r));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta377;
goto tmp3_done;
}
case 62: {
modelica_metatype tmpMeta378;
modelica_metatype tmpMeta379;
modelica_metatype tmpMeta380;
modelica_metatype tmpMeta381;
modelica_real tmp382;
modelica_metatype tmpMeta383;
modelica_metatype tmpMeta384;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,20,2) == 0) goto tmp3_end;
tmpMeta378 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta378,0,1) == 0) goto tmp3_end;
tmpMeta379 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
_e = tmpMeta379;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 8;
tmpMeta383 = omc_Ceval_ceval(threadData, _cache, _env, _e, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta380);
_cache = tmpMeta383;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta380,1,1) == 0) goto goto_2;
tmpMeta381 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta380), 2));
tmp382 = mmc_unbox_real(tmpMeta381);
_r = tmp382;
_i = ((modelica_integer)floor(_r));
tmpMeta384 = mmc_mk_box2(3, &Values_Value_INTEGER__desc, mmc_mk_integer(_i));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta384;
goto tmp3_done;
}
case 63: {
modelica_metatype tmpMeta385;
modelica_metatype tmpMeta386;
modelica_metatype tmpMeta387;
modelica_metatype tmpMeta388;
modelica_metatype tmpMeta389;
modelica_metatype tmpMeta390;
modelica_integer tmp391;
modelica_metatype tmpMeta392;
modelica_metatype tmpMeta393;
modelica_metatype tmpMeta394;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,20,2) == 0) goto tmp3_end;
tmpMeta385 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta385,5,5) == 0) goto tmp3_end;
tmpMeta386 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta385), 3));
tmpMeta387 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta385), 4));
tmpMeta388 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
_path = tmpMeta386;
_n = tmpMeta387;
_e = tmpMeta388;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 7;
tmpMeta392 = omc_Ceval_ceval(threadData, _cache, _env, _e, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta389);
_cache = tmpMeta392;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta389,0,1) == 0) goto goto_2;
tmpMeta390 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta389), 2));
tmp391 = mmc_unbox_integer(tmpMeta390);
_i = tmp391;
_str = listGet(_n, _i);
tmpMeta393 = mmc_mk_box2(4, &Absyn_Path_IDENT__desc, _str);
_path = omc_AbsynUtil_joinPaths(threadData, _path, tmpMeta393);
tmpMeta394 = mmc_mk_box3(7, &Values_Value_ENUM__LITERAL__desc, _path, mmc_mk_integer(_i));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta394;
goto tmp3_done;
}
case 64: {
modelica_metatype tmpMeta395;
modelica_metatype tmpMeta396;
modelica_metatype tmpMeta397;
modelica_metatype tmpMeta398;
modelica_metatype tmpMeta399;
modelica_metatype tmpMeta400;
modelica_metatype tmpMeta401;
modelica_metatype tmpMeta402;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,20,2) == 0) goto tmp3_end;
tmpMeta395 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta395,6,2) == 0) goto tmp3_end;
tmpMeta396 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta395), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta396,1,1) == 0) goto tmp3_end;
tmpMeta397 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
_e = tmpMeta397;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 6;
tmpMeta401 = omc_Ceval_ceval(threadData, _cache, _env, _e, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta398);
_cache = tmpMeta401;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta398,5,2) == 0) goto goto_2;
tmpMeta399 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta398), 2));
tmpMeta400 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta398), 3));
_ivals = tmpMeta399;
_dims = tmpMeta400;
_rvals = omc_ValuesUtil_typeConvert(threadData, _OMC_LIT199, _OMC_LIT200, _ivals);
tmpMeta402 = mmc_mk_box3(8, &Values_Value_ARRAY__desc, _rvals, _dims);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = tmpMeta402;
goto tmp3_done;
}
case 65: {
modelica_metatype tmpMeta403;
modelica_metatype tmpMeta404;
modelica_metatype tmpMeta405;
modelica_metatype tmpMeta406;
modelica_metatype tmpMeta407;
modelica_integer tmp408;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,12,3) == 0) goto tmp3_end;
tmpMeta403 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta404 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
tmpMeta405 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_cond = tmpMeta403;
_e1 = tmpMeta404;
_e2 = tmpMeta405;
_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);
tmpMeta406 = _v;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta406,3,1) == 0) goto goto_2;
tmpMeta407 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta406), 2));
tmp408 = mmc_unbox_integer(tmpMeta407);
_resBool = tmp408;
tmpMeta[0+0] = omc_Ceval_ceval(threadData, _cache, _env, (_resBool?_e1:_e2), _impl, _msg, _numIter, &tmpMeta[0+1]);
goto tmp3_done;
}
case 66: {
modelica_metatype tmpMeta409;
modelica_metatype tmpMeta410;
modelica_metatype tmpMeta411;
modelica_metatype tmpMeta412;
modelica_metatype tmpMeta413;
modelica_integer tmp414;
modelica_metatype tmpMeta415;
modelica_metatype tmpMeta416;
modelica_metatype tmpMeta417;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,21,2) == 0) goto tmp3_end;
tmpMeta409 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta410 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
if (listEmpty(tmpMeta410)) goto tmp3_end;
tmpMeta411 = MMC_CAR(tmpMeta410);
tmpMeta412 = MMC_CDR(tmpMeta410);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta411,0,1) == 0) goto tmp3_end;
tmpMeta413 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta411), 2));
tmp414 = mmc_unbox_integer(tmpMeta413);
if (!listEmpty(tmpMeta412)) goto tmp3_end;
_e = tmpMeta409;
_indx = tmp414;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmpMeta417 = omc_Ceval_ceval(threadData, _cache, _env, _e, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta415);
_cache = tmpMeta417;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta415,5,2) == 0) goto goto_2;
tmpMeta416 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta415), 2));
_vals = tmpMeta416;
_v = listGet(_vals, _indx);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _v;
goto tmp3_done;
}
case 67: {
modelica_metatype tmpMeta418;
modelica_metatype tmpMeta419;
modelica_metatype tmpMeta420;
modelica_metatype tmpMeta421;
modelica_metatype tmpMeta422;
modelica_metatype tmpMeta423;
modelica_metatype tmpMeta424;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,21,2) == 0) goto tmp3_end;
tmpMeta418 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta419 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
_e = tmpMeta418;
_expl = tmpMeta419;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 3;
tmpMeta423 = omc_Ceval_ceval(threadData, _cache, _env, _e, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta420);
_cache = tmpMeta423;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta420,5,2) == 0) goto goto_2;
tmpMeta421 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta420), 2));
tmpMeta422 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta420), 3));
_vals = tmpMeta421;
_dims = tmpMeta422;
_cache = omc_Ceval_cevalList(threadData, _cache, _env, _expl, _impl, _msg, _numIter ,&_es_1);
_v = listHead(_es_1);
tmpMeta424 = mmc_mk_box3(8, &Values_Value_ARRAY__desc, _vals, _dims);
_v = omc_ValuesUtil_nthnthArrayelt(threadData, _es_1, tmpMeta424, _v);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _v;
goto tmp3_done;
}
case 68: {
modelica_metatype tmpMeta425;
modelica_metatype tmpMeta426;
modelica_integer tmp427;
modelica_metatype tmpMeta428;
modelica_metatype tmpMeta429;
modelica_metatype tmpMeta430;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,22,3) == 0) goto tmp3_end;
tmpMeta425 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta426 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
tmp427 = mmc_unbox_integer(tmpMeta426);
_e = tmpMeta425;
_indx = tmp427;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 2;
tmpMeta430 = omc_Ceval_ceval(threadData, _cache, _env, _e, _impl, _msg, ((modelica_integer) 1) + _numIter, &tmpMeta428);
_cache = tmpMeta430;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta428,8,1) == 0) goto goto_2;
tmpMeta429 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta428), 2));
_vals = tmpMeta429;
_v = listGet(_vals, _indx);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _v;
goto tmp3_done;
}
case 69: {
modelica_metatype tmpMeta431;
modelica_metatype tmpMeta432;
modelica_metatype tmpMeta433;
modelica_metatype tmpMeta434;
modelica_metatype tmpMeta435;
modelica_metatype tmpMeta436;
modelica_metatype tmpMeta437;
modelica_metatype tmpMeta438;
modelica_metatype tmpMeta439;
modelica_metatype tmpMeta440;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_3,27,3) == 0) goto tmp3_end;
tmpMeta431 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 2));
tmpMeta432 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta431), 2));
tmpMeta433 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta431), 3));
tmpMeta434 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta431), 4));
tmpMeta435 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta431), 5));
tmpMeta436 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta431), 6));
tmpMeta437 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta431), 7));
tmpMeta438 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta431), 8));
tmpMeta439 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 3));
tmpMeta440 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 4));
_path = tmpMeta432;
_iterType = tmpMeta433;
_ty = tmpMeta434;
_ov = tmpMeta435;
_foldName = tmpMeta436;
_resultName = tmpMeta437;
_foldExp = tmpMeta438;
_daeExp = tmpMeta439;
_iterators = tmpMeta440;
_cache = tmp4_1;
_env = tmp4_2;
_impl = tmp4_4;
_msg = tmp4_5;
tmp4 += 1;
_env = omc_FGraph_openScope(threadData, _env, _OMC_LIT201, _OMC_LIT202, 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 70: {
modelica_metatype tmpMeta441;
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))));
tmpMeta441 = 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] = tmpMeta441;
goto tmp3_done;
}
case 71: {
modelica_metatype tmpMeta442;
if (!omc_Config_getGraphicsExpMode(threadData)) goto tmp3_end;
_ty = omc_Expression_typeof(threadData, _inExp);
_v = omc_Types_typeToValue(threadData, _ty);
tmpMeta442 = mmc_mk_box5(19, &Values_Value_EMPTY__desc, _OMC_LIT203, omc_ExpressionDump_printExpStr(threadData, _inExp), _v, omc_Types_unparseType(threadData, _ty));
tmpMeta[0+0] = _inCache;
tmpMeta[0+1] = tmpMeta442;
goto tmp3_done;
}
case 72: {
modelica_boolean tmp443;
modelica_metatype tmpMeta444;
modelica_metatype tmpMeta445;
_env = tmp4_2;
_e = tmp4_3;
tmp443 = omc_Flags_isSet(threadData, _OMC_LIT26);
if (1 != tmp443) goto goto_2;
tmpMeta444 = stringAppend(_OMC_LIT204,omc_ExpressionDump_printExpStr(threadData, _e));
omc_Debug_traceln(threadData, tmpMeta444);
tmpMeta445 = stringAppend(_OMC_LIT205,omc_FGraph_printGraphPathStr(threadData, _env));
omc_Debug_traceln(threadData, tmpMeta445);
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 < 73) {
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[2] __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: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
if (1 != tmp4_2) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,0,1) == 0) goto tmp3_end;
tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 2));
_info = tmpMeta6;
_str1 = _OMC_LIT206;
_str2 = omc_ExpressionDump_printExpStr(threadData, _inExp);
tmpMeta7 = 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_LIT209, tmpMeta7, _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;
}
