#ifndef RemoveSimpleEquations__H
#define RemoveSimpleEquations__H
#include "meta/meta_modelica.h"
#include "util/modelica.h"
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>

#ifdef __cplusplus
extern "C" {
#endif

extern struct record_description Absyn_Path_IDENT__desc;

extern struct record_description Absyn_Path_QUALIFIED__desc;

extern struct record_description BackendDAE_BackendDAE_DAE__desc;

extern struct record_description BackendDAE_BaseClockPartitionKind_UNSPECIFIED__PARTITION__desc;

extern struct record_description BackendDAE_Equation_ARRAY__EQUATION__desc;

extern struct record_description BackendDAE_Equation_COMPLEX__EQUATION__desc;

extern struct record_description BackendDAE_Equation_EQUATION__desc;

extern struct record_description BackendDAE_Equation_WHEN__EQUATION__desc;

extern struct record_description BackendDAE_EquationAttributes_EQUATION__ATTRIBUTES__desc;

extern struct record_description BackendDAE_EquationKind_BINDING__EQUATION__desc;

extern struct record_description BackendDAE_EvaluationStages_EVALUATION__STAGES__desc;

extern struct record_description BackendDAE_StateSet_STATESET__desc;

extern struct record_description BackendDAE_VarKind_CONST__desc;

extern struct record_description BackendDAE_VarKind_DUMMY__STATE__desc;

extern struct record_description BackendDAE_VarKind_PARAM__desc;

extern struct record_description BackendDAE_WhenEquation_WHEN__STMTS__desc;

extern struct record_description BackendDAE_WhenOperator_ASSERT__desc;

extern struct record_description DAE_ClassAttributes_OPTIMIZATION__ATTRS__desc;

extern struct record_description DAE_ComponentPrefix_NOCOMPPRE__desc;

extern struct record_description DAE_ComponentRef_CREF__IDENT__desc;

extern struct record_description DAE_Constraint_CONSTRAINT__EXPS__desc;

extern struct record_description DAE_ElementSource_SOURCE__desc;

extern struct record_description DAE_Exp_BCONST__desc;

extern struct record_description DAE_Exp_ENUM__LITERAL__desc;

extern struct record_description DAE_Exp_ICONST__desc;

extern struct record_description DAE_Exp_LUNARY__desc;

extern struct record_description DAE_Exp_RCONST__desc;

extern struct record_description DAE_Exp_SCONST__desc;

extern struct record_description DAE_Exp_UNARY__desc;

extern struct record_description DAE_Operator_UMINUS__desc;

extern struct record_description DAE_Operator_UMINUS__ARR__desc;

extern struct record_description DAE_SymbolicOperation_SOLVED__desc;

extern struct record_description DAE_Type_T__REAL__desc;

extern struct record_description ErrorTypes_Message_MESSAGE__desc;

extern struct record_description ErrorTypes_MessageType_SYMBOLIC__desc;

extern struct record_description ErrorTypes_MessageType_TRANSLATION__desc;

extern struct record_description ErrorTypes_Severity_ERROR__desc;

extern struct record_description ErrorTypes_Severity_WARNING__desc;

extern struct record_description Flags_ConfigFlag_CONFIG__FLAG__desc;

extern struct record_description Flags_DebugFlag_DEBUG__FLAG__desc;

extern struct record_description Flags_FlagData_BOOL__FLAG__desc;

extern struct record_description Flags_FlagData_INT__FLAG__desc;

extern struct record_description Flags_FlagData_STRING__FLAG__desc;

extern struct record_description Flags_FlagVisibility_EXTERNAL__desc;

extern struct record_description Flags_FlagVisibility_INTERNAL__desc;

extern struct record_description Flags_ValidOptions_STRING__DESC__OPTION__desc;

extern struct record_description RemoveSimpleEquations_SimpleContainer_ALIAS__desc;

extern struct record_description RemoveSimpleEquations_SimpleContainer_PARAMETERALIAS__desc;

extern struct record_description RemoveSimpleEquations_SimpleContainer_TIMEALIAS__desc;

extern struct record_description RemoveSimpleEquations_SimpleContainer_TIMEINDEPENTVAR__desc;

extern struct record_description SourceInfo_SOURCEINFO__desc;


#define boxptr_RemoveSimpleEquations_dumpSimpleContainer omc_RemoveSimpleEquations_dumpSimpleContainer


#define boxptr_RemoveSimpleEquations_getDominantAttributeValue omc_RemoveSimpleEquations_getDominantAttributeValue


#define boxptr_RemoveSimpleEquations_getThisAttributes omc_RemoveSimpleEquations_getThisAttributes


#define boxptr_RemoveSimpleEquations_setAttributes omc_RemoveSimpleEquations_setAttributes


#define boxptr_RemoveSimpleEquations_getAliasAttributes omc_RemoveSimpleEquations_getAliasAttributes


#define boxptr_RemoveSimpleEquations_determineAliasLst omc_RemoveSimpleEquations_determineAliasLst


#define boxptr_RemoveSimpleEquations_addThisCrefs omc_RemoveSimpleEquations_addThisCrefs


#define boxptr_RemoveSimpleEquations_addRestCrefs omc_RemoveSimpleEquations_addRestCrefs


#define boxptr_RemoveSimpleEquations_solveAllCrefs1 omc_RemoveSimpleEquations_solveAllCrefs1


#define boxptr_RemoveSimpleEquations_solveAllCrefs omc_RemoveSimpleEquations_solveAllCrefs


#define boxptr_RemoveSimpleEquations_addToCrToExp omc_RemoveSimpleEquations_addToCrToExp


#define boxptr_RemoveSimpleEquations_addToCrAndEqLists omc_RemoveSimpleEquations_addToCrAndEqLists


#define boxptr_RemoveSimpleEquations_removeStateDerInfo omc_RemoveSimpleEquations_removeStateDerInfo


#define boxptr_RemoveSimpleEquations_traverseExpTopDown omc_RemoveSimpleEquations_traverseExpTopDown


#define boxptr_RemoveSimpleEquations_addVarReplacements omc_RemoveSimpleEquations_addVarReplacements


#define boxptr_RemoveSimpleEquations_moveVars omc_RemoveSimpleEquations_moveVars


#define boxptr_RemoveSimpleEquations_traverseCrefUnreplaceable omc_RemoveSimpleEquations_traverseCrefUnreplaceable


#define boxptr_RemoveSimpleEquations_traverserExpUnreplaceable omc_RemoveSimpleEquations_traverserExpUnreplaceable


#define boxptr_RemoveSimpleEquations_addUnreplaceableFromWhenOps omc_RemoveSimpleEquations_addUnreplaceableFromWhenOps


#define boxptr_RemoveSimpleEquations_addUnreplaceableFromWhen omc_RemoveSimpleEquations_addUnreplaceableFromWhen


#define boxptr_RemoveSimpleEquations_addUnreplaceableFromStmt omc_RemoveSimpleEquations_addUnreplaceableFromStmt


#define boxptr_RemoveSimpleEquations_addUnreplaceableFromWhenStmt omc_RemoveSimpleEquations_addUnreplaceableFromWhenStmt


#define boxptr_RemoveSimpleEquations_addUnreplaceableFromWhenEqn omc_RemoveSimpleEquations_addUnreplaceableFromWhenEqn


#define boxptr_RemoveSimpleEquations_addUnreplaceableFromWhensSystem omc_RemoveSimpleEquations_addUnreplaceableFromWhensSystem


#define boxptr_RemoveSimpleEquations_addUnreplaceableFromEqnsExp omc_RemoveSimpleEquations_addUnreplaceableFromEqnsExp


#define boxptr_RemoveSimpleEquations_addUnreplaceableFromWhens omc_RemoveSimpleEquations_addUnreplaceableFromWhens


#define boxptr_RemoveSimpleEquations_addUnreplaceableFromStateSet omc_RemoveSimpleEquations_addUnreplaceableFromStateSet


#define boxptr_RemoveSimpleEquations_addUnreplaceableFromStateSetSystem omc_RemoveSimpleEquations_addUnreplaceableFromStateSetSystem


#define boxptr_RemoveSimpleEquations_addUnreplaceableFromStateSets omc_RemoveSimpleEquations_addUnreplaceableFromStateSets


#define boxptr_RemoveSimpleEquations_replaceOptExprTraverser omc_RemoveSimpleEquations_replaceOptExprTraverser


#define boxptr_RemoveSimpleEquations_replaceExprTraverser omc_RemoveSimpleEquations_replaceExprTraverser


#define boxptr_RemoveSimpleEquations_replaceEquationTraverser omc_RemoveSimpleEquations_replaceEquationTraverser


#define boxptr_RemoveSimpleEquations_getAliasVarReplacements omc_RemoveSimpleEquations_getAliasVarReplacements


#define boxptr_RemoveSimpleEquations_getAliasReplacements omc_RemoveSimpleEquations_getAliasReplacements


#define boxptr_RemoveSimpleEquations_replaceOptimicaContraints omc_RemoveSimpleEquations_replaceOptimicaContraints


#define boxptr_RemoveSimpleEquations_replaceOptimicaExps omc_RemoveSimpleEquations_replaceOptimicaExps


#define boxptr_RemoveSimpleEquations_replaceOtherStateSetVars omc_RemoveSimpleEquations_replaceOtherStateSetVars


#define boxptr_RemoveSimpleEquations_removeEqualLshRshEqns omc_RemoveSimpleEquations_removeEqualLshRshEqns


#define boxptr_RemoveSimpleEquations_removeSimpleEquationsShared1 omc_RemoveSimpleEquations_removeSimpleEquationsShared1


#define boxptr_RemoveSimpleEquations_replaceVarTraverser omc_RemoveSimpleEquations_replaceVarTraverser


#define boxptr_RemoveSimpleEquations_replaceAliasVarTraverser omc_RemoveSimpleEquations_replaceAliasVarTraverser


#define boxptr_RemoveSimpleEquations_fixAliasConstBindings1 omc_RemoveSimpleEquations_fixAliasConstBindings1


#define boxptr_RemoveSimpleEquations_fixAliasConstBindings omc_RemoveSimpleEquations_fixAliasConstBindings


#define boxptr_RemoveSimpleEquations_updateStateOrder omc_RemoveSimpleEquations_updateStateOrder


#define boxptr_RemoveSimpleEquations_updateVar omc_RemoveSimpleEquations_updateVar


#define boxptr_RemoveSimpleEquations_selectFreeValue1 omc_RemoveSimpleEquations_selectFreeValue1


#define boxptr_RemoveSimpleEquations_selectNonZeroExpression omc_RemoveSimpleEquations_selectNonZeroExpression


#define boxptr_RemoveSimpleEquations_getZeroFreeValues omc_RemoveSimpleEquations_getZeroFreeValues


#define boxptr_RemoveSimpleEquations_equalFreeStartValues omc_RemoveSimpleEquations_equalFreeStartValues


#define boxptr_RemoveSimpleEquations_equalNonFreeStartValues omc_RemoveSimpleEquations_equalNonFreeStartValues


#define boxptr_RemoveSimpleEquations_optExpReplaceCrefWithBindExp omc_RemoveSimpleEquations_optExpReplaceCrefWithBindExp


#define boxptr_RemoveSimpleEquations_mergeMinMax1 omc_RemoveSimpleEquations_mergeMinMax1


#define boxptr_RemoveSimpleEquations_addNominalValue omc_RemoveSimpleEquations_addNominalValue


#define boxptr_RemoveSimpleEquations_addSubstitutionOption omc_RemoveSimpleEquations_addSubstitutionOption


#define boxptr_RemoveSimpleEquations_negateOptExp omc_RemoveSimpleEquations_negateOptExp


#define boxptr_RemoveSimpleEquations_varStateDerivative omc_RemoveSimpleEquations_varStateDerivative


#define boxptr_RemoveSimpleEquations_getVarsNames omc_RemoveSimpleEquations_getVarsNames


#define boxptr_RemoveSimpleEquations_constOrAliasArrayAcausal omc_RemoveSimpleEquations_constOrAliasArrayAcausal


#define boxptr_RemoveSimpleEquations_solveTimeIndependentAcausal1 omc_RemoveSimpleEquations_solveTimeIndependentAcausal1


#define boxptr_RemoveSimpleEquations_solveTimeIndependentAcausal omc_RemoveSimpleEquations_solveTimeIndependentAcausal


#define boxptr_RemoveSimpleEquations_generateEquation omc_RemoveSimpleEquations_generateEquation


#define boxptr_RemoveSimpleEquations_simpleArrayEquationAcausal omc_RemoveSimpleEquations_simpleArrayEquationAcausal


#define boxptr_RemoveSimpleEquations_simpleEquationsFinder omc_RemoveSimpleEquations_simpleEquationsFinder


#define boxptr_RemoveSimpleEquations_allCausalFinder omc_RemoveSimpleEquations_allCausalFinder


#define boxptr_RemoveSimpleEquations_traverseComponents omc_RemoveSimpleEquations_traverseComponents


#define boxptr_RemoveSimpleEquations_causal1 omc_RemoveSimpleEquations_causal1


DLLDirection
modelica_metatype omc_RemoveSimpleEquations_causal(threadData_t *threadData, modelica_metatype _inDAE);
#define boxptr_RemoveSimpleEquations_causal omc_RemoveSimpleEquations_causal
static const MMC_DEFSTRUCTLIT(boxvar_lit_RemoveSimpleEquations_causal,2,0) {(void*) boxptr_RemoveSimpleEquations_causal,0}};
#define boxvar_RemoveSimpleEquations_causal MMC_REFSTRUCTLIT(boxvar_lit_RemoveSimpleEquations_causal)


