- Main Page
- Namespaces
- Classes
- Files
- Related Pages

- File List
- File Members

# /home/coin/SVN-release/OS-2.3.5/OS/v2.0/OSInstance.h

Go to the documentation of this file.

    00001
    00033 #ifndef OSINSTANCE_H
    00034 #define OSINSTANCE_H
    00035 #include "OSParameters.h"
    00036 #include "OSDataStructures.h"
    00037 #include "OSnLNode.h"
    00038 #include "OSExpressionTree.h"
    00039 #include <string>
    00040 #include <map>
    00041
    00042
    00047 class InstanceHeader{
    00048 public:
    00049
    00051         InstanceHeader();
    00052
    00054         ~InstanceHeader();
    00055
    00057         std::string description;
    00058
    00060         std::string name;
    00061
    00063         std::string source;
    00064 };//class InstanceHeader
    00065
    00066
    00067
    00071 class Variable{
    00072 public:
    00074         Variable();
    00075
    00077         ~Variable();
    00078
    00082         double lb;
    00083
    00087         double ub;
    00088
    00092         //double init;
    00093
    00097         char type;
    00098
    00102         std::string name;
    00103
    00107         //std::string initString;
    00108 }; // class Variable
    00109
    00110
    00114 class Variables{
    00115 public:
    00116
    00118         Variables();
    00119
    00121         ~Variables();
    00122
    00124         int numberOfVariables;
    00125
    00127         Variable **var;
    00128 }; // class Variables
    00129
    00130
    00135 class ObjCoef{
    00136 public:
    00137
    00139         ObjCoef();
    00140
    00142         ~ObjCoef();
    00143
    00147         int idx;
    00148
    00152         double value;
    00153 };//class Coef
    00154
    00159 class Constraint{
    00160 public:
    00161
    00163         Constraint();
    00164
    00166         ~Constraint();
    00167
    00169         std::string name;
    00170
    00172         double constant;
    00173
    00175         double lb;
    00176
    00178         double ub;
    00179 };//class Constraint
    00180
    00181
    00186 class Constraints{
    00187 public:
    00188
    00190         Constraints();
    00191
    00193         ~Constraints();
    00194
    00198         int numberOfConstraints;
    00199
    00202         Constraint **con;
    00203 };//class Constraints
    00204
    00205
    00206
    00211 class Objective{
    00212 public:
    00213
    00215         Objective();
    00216
    00218         ~Objective();
    00219
    00221         std::string name;
    00222
    00226         std::string maxOrMin;
    00227
    00231         double constant;
    00232
    00236         double weight;
    00237
    00241         int numberOfObjCoef;
    00242
    00245         ObjCoef **coef;
    00246 };//class Objective
    00247
    00252 class Objectives{
    00253 public:
    00254
    00256         Objectives();
    00257
    00259         ~Objectives();
    00260
    00264         int numberOfObjectives;
    00265
    00268         Objective **obj;
    00269 };//class Objectives
    00270
    00282 class LinearConstraintCoefficients{
    00283 public:
    00284
    00286         LinearConstraintCoefficients();
    00287
    00289         ~LinearConstraintCoefficients();
    00290
    00294         int numberOfValues;
    00295
    00299         IntVector *start;
    00300
    00302         IntVector *rowIdx;
    00303
    00305         IntVector *colIdx;
    00306
    00308         DoubleVector *value;
    00315         int iNumberOfStartElements;
    00316 };//class LinearConstraintCoefficients
    00317
    00318
    00328 class QuadraticTerm{
    00329 public:
    00330
    00332         QuadraticTerm();
    00333
    00335         ~QuadraticTerm();
    00336
    00340         int idx;
    00341
    00345     int idxOne;
    00346
    00350     int idxTwo;
    00351
    00353     double coef;
    00354 }; // QuadraticTerm
    00355
    00356
    00357
    00358
    00364 class QuadraticCoefficients {
    00365 public:
    00366
    00368         QuadraticCoefficients();
    00369
    00371         ~QuadraticCoefficients();
    00372
    00376         int numberOfQuadraticTerms;
    00377
    00380     QuadraticTerm** qTerm;
    00381 }; // QuadraticCoefficients
    00382
    00383
    00388 class Nl{
    00389 public:
    00391         int idx;
    00392
    00398         bool m_bDeleteExpressionTree;
    00399
    00401         OSExpressionTree *osExpressionTree;
    00402
    00406         Nl();
    00407
    00411         ~Nl();
    00412 };//end Nl
    00413
    00418 class NonlinearExpressions {
    00419 public:
    00420
    00422         NonlinearExpressions();
    00423
    00425         ~NonlinearExpressions();
    00426
    00431         int numberOfNonlinearExpressions;
    00432
    00435     Nl **nl;
    00436 }; // NonlinearExpression
    00437
    00438
    00439
    00444 class TimeDomainStageVar {
    00445 public:
    00446
    00448         TimeDomainStageVar();
    00449
    00451         ~TimeDomainStageVar();
    00452
    00454         int idx;
    00455 }; // TimeDomainStageVar
    00456
    00461 class TimeDomainStageVariables {
    00462 public:
    00463
    00465         TimeDomainStageVariables();
    00466
    00468         ~TimeDomainStageVariables();
    00469
    00471         int numberOfVariables;
    00472
    00474         int startIdx;
    00475
    00477         TimeDomainStageVar** var;
    00478 }; // TimeDomainStageVariables
    00479
    00480
    00485 class TimeDomainStageCon {
    00486 public:
    00487
    00489         TimeDomainStageCon();
    00490
    00492         ~TimeDomainStageCon();
    00493
    00495         int idx;
    00496 }; // TimeDomainStageCon
    00497
    00502 class TimeDomainStageConstraints {
    00503 public:
    00504
    00506         TimeDomainStageConstraints();
    00507
    00509         ~TimeDomainStageConstraints();
    00510
    00512         int numberOfConstraints;
    00513
    00515         int startIdx;
    00516
    00518         TimeDomainStageCon** con;
    00519 }; // TimeDomainStageConstraints
    00520
    00521
    00526 class TimeDomainStageObj {
    00527 public:
    00528
    00530         TimeDomainStageObj();
    00531
    00533         ~TimeDomainStageObj();
    00534
    00536         int idx;
    00537 }; // TimeDomainStageObj
    00538
    00543 class TimeDomainStageObjectives {
    00544 public:
    00545
    00547         TimeDomainStageObjectives();
    00548
    00550         ~TimeDomainStageObjectives();
    00551
    00553         int numberOfObjectives;
    00554
    00556         int startIdx;
    00557
    00559         TimeDomainStageObj** obj;
    00560 }; // TimeDomainStageObjectives
    00561
    00562
    00567 class TimeDomainStage {
    00568 public:
    00569
    00571         TimeDomainStage();
    00572
    00574         ~TimeDomainStage();
    00575
    00579         std::string name;
    00580
    00582         TimeDomainStageVariables *variables;
    00583
    00585         TimeDomainStageConstraints *constraints;
    00586
    00588         TimeDomainStageObjectives *objectives;
    00589 }; // TimeDomainStage
    00590
    00595 class TimeDomainStages {
    00596 public:
    00597
    00599         TimeDomainStages();
    00600
    00602         ~TimeDomainStages();
    00603
    00607         int numberOfStages;
    00608
    00610     TimeDomainStage **stage;
    00611 }; // Stages
    00612
    00617 class TimeDomainInterval {
    00618 public:
    00619
    00621         TimeDomainInterval();
    00622
    00624         ~TimeDomainInterval();
    00625
    00629         double start;
    00630
    00634         double horizon;
    00635 }; // Interval
    00636
    00641 class TimeDomain {
    00642 public:
    00643
    00645         TimeDomain();
    00646
    00648         ~TimeDomain();
    00649
    00652         TimeDomainStages *stages;
    00653
    00656         TimeDomainInterval *interval;
    00657 }; // TimeDomain
    00658
    00675 class InstanceData{
    00676 public:
    00677
    00679         InstanceData();
    00680
    00682         ~InstanceData();
    00683
    00685         Variables *variables;
    00686
    00688         Objectives *objectives;
    00689
    00691         Constraints *constraints;
    00692
    00696         LinearConstraintCoefficients *linearConstraintCoefficients;
    00697
    00701         QuadraticCoefficients* quadraticCoefficients;
    00702
    00706         NonlinearExpressions* nonlinearExpressions;
    00707
    00711         TimeDomain* timeDomain;
    00712 }; // class InstanceData
    00713
    00714
    00741 class OSInstance {
    00742 public:
    00743
    00745         OSInstance();
    00746
    00748         ~OSInstance();
    00749
    00751         InstanceHeader *instanceHeader;
    00752
    00754         InstanceData *instanceData;
    00755
    00756 private:
    00760         std::string m_sInstanceName;
    00764         std::string m_sInstanceSource;
    00768         std::string m_sInstanceDescription;
    00769
    00773         bool m_bProcessVariables ;
    00774
    00778         int m_iVariableNumber;
    00779
    00783         int m_iNumberOfIntegerVariables;
    00784
    00788         int m_iNumberOfBinaryVariables;
    00789
    00793         int m_iNumberOfQuadraticRowIndexes;
    00794
    00798         bool m_bQuadraticRowIndexesProcessed;
    00799
    00803         int *m_miQuadRowIndexes;
    00804
    00808         int m_iNumberOfNonlinearExpressionTreeIndexes;
    00809
    00813         bool m_bNonlinearExpressionTreeIndexesProcessed;
    00814
    00819         int *m_miNonlinearExpressionTreeIndexes;
    00820
    00825         int m_iNumberOfNonlinearExpressionTreeModIndexes;
    00826
    00830         bool m_bNonlinearExpressionTreeModIndexesProcessed;
    00831
    00836         int *m_miNonlinearExpressionTreeModIndexes;
    00837
    00841         std::string* m_msVariableNames;
    00842
    00847         //double* m_mdVariableInitialValues ;
    00848
    00853         //std::string* m_msVariableInitialStringValues;
    00854
    00859         char* m_mcVariableTypes;
    00860
    00864         double* m_mdVariableLowerBounds;
    00865
    00869         double* m_mdVariableUpperBounds;
    00870
    00874         bool m_bProcessObjectives;
    00875
    00879         int m_iObjectiveNumber;
    00880
    00884         int m_iObjectiveNumberNonlinear;
    00885
    00889         std::string* m_msObjectiveNames;
    00890
    00894         std::string* m_msMaxOrMins;
    00895
    00899         int* m_miNumberOfObjCoef;
    00900
    00904         double* m_mdObjectiveConstants;
    00905
    00909         double* m_mdObjectiveWeights;
    00910
    00915         SparseVector** m_mObjectiveCoefficients;
    00916
    00920         bool m_bGetDenseObjectives;
    00921
    00926         double** m_mmdDenseObjectiveCoefficients;
    00927
    00931         bool m_bProcessConstraints;
    00932
    00936         int m_iConstraintNumber;
    00937
    00941         int m_iConstraintNumberNonlinear;
    00942
    00946         std::string* m_msConstraintNames;
    00947
    00951         double* m_mdConstraintLowerBounds;
    00952
    00956         double* m_mdConstraintUpperBounds;
    00957
    00962         double* m_mdConstraintConstants;
    00963
    00968         char* m_mcConstraintTypes;
    00969
    00973         bool m_bProcessLinearConstraintCoefficients;
    00974
    00979         int m_iLinearConstraintCoefficientNumber;
    00980
    00984         bool m_bColumnMajor;
    00985
    00989         bool m_binitForAlgDiff;
    00990
    00991
    00996         SparseMatrix* m_linearConstraintCoefficientsInColumnMajor ;
    00997
    01002         SparseMatrix* m_linearConstraintCoefficientsInRowMajor ;
    01003
    01004
    01008         bool m_bProcessQuadraticTerms ;
    01009
    01014         int m_iQuadraticTermNumber ;
    01015
    01019     double *m_mdConstraintFunctionValues;
    01020
    01024     double *m_mdObjectiveFunctionValues;
    01025
    01029         int m_iJacValueSize;
    01030
    01034         int *m_miJacStart;
    01035
    01039         int *m_miJacIndex;
    01040
    01044         double *m_mdJacValue;
    01045
    01046
    01051         int *m_miJacNumConTerms;
    01052
    01056         SparseJacobianMatrix *m_sparseJacMatrix;
    01057
    01062          int m_iHighestTaylorCoeffOrder;
    01063
    01068          QuadraticTerms* m_quadraticTerms;
    01069
    01072          bool m_bQTermsAdded;
    01073
    01078         unsigned int m_iNumberOfNonlinearVariables ;
    01079
    01083         bool m_bProcessNonlinearExpressions ;
    01084
    01088         int m_iNonlinearExpressionNumber;
    01089
    01094         int* m_miNonlinearExpressionIndexes ;
    01095
    01099         bool m_bProcessExpressionTrees;
    01100
    01104         bool m_bProcessExpressionTreesMod;
    01105
    01110         std::map<int, OSExpressionTree*> m_mapExpressionTrees ;
    01111
    01112
    01113
    01114         std::map<int, int> m_mapOSADFunRangeIndex ;
    01115
    01120         OSExpressionTree *m_LagrangianExpTree ;
    01121
    01125         bool m_bLagrangianExpTreeCreated ;
    01126
    01130         SparseHessianMatrix* m_LagrangianSparseHessian;
    01131
    01136         bool m_bLagrangianSparseHessianCreated;
    01137
    01141          std::map<int, int> m_mapAllNonlinearVariablesIndex;
    01142
    01146         int *m_miNonLinearVarsReverseMap;
    01147
    01152          bool m_bAllNonlinearVariablesIndex;
    01153
    01160         std::map<int, OSExpressionTree*> m_mapExpressionTreesMod ;
    01161
    01166          bool m_bOSADFunIsCreated;
    01167
    01172         bool m_bCppADTapesBuilt;
    01173
    01178         bool m_bCppADMustReTape;
    01179
    01183         bool m_bDuplicateExpressionTreesMap;
    01184
    01188         bool m_bNonLinearStructuresInitialized;
    01189
    01193         bool m_bSparseJacobianCalculated;
    01194
    01199         std::map<int, std::vector<OSnLNode*> > m_mapExpressionTreesInPostfix ;
    01200
    01201
    01206          int m_iHighestOrderEvaluated;
    01207
    01212         double **m_mmdObjGradient;
    01213
    01214         //define the vectors
    01215
    01220         std::vector<double> m_vdX;
    01221
    01226         std::vector<double> m_vdYval;
    01227
    01233         std::vector<bool> m_vbLagHessNonz;
    01234
    01239         std::vector<double> m_vdYjacval;
    01240
    01245         std::vector<double> m_vdw;
    01246
    01251         std::vector<double> m_vdLambda;
    01252
    01253
    01258         std::vector<double> m_vdDomainUnitVec;
    01259
    01264         std::vector<double> m_vdRangeUnitVec;
    01265
    01266
    01270         bool m_bProcessTimeDomain;
    01271
    01275         bool m_bProcessTimeStages;
    01276
    01280         bool m_bProcessTimeInterval;
    01281
    01285         bool m_bFiniteTimeStages;
    01286
    01290         int m_iNumberOfTimeStages;
    01291
    01295         std::string m_sTimeDomainFormat;
    01296
    01301         std::string* m_msTimeDomainStageNames;
    01302
    01307         int* m_miTimeDomainStageVariableNumber;
    01308
    01313         int** m_mmiTimeDomainStageVarList;
    01314
    01319         int* m_miTimeDomainStageConstraintNumber;
    01320
    01325         int** m_mmiTimeDomainStageConList;
    01326
    01331         int* m_miTimeDomainStageObjectiveNumber;
    01332
    01337         int** m_mmiTimeDomainStageObjList;
    01338
    01339
    01346         bool processVariables() ;
    01347
    01354         bool processObjectives();
    01355
    01356
    01363         bool processConstraints();
    01364
    01365
    01372         bool processLinearConstraintCoefficients();
    01373
    01374
    01375 public:
    01376
    01381         std::string getInstanceName();
    01382
    01383
    01388         std::string getInstanceSource();
    01389
    01390
    01396         std::string getInstanceDescription();
    01397
    01403         int getVariableNumber();
    01404
    01411         std::string* getVariableNames();
    01412
    01420         //double* getVariableInitialValues();
    01421
    01429         //std::string* getVariableInitialStringValues();
    01430
    01442         char* getVariableTypes();
    01443
    01448         int getNumberOfIntegerVariables();
    01449
    01454         int getNumberOfBinaryVariables();
    01455
    01462         double* getVariableLowerBounds();
    01463
    01470         double* getVariableUpperBounds();
    01471
    01477         int getObjectiveNumber();
    01478
    01479
    01486         std::string* getObjectiveNames();
    01487
    01494         std::string* getObjectiveMaxOrMins();
    01495
    01504         int* getObjectiveCoefficientNumbers();
    01505
    01512         double* getObjectiveConstants();
    01513
    01520         double* getObjectiveWeights();
    01521
    01532         SparseVector** getObjectiveCoefficients();
    01533
    01540         double** getDenseObjectiveCoefficients();
    01541
    01547         int getConstraintNumber();
    01548
    01555         std::string* getConstraintNames();
    01556
    01563         double* getConstraintLowerBounds();
    01564
    01571         double *getConstraintUpperBounds();
    01572
    01585         char* getConstraintTypes();
    01586
    01592         int getLinearConstraintCoefficientNumber();
    01593
    01594
    01601         bool getLinearConstraintCoefficientMajor();
    01602
    01603
    01610         SparseMatrix* getLinearConstraintCoefficientsInColumnMajor();
    01611
    01618         SparseMatrix* getLinearConstraintCoefficientsInRowMajor();
    01619
    01625         int getNumberOfQuadraticTerms();
    01626
    01635         QuadraticTerms* getQuadraticTerms();
    01636
    01644         int* getQuadraticRowIndexes();
    01645
    01651         int getNumberOfQuadraticRowIndexes();
    01652
    01658         int getNumberOfNonlinearExpressions();
    01659
    01660
    01666         OSExpressionTree* getNonlinearExpressionTree(int rowIdx);
    01667
    01674         OSExpressionTree* getNonlinearExpressionTreeMod(int rowIdx);
    01675
    01682         std::vector<OSnLNode*> getNonlinearExpressionTreeInPostfix( int rowIdx);
    01683
    01691         std::vector<OSnLNode*> getNonlinearExpressionTreeModInPostfix( int rowIdx);
    01692
    01699         std::vector<OSnLNode*> getNonlinearExpressionTreeInPrefix( int rowIdx);
    01700
    01708         std::vector<OSnLNode*> getNonlinearExpressionTreeModInPrefix( int rowIdx);
    01709
    01710
    01714         int getNumberOfNonlinearObjectives();
    01715
    01719         int getNumberOfNonlinearConstraints();
    01720
    01724         std::map<int, OSExpressionTree* > getAllNonlinearExpressionTrees();
    01725
    01726
    01730         std::map<int, OSExpressionTree* > getAllNonlinearExpressionTreesMod();
    01731
    01737         int* getNonlinearExpressionTreeIndexes();
    01738
    01739
    01745         int getNumberOfNonlinearExpressionTreeIndexes();
    01746
    01747
    01754         int* getNonlinearExpressionTreeModIndexes();
    01755
    01756
    01763         int getNumberOfNonlinearExpressionTreeModIndexes();
    01764
    01765
    01771         std::string getTimeDomainFormat();
    01772
    01778         int getTimeDomainStageNumber();
    01779
    01785         std::string* getTimeDomainStageNames();
    01786
    01792         int* getTimeDomainStageNumberOfVariables();
    01793
    01799         int* getTimeDomainStageNumberOfConstraints();
    01800
    01806         int* getTimeDomainStageNumberOfObjectives();
    01807
    01813         int** getTimeDomainStageVarList();
    01814
    01820         int** getTimeDomainStageConList();
    01821
    01827         int** getTimeDomainStageObjList();
    01828
    01834         double getTimeDomainIntervalStart();
    01835
    01841         double getTimeDomainIntervalHorizon();
    01842
    01843
    01844
    01845         // the set() methods
    01846
    01847
    01854         bool setInstanceSource(std::string source);
    01855
    01862         bool setInstanceDescription(std::string description);
    01863
    01864
    01871         bool setInstanceName(std::string name);
    01872
    01879         bool setVariableNumber(int number);
    01880
    01898         bool addVariable(int index, std::string name, double lowerBound, double upperBound, char type);
    01899
    01918         bool setVariables(int number, std::string* names, double* lowerBounds,
    01919                 double* upperBounds, char* types);
    01920
    01927         bool setObjectiveNumber(int number);
    01928
    01946         bool addObjective(int index, std::string name, std::string maxOrMin, double constant, double weight, SparseVector* objectiveCoefficients);
    01947
    01963         bool setObjectives(int number, std::string *names, std::string *maxOrMins, double *constants, double *weights, SparseVector **objectitiveCoefficients);
    01964
    01971         bool setConstraintNumber(int number);
    01972
    01986 bool addConstraint(int index, std::string name, double lowerBound, double upperBound, double constant);
    01987
    01999 bool setConstraints(int number, std::string* names, double* lowerBounds, double* upperBounds, double* constants);
    02000
    02019 bool setLinearConstraintCoefficients(int numberOfValues, bool isColumnMajor,
    02020         double* values, int valuesBegin, int valuesEnd,
    02021         int* indexes, int indexesBegin, int indexesEnd,
    02022         int* starts, int startsBegin, int startsEnd);
    02023
    02039         bool setQuadraticTerms(int number,
    02040                 int* rowIndexes, int* varOneIndexes, int* varTwoIndexes, double* coefficients,
    02041                 int begin, int end);
    02042
    02056         bool setQuadraticTermsInNonlinearExpressions(int number,
    02057                 int* rowIndexes, int* varOneIndexes, int* varTwoIndexes, double* coefficients);
    02058
    02059
    02060
    02061         // nonlinear API methods
    02062
    02063
    02069         bool initializeNonLinearStructures( );
    02070
    02084         double calculateFunctionValue(int idx, double* x, bool new_x);
    02085
    02100         double *calculateAllConstraintFunctionValues(double* x, double *objLambda, double *conLambda,
    02101                 bool new_x, int highestOrder);
    02102
    02116         double *calculateAllConstraintFunctionValues(double* x, bool new_x);
    02117
    02133         double *calculateAllObjectiveFunctionValues(double* x, double *objLambda, double *conLambda,
    02134                 bool new_x, int highestOrder);
    02135
    02149         double *calculateAllObjectiveFunctionValues(double* x, bool new_x);
    02150
    02151
    02166         SparseJacobianMatrix *calculateAllConstraintFunctionGradients(double* x, double *objLambda,
    02167                 double *conLambda, bool new_x, int highestOrder);
    02168
    02169
    02185         SparseVector *calculateConstraintFunctionGradient(double* x, double *objLambda, double *conLambda,
    02186                 int idx, bool new_x, int highestOrder);
    02187
    02201         SparseVector *calculateConstraintFunctionGradient(double* x, int idx, bool new_x );
    02202
    02217         double **calculateAllObjectiveFunctionGradients(double* x, double *objLambda, double *conLambda,
    02218                 bool new_x, int highestOrder);
    02219
    02235         double *calculateObjectiveFunctionGradient(double* x, double *objLambda, double *conLambda,
    02236                 int objIdx, bool new_x, int highestOrder);
    02237
    02250         double *calculateObjectiveFunctionGradient(double* x, int objIdx, bool new_x );
    02251
    02269         SparseHessianMatrix *calculateLagrangianHessian( double* x, double *objLambda, double *conLambda,
    02270                 bool new_x, int highestOrder);
    02271
    02284         SparseHessianMatrix *calculateHessian( double* x, int idx, bool new_x);
    02285
    02286
    02291         bool getSparseJacobianFromColumnMajor();
    02292
    02297         bool getSparseJacobianFromRowMajor();
    02298
    02303         OSExpressionTree* getLagrangianExpTree( );
    02304
    02309         std::map<int, int> getAllNonlinearVariablesIndexMap( );
    02310
    02315         SparseHessianMatrix* getLagrangianHessianSparsityPattern();
    02316
    02321         bool addQTermsToExressionTree();
    02322
    02327         SparseJacobianMatrix *getJacobianSparsityPattern();
    02328
    02333         void duplicateExpressionTreesMap();
    02334
    02335 #ifdef COIN_HAS_CPPAD
    02336
    02340         CppAD::ADFun<double> *Fad;
    02341 #endif
    02342
    02353         bool createOSADFun(std::vector<double> vdX );
    02354
    02365         std::vector<double> forwardAD(int p, std::vector<double> vdX);
    02366
    02377         std::vector<double> reverseAD(int p, std::vector<double> vdlambda);
    02378
    02391         int  getADSparsityHessian();
    02392
    02412         bool getIterateResults(double *x, double *objLambda, double *conLambda,
    02413                         bool new_x, int highestOrder);
    02414
    02415
    02416
    02429         bool getZeroOrderResults(double *x, double *objLambda, double *conLambda);
    02430
    02443         bool getFirstOrderResults(double *x, double *objLambda, double *conLambda );
    02444
    02457         bool getSecondOrderResults(double *x, double *objLambda, double *conLambda );
    02458
    02459
    02469         bool initForAlgDiff();
    02470
    02480         bool initObjGradients();
    02481
    02482
    02487         bool bUseExpTreeForFunEval;
    02488
    02489
    02493         bool setTimeDomain(std::string format);
    02494
    02498         bool setTimeDomainStages(int number, std::string *names);
    02499
    02505         bool setTimeDomainStageVariablesOrdered(int numberOfStages, int *numberOfVariables, int *startIdx);
    02506
    02512         bool setTimeDomainStageVariablesUnordered(int numberOfStages, int *numberOfVariables, int **varIndex);
    02513
    02519         bool setTimeDomainStageConstraintsOrdered(int numberOfStages, int *numberOfConstraints, int *startIdx);
    02520
    02526         bool setTimeDomainStageConstraintsUnordered(int numberOfStages, int *numberOfConstraints, int **conIndex);
    02527
    02533         bool setTimeDomainStageObjectivesOrdered(int numberOfStages, int *numberOfObjectives, int *startIdx);
    02534
    02540         bool setTimeDomainStageObjectivesUnordered(int numberOfStages, int *numberOfObjectives, int **varIndex);
    02541
    02545         bool setTimeDomainInterval(double start, double horizon);
    02546
    02547
    02548 }; //class OSInstance
    02549
    02550 #endif
    02551