00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef SMAG2OSIL_HPP_
00010 #define SMAG2OSIL_HPP_
00011
00012 #include "GAMSlinksConfig.h"
00013
00014 #ifdef HAVE_CSTDLIB
00015 #include <cstdlib>
00016 #else
00017 #ifdef HAVE_STDLIB_H
00018 #include <stdlib.h>
00019 #else
00020 #error "don't have header file for stdlib"
00021 #endif
00022 #endif
00023
00024 #ifdef HAVE_CSTDIO
00025 #include <cstdio>
00026 #else
00027 #ifdef HAVE_STDIO_H
00028 #include <stdio.h>
00029 #else
00030 #error "don't have header file for stdio"
00031 #endif
00032 #endif
00033
00034 class OSInstance;
00035 class OSnLNode;
00036
00037 struct smagRec;
00038
00042 class Smag2OSiL
00043 {
00044 public:
00048 Smag2OSiL(struct smagRec* smag_);
00049
00052 ~Smag2OSiL();
00053
00057 bool createOSInstance();
00058
00061 OSInstance *osinstance;
00062
00067 bool keep_original_instr;
00068
00069 private:
00070 struct smagRec* smag;
00071
00072 OSnLNode* parseGamsInstructions(unsigned int* instr, int num_instr, double* constants);
00073
00074 bool setupQuadraticTerms();
00075
00076 bool setupTimeDomain();
00077 };
00078
00079 #endif