#define boxptr_RemoveSimpleEquations_allAcausal1 omc_RemoveSimpleEquations_allAcausal1


DLLDirection
modelica_metatype omc_RemoveSimpleEquations_allAcausal(threadData_t *threadData, modelica_metatype _inDAE);
#define boxptr_RemoveSimpleEquations_allAcausal omc_RemoveSimpleEquations_allAcausal
static const MMC_DEFSTRUCTLIT(boxvar_lit_RemoveSimpleEquations_allAcausal,2,0) {(void*) boxptr_RemoveSimpleEquations_allAcausal,0}};
#define boxvar_RemoveSimpleEquations_allAcausal MMC_REFSTRUCTLIT(boxvar_lit_RemoveSimpleEquations_allAcausal)


#define boxptr_RemoveSimpleEquations_fastAcausal1 omc_RemoveSimpleEquations_fastAcausal1


#define boxptr_RemoveSimpleEquations_addUnreplaceable omc_RemoveSimpleEquations_addUnreplaceable


DLLDirection
modelica_metatype omc_RemoveSimpleEquations_fastAcausal(threadData_t *threadData, modelica_metatype _inDAE);
#define boxptr_RemoveSimpleEquations_fastAcausal omc_RemoveSimpleEquations_fastAcausal
static const MMC_DEFSTRUCTLIT(boxvar_lit_RemoveSimpleEquations_fastAcausal,2,0) {(void*) boxptr_RemoveSimpleEquations_fastAcausal,0}};
#define boxvar_RemoveSimpleEquations_fastAcausal MMC_REFSTRUCTLIT(boxvar_lit_RemoveSimpleEquations_fastAcausal)


