roadrunner  2.6.0
Fast simulator for SBML models
EvalInitialConditionsCodeGen.h
1 /*
2  * EvalInitialValueCodeGen.h
3  *
4  * Created on: Jun 29, 2013
5  * Author: andy
6  */
7 
8 #ifndef EvalInitialValueCodeGenH
9 #define EvalInitialValueCodeGenH
10 
11 #include "ModelGeneratorContext.h"
12 #include "CodeGenBase.h"
13 #include "SymbolForest.h"
14 #include "ASTNodeFactory.h"
15 #include "ModelDataIRBuilder.h"
16 #include "SBMLInitialValueSymbolResolver.h"
17 #include "ModelDataSymbolResolver.h"
18 #include <sbml/Model.h>
19 #include <sbml/SBMLVisitor.h>
20 
21 namespace rrllvm
22 {
23 
24 typedef void (*EvalInitialConditions_FunctionPtr)(LLVMModelData*, size_t);
25 
35 class EvalInitialConditionsCodeGen: public CodeGenBase<EvalInitialConditions_FunctionPtr>
36 {
37 public:
40 
41  llvm::Value *codeGen();
42 
43  static const char* FunctionName;
44  typedef EvalInitialConditions_FunctionPtr FunctionPtr;
45 
46 private:
47 
48  void codeGenSpecies(StoreSymbolResolver& modelDataResolver,
49  LoadSymbolResolver& loadResolver);
50 
51  void codeGenStoichiometry(llvm::Value *modelData,
52  ModelDataStoreSymbolResolver& modelDataResolver,
53  LoadSymbolResolver& initialValueResolver);
54 
55  void codeGenCompartments(StoreSymbolResolver& modelDataResolver,
56  LoadSymbolResolver& loadResolver);
57 
58  void codeGenGlobalParameters(StoreSymbolResolver& modelDataResolver,
59  LoadSymbolResolver& loadResolver);
60 
61  void codeGenInitSpecies(StoreSymbolResolver& modelDataResolver,
62  LoadSymbolResolver& loadResolver);
63 
64  void codeGenInitCompartments(StoreSymbolResolver& modelDataResolver,
65  LoadSymbolResolver& loadResolver);
66 
67  void codeGenInitGlobalParameters(StoreSymbolResolver& modelDataResolver,
68  LoadSymbolResolver& loadResolver);
69 };
70 
71 } /* namespace rr */
72 #endif /* EvalInitialValueCodeGenH */
a convenience class to pull the vars out of a context, and store them as ivars.
Definition: CodeGenBase.h:54
Generates a function called 'modeldata_initialvalues_set', which evaluates all of the initial conditi...
Definition: EvalInitialConditionsCodeGen.h:36
LLVM load instruction class.
Definition: CodeGen.h:37
All LLVM code generating objects basically need at a minimum three things to operate:
Definition: ModelGeneratorContext.h:95
LLVM store symbol class.
Definition: CodeGen.h:79