roadrunner  2.6.0
Fast simulator for SBML models
GetInitialValuesCodeGen.h
1 /*
2  * GetValuesCodeGen.h
3  *
4  * Created on: Jul 27, 2013
5  * Author: andy
6  */
7 
8 #ifndef RRLLVM_GETINITIALVALUESCODEGEN_H_
9 #define RRLLVM_GETINITIALVALUESCODEGEN_H_
10 
11 #include "CodeGenBase.h"
12 #include "ModelGeneratorContext.h"
13 #include "SymbolForest.h"
14 #include "ASTNodeFactory.h"
15 #include "ModelDataIRBuilder.h"
16 #include "GetInitialValueCodeGenBase.h"
17 #include <sbml/Model.h>
18 
19 namespace rrllvm
20 {
25  GetInitialValueCodeGenBase<GetFloatingSpeciesInitConcentrationCodeGen, false>
26  {
27  public:
30 
31  std::vector<std::string> getIds()
32  {
33  return dataSymbols.getFloatingSpeciesIds();
34  }
35 
36  static const char* FunctionName;
37  static const char* IndexArgName;
38  };
39 
44  GetInitialValueCodeGenBase<GetBoundarySpeciesInitConcentrationCodeGen, false>
45  {
46  public:
49 
50  std::vector<string> getIds()
51  {
52  return dataSymbols.getBoundarySpeciesIds();
53  }
54 
55  static const char* FunctionName;
56  static const char* IndexArgName;
57  };
58 
63  GetInitialValueCodeGenBase<GetFloatingSpeciesInitAmountCodeGen, true>
64  {
65  public:
68 
69  std::vector<std::string> getIds()
70  {
71  return dataSymbols.getFloatingSpeciesIds();
72  }
73 
74  static const char* FunctionName;
75  static const char* IndexArgName;
76  };
77 
82  GetInitialValueCodeGenBase<GetBoundarySpeciesInitAmountCodeGen, true>
83  {
84  public:
87 
88  std::vector<string> getIds()
89  {
90  return dataSymbols.getBoundarySpeciesIds();
91  }
92 
93  static const char* FunctionName;
94  static const char* IndexArgName;
95  };
96 
101  GetInitialValueCodeGenBase<GetCompartmentInitVolumeCodeGen, false>
102  {
103  public:
106 
107  std::vector<std::string> getIds()
108  {
109  return dataSymbols.getCompartmentIds();
110  }
111 
112  static const char* FunctionName;
113  static const char* IndexArgName;
114  };
115 
120  GetInitialValueCodeGenBase<GetGlobalParameterInitValueCodeGen, false>
121  {
122  public:
125 
126  std::vector<std::string> getIds()
127  {
128  return dataSymbols.getGlobalParameterIds();
129  }
130 
131  static const char* FunctionName;
132  static const char* IndexArgName;
133  };
134 
135 
136 
137 } /* namespace rr */
138 #endif /* RRLLVM_GETINITIALVALUESCODEGEN_H_ */
Get the initial amount of a boundary species.
Definition: GetInitialValuesCodeGen.h:83
Get the initial concentration of a boundary species.
Definition: GetInitialValuesCodeGen.h:45
Get the initial volume of a compartment.
Definition: GetInitialValuesCodeGen.h:102
Get the initial amount of a floating species.
Definition: GetInitialValuesCodeGen.h:64
Get the initial concentration of a floating species.
Definition: GetInitialValuesCodeGen.h:26
Get the initial value of a parameter.
Definition: GetInitialValuesCodeGen.h:121
Base class for getting the initial value of an element.
Definition: GetInitialValueCodeGenBase.h:33
std::vector< std::string > getFloatingSpeciesIds() const
the list that is returned by ExecutableModel, so order must remain constant.
Definition: LLVMModelDataSymbols.cpp:478
All LLVM code generating objects basically need at a minimum three things to operate:
Definition: ModelGeneratorContext.h:95