#define boxptr_RemoveSimpleEquations_fixKnownVarsCausal2 omc_RemoveSimpleEquations_fixKnownVarsCausal2


#define boxptr_RemoveSimpleEquations_fixAliasVarsCausal2 omc_RemoveSimpleEquations_fixAliasVarsCausal2


#define boxptr_RemoveSimpleEquations_fixAliasAndKnownVarsCausal omc_RemoveSimpleEquations_fixAliasAndKnownVarsCausal


#define boxptr_RemoveSimpleEquations_fixKnownVars omc_RemoveSimpleEquations_fixKnownVars


#define boxptr_RemoveSimpleEquations_fixAliasVars omc_RemoveSimpleEquations_fixAliasVars


#define boxptr_RemoveSimpleEquations_getVarsHelper omc_RemoveSimpleEquations_getVarsHelper


DLLDirection
modelica_metatype omc_RemoveSimpleEquations_fixAliasVarsVariablity(threadData_t *threadData, modelica_metatype _inDAE);
#define boxptr_RemoveSimpleEquations_fixAliasVarsVariablity omc_RemoveSimpleEquations_fixAliasVarsVariablity
static const MMC_DEFSTRUCTLIT(boxvar_lit_RemoveSimpleEquations_fixAliasVarsVariablity,2,0) {(void*) boxptr_RemoveSimpleEquations_fixAliasVarsVariablity,0}};
#define boxvar_RemoveSimpleEquations_fixAliasVarsVariablity MMC_REFSTRUCTLIT(boxvar_lit_RemoveSimpleEquations_fixAliasVarsVariablity)


