/home/coin/SVN-release/OS-2.2.0/OS/src/OSCommonInterfaces/OSInstance.h

Go to the documentation of this file.
00001 /* $Id: OSInstance.h 3148 2010-01-30 02:10:06Z Gassmann $ */
00034 #ifndef OSINSTANCE_H
00035 #define OSINSTANCE_H
00036 #include "OSParameters.h"
00037 #include "OSDataStructures.h"
00038 #include "OSnLNode.h"
00039 #include "OSExpressionTree.h"
00040 #include <string>
00041 #include <map>
00042 
00043 
00048 class InstanceHeader{
00049 public:
00050 
00052         InstanceHeader();
00053         
00055         ~InstanceHeader();
00056         
00058         std::string description;
00059         
00061         std::string name;
00062         
00064         std::string source;             
00065 };//class InstanceHeader
00066 
00067 
00068 
00072 class Variable{
00073 public:
00075         Variable();
00076         
00078         ~Variable();
00079 
00083         double lb;
00084 
00088         double ub;
00089         
00093         //double init;
00094         
00098         char type;
00099         
00103         std::string name;
00104         
00108         //std::string initString;
00109 }; // class Variable
00110 
00111 
00115 class Variables{
00116 public:
00117 
00119         Variables();
00120         
00122         ~Variables();
00123         
00125         int numberOfVariables;
00126         
00128         Variable **var;
00129 }; // class Variables
00130 
00131 
00136 class ObjCoef{
00137 public:
00138 
00140         ObjCoef();
00141         
00143         ~ObjCoef();
00144         
00148         int idx;
00149         
00153         double value;
00154 };//class Coef
00155 
00160 class Constraint{
00161 public:
00162 
00164         Constraint();
00165         
00167         ~Constraint();
00168         
00170         std::string name;
00171         
00173         double constant;
00174         
00176         double lb;
00177         
00179         double ub;
00180 };//class Constraint
00181 
00182 
00187 class Constraints{
00188 public:
00189 
00191         Constraints();
00192         
00194         ~Constraints();
00195         
00199         int numberOfConstraints;
00200         
00203         Constraint **con;
00204 };//class Constraints
00205 
00206 
00207 
00212 class Objective{
00213 public:
00214 
00216         Objective();
00217         
00219         ~Objective();
00220         
00222         std::string name;
00223         
00227         std::string maxOrMin;
00228         
00232         double constant;
00233         
00237         double weight;
00238         
00242         int numberOfObjCoef;
00243         
00246         ObjCoef **coef;
00247 };//class Objective
00248 
00253 class Objectives{
00254 public:
00255 
00257         Objectives();
00258         
00260         ~Objectives();
00261         
00265         int numberOfObjectives;
00266         
00269         Objective **obj;
00270 };//class Objectives
00271 
00283 class LinearConstraintCoefficients{
00284 public:
00285 
00287         LinearConstraintCoefficients();
00288         
00290         ~LinearConstraintCoefficients();
00291         
00295         int numberOfValues;
00296         
00300         IntVector *start;
00301         
00303         IntVector *rowIdx;
00304         
00306         IntVector *colIdx;
00307         
00309         DoubleVector *value;
00316         int iNumberOfStartElements;
00317 };//class LinearConstraintCoefficients
00318 
00319 
00329 class QuadraticTerm{
00330 public:
00331     
00333         QuadraticTerm();
00334         
00336         ~QuadraticTerm();
00337         
00341         int idx;
00342         
00346     int idxOne;
00347     
00351     int idxTwo;
00352     
00354     double coef;
00355 }; // QuadraticTerm
00356 
00357 
00358 
00359 
00365 class QuadraticCoefficients {
00366 public:
00367     
00369         QuadraticCoefficients();
00370         
00372         ~QuadraticCoefficients();
00373         
00377         int numberOfQuadraticTerms;
00378         
00381     QuadraticTerm** qTerm;
00382 }; // QuadraticCoefficients
00383 
00384 
00389 class Nl{  
00390 public: 
00392         int idx;
00393 
00399         bool m_bDeleteExpressionTree;
00400         
00402         OSExpressionTree *osExpressionTree;
00403         
00407         Nl();
00408 
00412         ~Nl();
00413 };//end Nl
00414 
00419 class NonlinearExpressions {
00420 public:
00421     
00423         NonlinearExpressions();
00424         
00426         ~NonlinearExpressions();
00427         
00432         int numberOfNonlinearExpressions;
00433         
00436     Nl **nl;
00437 }; // NonlinearExpression
00438 
00439 
00440 
00445 class TimeDomainStageVar {
00446 public:
00447     
00449         TimeDomainStageVar();
00450         
00452         ~TimeDomainStageVar();
00453         
00455         int idx;
00456 }; // TimeDomainStageVar
00457 
00462 class TimeDomainStageVariables {
00463 public:
00464     
00466         TimeDomainStageVariables();
00467         
00469         ~TimeDomainStageVariables();
00470         
00472         int numberOfVariables;
00473 
00475         int startIdx;
00476 
00478         TimeDomainStageVar** var;
00479 }; // TimeDomainStageVariables
00480 
00481 
00486 class TimeDomainStageCon {
00487 public:
00488     
00490         TimeDomainStageCon();
00491         
00493         ~TimeDomainStageCon();
00494         
00496         int idx;
00497 }; // TimeDomainStageCon
00498 
00503 class TimeDomainStageConstraints {
00504 public:
00505     
00507         TimeDomainStageConstraints();
00508         
00510         ~TimeDomainStageConstraints();
00511         
00513         int numberOfConstraints;
00514 
00516         int startIdx;
00517 
00519         TimeDomainStageCon** con;
00520 }; // TimeDomainStageConstraints
00521 
00522 
00527 class TimeDomainStageObj {
00528 public:
00529     
00531         TimeDomainStageObj();
00532         
00534         ~TimeDomainStageObj();
00535         
00537         int idx;
00538 }; // TimeDomainStageObj
00539 
00544 class TimeDomainStageObjectives {
00545 public:
00546     
00548         TimeDomainStageObjectives();
00549         
00551         ~TimeDomainStageObjectives();
00552         
00554         int numberOfObjectives;
00555 
00557         int startIdx;
00558 
00560         TimeDomainStageObj** obj;
00561 }; // TimeDomainStageObjectives
00562 
00563 
00568 class TimeDomainStage {
00569 public:
00570     
00572         TimeDomainStage();
00573         
00575         ~TimeDomainStage();
00576         
00580         std::string name;
00581         
00583         TimeDomainStageVariables *variables;
00584 
00586         TimeDomainStageConstraints *constraints;
00587 
00589         TimeDomainStageObjectives *objectives;
00590 }; // TimeDomainStage
00591  
00596 class TimeDomainStages {
00597 public:
00598     
00600         TimeDomainStages();
00601         
00603         ~TimeDomainStages();
00604         
00608         int numberOfStages;
00609         
00611     TimeDomainStage **stage;
00612 }; // Stages
00613  
00618 class TimeDomainInterval {
00619 public:
00620     
00622         TimeDomainInterval();
00623         
00625         ~TimeDomainInterval();
00626         
00630         double start;
00631         
00635         double horizon;
00636 }; // Interval
00637  
00642 class TimeDomain {
00643 public:
00644     
00646         TimeDomain();
00647         
00649         ~TimeDomain();
00650 
00653         TimeDomainStages *stages;
00654 
00657         TimeDomainInterval *interval;
00658 }; // TimeDomain
00659 
00676 class InstanceData{
00677 public:
00678 
00680         InstanceData();
00681         
00683         ~InstanceData();
00684         
00686         Variables *variables;
00687         
00689         Objectives *objectives;
00690         
00692         Constraints *constraints;
00693         
00697         LinearConstraintCoefficients *linearConstraintCoefficients;
00698         
00702         QuadraticCoefficients* quadraticCoefficients;
00703         
00707         NonlinearExpressions* nonlinearExpressions;
00708         
00712         TimeDomain* timeDomain;
00713 }; // class InstanceData
00714 
00715 
00742 class OSInstance {
00743 public:
00744 
00746         OSInstance(); 
00747         
00749         ~OSInstance();
00750         
00752         InstanceHeader *instanceHeader;
00753         
00755         InstanceData *instanceData;
00756         
00760         bool bVariablesModified ;
00761         
00765         bool bObjectivesModified ;
00766         
00770         bool bConstraintsModified ;
00771         
00775         bool bAMatrixModified ;
00776         
00777 
00778 
00779 private:
00783         std::string m_sInstanceName;
00787         std::string m_sInstanceSource;  
00791         std::string m_sInstanceDescription;
00792         
00796         bool m_bProcessVariables;
00797         
00801         int m_iVariableNumber;
00802         
00806         int m_iNumberOfIntegerVariables;
00807         
00811         int m_iNumberOfBinaryVariables;
00812         
00816         int m_iNumberOfStringVariables;
00817         
00821         int m_iNumberOfQuadraticRowIndexes;
00822         
00826         bool m_bQuadraticRowIndexesProcessed;
00827 
00831         int *m_miQuadRowIndexes;
00832         
00836         int m_iNumberOfNonlinearExpressionTreeIndexes;
00837         
00841         bool m_bNonlinearExpressionTreeIndexesProcessed;
00842 
00847         int *m_miNonlinearExpressionTreeIndexes;
00848         
00853         int m_iNumberOfNonlinearExpressionTreeModIndexes;
00854         
00858         bool m_bNonlinearExpressionTreeModIndexesProcessed;
00859 
00864         int *m_miNonlinearExpressionTreeModIndexes;
00865         
00869         std::string* m_msVariableNames;
00870         
00875         //double* m_mdVariableInitialValues ;
00876 
00881         //std::string* m_msVariableInitialStringValues;
00882 
00887         char* m_mcVariableTypes;
00888 
00892         double* m_mdVariableLowerBounds;
00893 
00897         double* m_mdVariableUpperBounds;
00898 
00902         bool m_bProcessObjectives;
00903 
00907         int m_iObjectiveNumber;
00908         
00912         int m_iObjectiveNumberNonlinear;
00913         
00917         std::string* m_msObjectiveNames;
00918         
00922         std::string* m_msMaxOrMins;
00923         
00927         int* m_miNumberOfObjCoef;
00928         
00932         double* m_mdObjectiveConstants;
00933         
00937         double* m_mdObjectiveWeights;
00938         
00943         SparseVector** m_mObjectiveCoefficients;
00944         
00948         bool m_bGetDenseObjectives;
00949         
00954         double** m_mmdDenseObjectiveCoefficients;
00955 
00959         bool m_bProcessConstraints;
00960         
00964         int m_iConstraintNumber;
00965         
00969         int m_iConstraintNumberNonlinear;
00970 
00974         std::string* m_msConstraintNames;
00975         
00979         double* m_mdConstraintLowerBounds;
00980 
00984         double* m_mdConstraintUpperBounds;
00985         
00990         double* m_mdConstraintConstants;
00991 
00996         char* m_mcConstraintTypes;
00997         
01001         bool m_bProcessLinearConstraintCoefficients;
01002         
01007         int m_iLinearConstraintCoefficientNumber;
01008 
01012         bool m_bColumnMajor;
01013         
01017         bool m_binitForAlgDiff;
01018 
01019 
01024         SparseMatrix* m_linearConstraintCoefficientsInColumnMajor;
01025 
01030         SparseMatrix* m_linearConstraintCoefficientsInRowMajor;
01031 
01032         
01036         bool m_bProcessQuadraticTerms;
01037 
01042         int m_iQuadraticTermNumber;
01043 
01047     double *m_mdConstraintFunctionValues;
01048     
01052     double *m_mdObjectiveFunctionValues;
01053 
01057         int m_iJacValueSize;
01058     
01062         int *m_miJacStart;
01063         
01067         int *m_miJacIndex;
01068         
01072         double *m_mdJacValue;
01073         
01074         
01079         int *m_miJacNumConTerms;
01080  
01084         SparseJacobianMatrix *m_sparseJacMatrix;
01085         
01090          int m_iHighestTaylorCoeffOrder;
01091         
01096          QuadraticTerms* m_quadraticTerms;
01097          
01100          bool m_bQTermsAdded;
01101          
01106         unsigned int m_iNumberOfNonlinearVariables;
01107          
01111         bool m_bProcessNonlinearExpressions;
01112         
01116         int m_iNonlinearExpressionNumber;
01117 
01122         int* m_miNonlinearExpressionIndexes;
01123         
01127         bool m_bProcessExpressionTrees;
01128         
01132         bool m_bProcessExpressionTreesMod;
01133         
01138         std::map<int, OSExpressionTree*> m_mapExpressionTrees ;
01139         
01140         
01141         
01142         std::map<int, int> m_mapOSADFunRangeIndex ;
01143         
01148         OSExpressionTree *m_LagrangianExpTree ;
01149         
01153         bool m_bLagrangianExpTreeCreated ;
01154         
01158         SparseHessianMatrix* m_LagrangianSparseHessian;
01159         
01164         bool m_bLagrangianSparseHessianCreated;
01165         
01169          std::map<int, int> m_mapAllNonlinearVariablesIndex;
01170 
01174         int *m_miNonLinearVarsReverseMap;
01175          
01180          bool m_bAllNonlinearVariablesIndex;
01181         
01188         std::map<int, OSExpressionTree*> m_mapExpressionTreesMod ;
01189         
01194          bool m_bOSADFunIsCreated;
01195         
01200         bool m_bCppADTapesBuilt;
01201         
01206         bool m_bCppADMustReTape;
01207         
01211         bool m_bDuplicateExpressionTreesMap;
01212         
01216         bool m_bNonLinearStructuresInitialized;
01217 
01221         bool m_bSparseJacobianCalculated;
01222         
01227         std::map<int, std::vector<OSnLNode*> > m_mapExpressionTreesInPostfix ;
01228          
01229         
01234          int m_iHighestOrderEvaluated;
01235          
01240         double **m_mmdObjGradient;
01241         
01242         //define the vectors    
01243 
01248         std::vector<double> m_vdX;
01249         
01254         std::vector<double> m_vdYval;
01255         
01261         std::vector<bool> m_vbLagHessNonz;
01262         
01267         std::vector<double> m_vdYjacval;
01268 
01273         std::vector<double> m_vdw;
01274         
01279         std::vector<double> m_vdLambda;
01280         
01281         
01286         std::vector<double> m_vdDomainUnitVec;
01287         
01292         std::vector<double> m_vdRangeUnitVec;
01293         
01294 
01298         bool m_bProcessTimeDomain;
01299 
01303         bool m_bProcessTimeStages;
01304 
01308         bool m_bProcessTimeInterval;
01309 
01313         bool m_bFiniteTimeStages;
01314 
01318         int m_iNumberOfTimeStages;
01319 
01323         std::string m_sTimeDomainFormat;
01324 
01329         std::string* m_msTimeDomainStageNames;
01330 
01335         int* m_miTimeDomainStageVariableNumber;
01336 
01341         int** m_mmiTimeDomainStageVarList;
01342 
01347         int* m_miTimeDomainStageConstraintNumber;
01348 
01353         int** m_mmiTimeDomainStageConList;
01354 
01359         int* m_miTimeDomainStageObjectiveNumber;
01360 
01365         int** m_mmiTimeDomainStageObjList;
01366 
01367 
01374         bool processVariables() ;
01375         
01382         bool processObjectives();
01383         
01384         
01391         bool processConstraints();
01392         
01393         
01400         bool processLinearConstraintCoefficients();
01401         
01402         
01403 public:
01404 
01409         std::string getInstanceName();
01410                 
01411 
01416         std::string getInstanceSource();
01417         
01418         
01424         std::string getInstanceDescription();
01425         
01431         int getVariableNumber();
01432         
01439         std::string* getVariableNames();
01440         
01448         //double* getVariableInitialValues();
01449         
01457         //std::string* getVariableInitialStringValues();
01458         
01470         char* getVariableTypes();
01471         
01476         int getNumberOfIntegerVariables();
01477         
01482         int getNumberOfBinaryVariables();
01483         
01488         int getNumberOfStringVariables();
01489         
01496         double* getVariableLowerBounds();
01497         
01504         double* getVariableUpperBounds();
01505         
01511         int getObjectiveNumber();
01512         
01513         
01520         std::string* getObjectiveNames();
01521 
01528         std::string* getObjectiveMaxOrMins();
01529         
01538         int* getObjectiveCoefficientNumbers();
01539         
01546         double* getObjectiveConstants();
01547         
01554         double* getObjectiveWeights();
01555         
01566         SparseVector** getObjectiveCoefficients();
01567         
01574         double** getDenseObjectiveCoefficients();
01575         
01581         int getConstraintNumber();
01582         
01589         std::string* getConstraintNames();
01590         
01597         double* getConstraintLowerBounds();
01598         
01605         double *getConstraintUpperBounds();
01606         
01619         char* getConstraintTypes();
01620         
01626         int getLinearConstraintCoefficientNumber();
01627         
01628 
01635         bool getLinearConstraintCoefficientMajor();
01636         
01637         
01644         SparseMatrix* getLinearConstraintCoefficientsInColumnMajor();
01645         
01652         SparseMatrix* getLinearConstraintCoefficientsInRowMajor();
01653         
01659         int getNumberOfQuadraticTerms();
01660         
01669         QuadraticTerms* getQuadraticTerms();
01670         
01678         int* getQuadraticRowIndexes();
01679         
01685         int getNumberOfQuadraticRowIndexes();
01686         
01692         int getNumberOfNonlinearExpressions();
01693         
01694         
01700         OSExpressionTree* getNonlinearExpressionTree(int rowIdx);
01701         
01708         OSExpressionTree* getNonlinearExpressionTreeMod(int rowIdx);
01709         
01716         std::vector<OSnLNode*> getNonlinearExpressionTreeInPostfix( int rowIdx); 
01717         
01725         std::vector<OSnLNode*> getNonlinearExpressionTreeModInPostfix( int rowIdx);  
01726         
01733         std::vector<OSnLNode*> getNonlinearExpressionTreeInPrefix( int rowIdx); 
01734         
01742         std::string getNonlinearExpressionTreeInInfix( int rowIdx);  
01743         
01744         
01749         std::string printModel( ); 
01750         
01751         
01759         std::string printModel( int rowIdx); 
01760         
01768         std::vector<OSnLNode*> getNonlinearExpressionTreeModInPrefix( int rowIdx);      
01769 
01770         
01774         int getNumberOfNonlinearObjectives();
01775 
01779         int getNumberOfNonlinearConstraints();
01780         
01784         std::map<int, OSExpressionTree* > getAllNonlinearExpressionTrees();
01785         
01786         
01790         std::map<int, OSExpressionTree* > getAllNonlinearExpressionTreesMod();
01791         
01797         int* getNonlinearExpressionTreeIndexes(); 
01798         
01799         
01805         int getNumberOfNonlinearExpressionTreeIndexes(); 
01806         
01807         
01814         int* getNonlinearExpressionTreeModIndexes(); 
01815         
01816         
01823         int getNumberOfNonlinearExpressionTreeModIndexes(); 
01824         
01825         
01831         std::string getTimeDomainFormat(); 
01832         
01838         int getTimeDomainStageNumber(); 
01839         
01845         std::string* getTimeDomainStageNames(); 
01846         
01852         int* getTimeDomainStageNumberOfVariables(); 
01853         
01859         int* getTimeDomainStageNumberOfConstraints(); 
01860         
01866         int* getTimeDomainStageNumberOfObjectives(); 
01867         
01873         int** getTimeDomainStageVarList(); 
01874         
01880         int** getTimeDomainStageConList(); 
01881         
01887         int** getTimeDomainStageObjList(); 
01888 
01894         double getTimeDomainIntervalStart(); 
01895 
01901         double getTimeDomainIntervalHorizon(); 
01902         
01903         
01904         
01905         // the set() methods
01906         
01907         
01914         bool setInstanceSource(std::string source);
01915         
01922         bool setInstanceDescription(std::string description);
01923         
01924                                         
01931         bool setInstanceName(std::string name);
01932         
01939         bool setVariableNumber(int number);
01940         
01958         bool addVariable(int index, std::string name, double lowerBound, double upperBound, char type);
01959         
01978         bool setVariables(int number, std::string* names, double* lowerBounds, 
01979                 double* upperBounds, char* types);
01980 
01987         bool setObjectiveNumber(int number);
01988         
02006         bool addObjective(int index, std::string name, std::string maxOrMin, double constant, double weight, SparseVector* objectiveCoefficients);
02007 
02023         bool setObjectives(int number, std::string *names, std::string *maxOrMins, double *constants, double *weights, SparseVector **objectitiveCoefficients);
02024                                         
02031         bool setConstraintNumber(int number);
02032 
02046 bool addConstraint(int index, std::string name, double lowerBound, double upperBound, double constant);
02047 
02059 bool setConstraints(int number, std::string* names, double* lowerBounds, double* upperBounds, double* constants);
02060 
02079 bool setLinearConstraintCoefficients(int numberOfValues, bool isColumnMajor, 
02080         double* values, int valuesBegin, int valuesEnd, 
02081         int* indexes, int indexesBegin, int indexesEnd,                         
02082         int* starts, int startsBegin, int startsEnd);
02083         
02099         bool setQuadraticTerms(int number, 
02100                 int* rowIndexes, int* varOneIndexes, int* varTwoIndexes, double* coefficients,
02101                 int begin, int end);
02102                 
02116         bool setQuadraticTermsInNonlinearExpressions(int number, 
02117                 int* rowIndexes, int* varOneIndexes, int* varTwoIndexes, double* coefficients);
02118                 
02119                 
02120                 
02121         // nonlinear API methods
02122         
02123         
02129         bool initializeNonLinearStructures( );
02130         
02144         double calculateFunctionValue(int idx, double* x, bool new_x);
02145         
02160         double *calculateAllConstraintFunctionValues(double* x, double *objLambda, double *conLambda,
02161                 bool new_x, int highestOrder);
02162                 
02176         double *calculateAllConstraintFunctionValues(double* x, bool new_x);
02177         
02193         double *calculateAllObjectiveFunctionValues(double* x, double *objLambda, double *conLambda,
02194                 bool new_x, int highestOrder);
02195         
02209         double *calculateAllObjectiveFunctionValues(double* x, bool new_x);     
02210                 
02211         
02226         SparseJacobianMatrix *calculateAllConstraintFunctionGradients(double* x, double *objLambda, 
02227                 double *conLambda, bool new_x, int highestOrder);               
02228                 
02229 
02245         SparseVector *calculateConstraintFunctionGradient(double* x, double *objLambda, double *conLambda,
02246                 int idx, bool new_x, int highestOrder);
02247                 
02261         SparseVector *calculateConstraintFunctionGradient(double* x, int idx, bool new_x );
02262         
02277         double **calculateAllObjectiveFunctionGradients(double* x, double *objLambda, double *conLambda,
02278                 bool new_x, int highestOrder);          
02279 
02295         double *calculateObjectiveFunctionGradient(double* x, double *objLambda, double *conLambda,
02296                 int objIdx, bool new_x, int highestOrder);
02297                 
02310         double *calculateObjectiveFunctionGradient(double* x, int objIdx, bool new_x );
02311 
02329         SparseHessianMatrix *calculateLagrangianHessian( double* x, double *objLambda, double *conLambda,
02330                 bool new_x, int highestOrder);
02331                 
02344         SparseHessianMatrix *calculateHessian( double* x, int idx, bool new_x);
02345         
02346                                 
02351         bool getSparseJacobianFromColumnMajor();
02352         
02357         bool getSparseJacobianFromRowMajor();
02358         
02363         OSExpressionTree* getLagrangianExpTree( );
02364 
02369         std::map<int, int> getAllNonlinearVariablesIndexMap( ); 
02370         
02375         SparseHessianMatrix* getLagrangianHessianSparsityPattern();
02376         
02381         bool addQTermsToExressionTree();
02382         
02387         SparseJacobianMatrix *getJacobianSparsityPattern();
02388         
02393         void duplicateExpressionTreesMap();
02394         
02395 #ifdef COIN_HAS_CPPAD    
02396 
02400         CppAD::ADFun<double> *Fad;
02401 #endif
02402 
02413         bool createOSADFun(std::vector<double> vdX );
02414         
02425         std::vector<double> forwardAD(int p, std::vector<double> vdX);
02426 
02437         std::vector<double> reverseAD(int p, std::vector<double> vdlambda);
02438          
02451         int  getADSparsityHessian();
02452          
02472         bool getIterateResults(double *x, double *objLambda, double *conLambda,  
02473                         bool new_x, int highestOrder);
02474                         
02475                         
02476                         
02489         bool getZeroOrderResults(double *x, double *objLambda, double *conLambda);
02490                         
02503         bool getFirstOrderResults(double *x, double *objLambda, double *conLambda );
02504                         
02517         bool getSecondOrderResults(double *x, double *objLambda, double *conLambda );
02518                         
02519 
02529         bool initForAlgDiff();
02530         
02540         bool initObjGradients();
02541 
02542 
02547         bool bUseExpTreeForFunEval;
02548         
02549         
02553         bool setTimeDomain(std::string format);
02554         
02558         bool setTimeDomainStages(int number, std::string *names);
02559 
02565         bool setTimeDomainStageVariablesOrdered(int numberOfStages, int *numberOfVariables, int *startIdx);
02566 
02572         bool setTimeDomainStageVariablesUnordered(int numberOfStages, int *numberOfVariables, int **varIndex);
02573 
02579         bool setTimeDomainStageConstraintsOrdered(int numberOfStages, int *numberOfConstraints, int *startIdx);
02580 
02586         bool setTimeDomainStageConstraintsUnordered(int numberOfStages, int *numberOfConstraints, int **conIndex);
02587 
02593         bool setTimeDomainStageObjectivesOrdered(int numberOfStages, int *numberOfObjectives, int *startIdx);
02594 
02600         bool setTimeDomainStageObjectivesUnordered(int numberOfStages, int *numberOfObjectives, int **varIndex);
02601 
02605         bool setTimeDomainInterval(double start, double horizon);
02606 
02607 
02608 }; //class OSInstance
02609 
02610 #endif
02611 

Generated on Thu Aug 5 03:02:58 2010 by  doxygen 1.4.7