roadrunner  2.6.0
Fast simulator for SBML models
EvalVolatileStoichCodeGen.h
1 /*
2  * EvalVolatileStoichCodeGen.h
3  *
4  * Created on: Aug 25, 2013
5  * Author: andy
6  */
7 
8 #ifndef EVALVOLATILESTOICHCODEGEN_H_
9 #define EVALVOLATILESTOICHCODEGEN_H_
10 
11 #include "CodeGenBase.h"
12 #include "ModelGeneratorContext.h"
13 #include "SymbolForest.h"
14 #include "ASTNodeFactory.h"
15 #include "ModelDataIRBuilder.h"
16 #include <sbml/Model.h>
17 
18 
19 
20 namespace rrllvm
21 {
22 
23  typedef void (*EvalVolatileStoichCodeGen_FunctionPtr)(LLVMModelData*);
24 
29  public CodeGenBase<EvalVolatileStoichCodeGen_FunctionPtr>
30  {
31  public:
33  virtual ~EvalVolatileStoichCodeGen();
34 
35  llvm::Value* codeGen();
36 
37  static const char* FunctionName;
38 
39  private:
47  bool isConstantSpeciesReference(const
48  libsbml::SimpleSpeciesReference* ref) const;
49 
54  bool isConstantASTNode(const libsbml::ASTNode* ast) const;
55  };
56 
57 } /* namespace rrllvm */
58 #endif /* EVALVOLATILESTOICHCODEGEN_H_ */
a convenience class to pull the vars out of a context, and store them as ivars.
Definition: CodeGenBase.h:54
Evaluate 'volatile stoichiometries', or, stoichiometries that can change over the course of a simulat...
Definition: EvalVolatileStoichCodeGen.h:30
All LLVM code generating objects basically need at a minimum three things to operate:
Definition: ModelGeneratorContext.h:95