DLLDirection
modelica_metatype omc_RemoveSimpleEquations_removeVerySimpleEquations(threadData_t *threadData, modelica_metatype _inDAE);
#define boxptr_RemoveSimpleEquations_removeVerySimpleEquations omc_RemoveSimpleEquations_removeVerySimpleEquations
static const MMC_DEFSTRUCTLIT(boxvar_lit_RemoveSimpleEquations_removeVerySimpleEquations,2,0) {(void*) boxptr_RemoveSimpleEquations_removeVerySimpleEquations,0}};
#define boxvar_RemoveSimpleEquations_removeVerySimpleEquations MMC_REFSTRUCTLIT(boxvar_lit_RemoveSimpleEquations_removeVerySimpleEquations)


DLLDirection
modelica_metatype omc_RemoveSimpleEquations_removeSimpleEquations(threadData_t *threadData, modelica_metatype _inDAE);
#define boxptr_RemoveSimpleEquations_removeSimpleEquations omc_RemoveSimpleEquations_removeSimpleEquations
static const MMC_DEFSTRUCTLIT(boxvar_lit_RemoveSimpleEquations_removeSimpleEquations,2,0) {(void*) boxptr_RemoveSimpleEquations_removeSimpleEquations,0}};
#define boxvar_RemoveSimpleEquations_removeSimpleEquations MMC_REFSTRUCTLIT(boxvar_lit_RemoveSimpleEquations_removeSimpleEquations)

#ifdef __cplusplus
}
#endif
#endif
