11 #ifndef ModelGeneratorContext_H_
12 #define ModelGeneratorContext_H_
14 #include "LLVMIncludes.h"
15 #include "LLVMModelDataSymbols.h"
16 #include "LLVMModelSymbols.h"
18 #include <sbml/Model.h>
19 #include <sbml/SBMLDocument.h>
25 #pragma warning(disable: 4146)
26 #pragma warning(disable: 4141)
27 #pragma warning(disable: 4267)
28 #pragma warning(disable: 4624)
29 #pragma warning(disable: 4244)
32 #include "llvm/IR/LegacyPassManager.h"
36 #pragma warning(default: 4146)
37 #pragma warning(default: 4141)
38 #pragma warning(default: 4267)
39 #pragma warning(default: 4624)
40 #pragma warning(default: 4244)
50 namespace conservation {
51 class ConservedMoietyConverter;
102 const libsbml::SBMLDocument *_doc,
104 std::unique_ptr<Jit> jitEngine);
119 const libsbml::SBMLDocument *getDocument()
const;
121 const libsbml::Model *getModel()
const;
123 const std::vector<libsbml::ASTNode*>* getPiecewiseTriggers()
const;
125 size_t getNumPiecewiseTriggers()
const;
127 Jit *getJitNonOwning()
const;
144 bool getConservedMoietyAnalysis()
const;
146 bool useSymbolCache()
const;
148 unsigned getOptions()
const {
166 libsbml::SBMLDocument *ownedDoc;
171 const libsbml::SBMLDocument *doc;
173 std::vector<libsbml::ASTNode*> mPiecewiseTriggers;
181 std::unique_ptr<LLVMModelSymbols> modelSymbols;
183 const libsbml::Model *model;
215 std::unique_ptr<Jit> jit;
221 std::unique_ptr<rr::conservation::ConservedMoietyConverter> moietyConverter;
226 void addAllPiecewiseTriggers(
const libsbml::Model* model);
231 void addPiecewiseTriggersFrom(
const libsbml::ASTNode* node);
236 bool containsPiecewise(
const libsbml::ASTNode* node);
241 void clearPiecewiseTriggers();
Definition: rrRandom.h:14
superclass of all Jit types.
Definition: Jit.h:150
stores the names of all the symbols in the sbml model and thier indexes in the ModelData arrays.
Definition: LLVMModelDataSymbols.h:128
Hold all the un-evaluated symbolic inforamtion in the model.
Definition: LLVMModelSymbols.h:26
All LLVM code generating objects basically need at a minimum three things to operate:
Definition: ModelGeneratorContext.h:95
ModelGeneratorContext()
does not attach to any sbml doc,
Definition: ModelGeneratorContext.cpp:212
Random * getRandom() const
get a pointer to the random object.
Definition: ModelGeneratorContext.cpp:227
void transferObjectsToResources(std::shared_ptr< rrllvm::ModelResources > modelResources)
A lot can go wrong in the process of generating a model from an sbml doc.
Definition: ModelGeneratorContext.cpp:390
A data structure that is that allows data to be exchanged with running SBML models.
Definition: LLVMModelData.h:47