OS  2.9.3
Public Member Functions | Public Attributes | List of all members
OSInstance Class Reference

The in-memory representation of an OSiL instance. More...

#include "OSInstance.h"

+ Collaboration diagram for OSInstance:

Public Member Functions

 OSInstance ()
 The OSInstance class constructor. More...
 
 ~OSInstance ()
 The OSInstance class destructor. More...
 
bool IsEqual (OSInstance *that)
 A function to check for the equality of two objects. More...
 
std::string getInstanceName ()
 Get instance name. More...
 
std::string getInstanceSource ()
 Get instance source. More...
 
std::string getInstanceDescription ()
 Get instance description. More...
 
std::string getInstanceCreator ()
 Get instance fileCreator. More...
 
std::string getInstanceLicence ()
 Get instance licence. More...
 
int getVariableNumber ()
 Get number of variables. More...
 
std::string * getVariableNames ()
 Get variable names. More...
 
char * getVariableTypes ()
 Get variable initial values. More...
 
int getNumberOfIntegerVariables ()
 getNumberOfIntegerVariables More...
 
int getNumberOfBinaryVariables ()
 getNumberOfBinaryVariables More...
 
int getNumberOfSemiContinuousVariables ()
 getNumberOfSemiContinuousVariables More...
 
int getNumberOfSemiIntegerVariables ()
 getNumberOfSemiIntegerVariables More...
 
int getNumberOfStringVariables ()
 getNumberOfStringVariables More...
 
double * getVariableLowerBounds ()
 Get variable lower bounds. More...
 
double * getVariableUpperBounds ()
 Get variable upper bounds. More...
 
int getObjectiveNumber ()
 Get number of objectives. More...
 
std::string * getObjectiveNames ()
 Get objective names. More...
 
std::string * getObjectiveMaxOrMins ()
 Get objective maxOrMins. More...
 
int * getObjectiveCoefficientNumbers ()
 Get objective coefficient number. More...
 
double * getObjectiveConstants ()
 Get objective constants. More...
 
double * getObjectiveWeights ()
 Get objective weights. More...
 
SparseVector ** getObjectiveCoefficients ()
 Get objective coefficients. More...
 
double ** getDenseObjectiveCoefficients ()
 getDenseObjectiveCoefficients. More...
 
int getConstraintNumber ()
 Get number of constraints. More...
 
std::string * getConstraintNames ()
 Get constraint names. More...
 
double * getConstraintLowerBounds ()
 Get constraint lower bounds. More...
 
double * getConstraintUpperBounds ()
 Get constraint upper bounds. More...
 
double * getConstraintConstants ()
 Get constraint constants. More...
 
char * getConstraintTypes ()
 Get constraint types. More...
 
int getLinearConstraintCoefficientNumber ()
 Get number of specified (usually nonzero) linear constraint coefficient values. More...
 
bool getLinearConstraintCoefficientMajor ()
 Get whether the constraint coefficients is in column major (true) or row major (false). More...
 
SparseMatrixgetLinearConstraintCoefficientsInColumnMajor ()
 Get linear constraint coefficients in column major. More...
 
SparseMatrixgetLinearConstraintCoefficientsInRowMajor ()
 Get linear constraint coefficients in row major. More...
 
int getNumberOfQuadraticTerms ()
 Get the number of specified (usually nonzero) qTerms in the quadratic coefficients. More...
 
QuadraticTermsgetQuadraticTerms ()
 Get all the quadratic terms in the instance. More...
 
int * getQuadraticRowIndexes ()
 Get the indexes of rows which have a quadratic term. More...
 
int getNumberOfQuadraticRowIndexes ()
 Get the number of rows which have a quadratic term. More...
 
int getNumberOfNonlinearExpressions ()
 Get number of nonlinear expressions. More...
 
Nl ** getNonlinearExpressions ()
 Get the pointers to the roots of all expression trees. More...
 
ScalarExpressionTreegetNonlinearExpressionTree (int rowIdx)
 Get the expression tree for a given row index. More...
 
ScalarExpressionTreegetNonlinearExpressionTreeMod (int rowIdx)
 Get the expression tree for a given row index for the modified expression trees (quadratic terms added) More...
 
std::vector< ExprNode * > getNonlinearExpressionTreeInPostfix (int rowIdx)
 Get the postfix tokens for a given row index. More...
 
std::vector< ExprNode * > getNonlinearExpressionTreeModInPostfix (int rowIdx)
 Get the postfix tokens for a given row index for the modified Expression Tree (quadratic terms added). More...
 
std::vector< ExprNode * > getNonlinearExpressionTreeInPrefix (int rowIdx)
 Get the prefix tokens for a given row index. More...
 
std::string getNonlinearExpressionTreeInInfix (int rowIdx)
 Get the infix representation for a given row (or objective function) index. More...
 
std::vector< ExprNode * > getNonlinearExpressionTreeModInPrefix (int rowIdx)
 Get the prefix tokens for a given row index for the modified Expression Tree (quadratic terms added). More...
 
int getNumberOfNonlinearObjectives ()
 
int getNumberOfNonlinearConstraints ()
 
std::map< int, ScalarExpressionTree * > getAllNonlinearExpressionTrees ()
 
std::map< int, ScalarExpressionTree * > getAllNonlinearExpressionTreesMod ()
 
int * getNonlinearExpressionTreeIndexes ()
 Get all the nonlinear expression tree indexes, i.e., indexes of rows (objectives or constraints) that contain nonlinear expressions. More...
 
int getNumberOfNonlinearExpressionTreeIndexes ()
 Get the number of unique nonlinear expression tree indexes. More...
 
int * getNonlinearExpressionTreeModIndexes ()
 Get all the nonlinear expression tree indexes, i.e., indexes of rows (objectives or constraints) that contain nonlinear expressions after modifying the expression tree to contain quadratic terms. More...
 
int getNumberOfNonlinearExpressionTreeModIndexes ()
 Get the number of unique nonlinear expression tree indexes after modifying the expression tree to contain quadratic terms. More...
 
MatrixExpression ** getMatrixExpressions ()
 Get the pointers to the roots of all matrix expression trees. More...
 
MatrixExpressionTreegetMatrixExpressionTree (int rowIdx)
 Get the matrix expression tree for a given row index. More...
 
std::vector< ExprNode * > getMatrixExpressionTreeInPostfix (int rowIdx)
 Get the postfix tokens for a given row index. More...
 
std::vector< ExprNode * > getMatrixExpressionTreeModInPostfix (int rowIdx)
 Get the postfix tokens for a given row index for the modified Expression Tree (quadratic terms added). More...
 
std::vector< ExprNode * > getMatrixExpressionTreeInPrefix (int rowIdx)
 Get the prefix tokens for a given row index. More...
 
std::string getMatrixExpressionTreeInInfix (int rowIdx)
 Get the infix representation for a given row (or objective function) index. More...
 
int getNumberOfMatrixVariables ()
 
int getNumberOfMatrixObjectives ()
 
int getNumberOfMatrixConstraints ()
 
std::map< int, MatrixExpressionTree * > getAllMatrixExpressionTrees ()
 
std::map< int, MatrixExpressionTree * > getAllMatrixExpressionTreesMod ()
 
int * getMatrixExpressionTreeIndexes ()
 Get all the matrix expression tree indexes, i.e. More...
 
int getNumberOfMatrixExpressionTreeIndexes ()
 Get the number of unique matrix expression tree indexes. More...
 
std::string getTimeDomainFormat ()
 Get the format of the time domain ("stages"/"interval") More...
 
int getTimeDomainStageNumber ()
 Get the number of stages that make up the time domain. More...
 
std::string * getTimeDomainStageNames ()
 Get the names of the stages (NULL or empty string ("") if a stage has not been given a name. More...
 
int * getTimeDomainStageNumberOfVariables ()
 Get the number of variables contained in each time stage. More...
 
int * getTimeDomainStageNumberOfConstraints ()
 Get the number of constraints contained in each time stage. More...
 
int * getTimeDomainStageNumberOfObjectives ()
 Get the number of objectives contained in each time stage. More...
 
int ** getTimeDomainStageVarList ()
 Get the list of variables in each stage. More...
 
int ** getTimeDomainStageConList ()
 Get the list of constraints in each stage. More...
 
int ** getTimeDomainStageObjList ()
 Get the list of objectives in each stage. More...
 
double getTimeDomainIntervalStart ()
 Get the start for the time domain interval. More...
 
double getTimeDomainIntervalHorizon ()
 Get the horizon for the time domain interval. More...
 
bool setInstanceName (std::string name)
 set the instance name. More...
 
bool setInstanceSource (std::string source)
 set the instance source. More...
 
bool setInstanceDescription (std::string description)
 set the instance description. More...
 
bool setInstanceCreator (std::string fileCreator)
 set the instance creator. More...
 
bool setInstanceLicence (std::string licence)
 set the instance licence. More...
 
bool setVariableNumber (int number)
 set the number of variables. More...
 
bool addVariable (int index, std::string name, double lowerBound, double upperBound, char type)
 add a variable. More...
 
bool setVariables (int number, std::string *names, double *lowerBounds, double *upperBounds, char *types)
 set all the variable related elements. More...
 
bool setObjectiveNumber (int number)
 set the number of objectives. More...
 
bool addObjective (int index, std::string name, std::string maxOrMin, double constant, double weight, SparseVector *objectiveCoefficients)
 add an objective. More...
 
bool setObjectives (int number, std::string *names, std::string *maxOrMins, double *constants, double *weights, SparseVector **objectitiveCoefficients)
 set all the objectives related elements. More...
 
bool setConstraintNumber (int number)
 set the number of constraints. More...
 
bool addConstraint (int index, std::string name, double lowerBound, double upperBound, double constant)
 add a constraint. More...
 
bool setConstraints (int number, std::string *names, double *lowerBounds, double *upperBounds, double *constants)
 set all the constraint related elements. More...
 
bool setLinearConstraintCoefficients (int numberOfValues, bool isColumnMajor, double *values, int valuesBegin, int valuesEnd, int *indexes, int indexesBegin, int indexesEnd, int *starts, int startsBegin, int startsEnd)
 set linear constraint coefficients More...
 
bool copyLinearConstraintCoefficients (int numberOfValues, bool isColumnMajor, double *values, int valuesBegin, int valuesEnd, int *indexes, int indexesBegin, int indexesEnd, int *starts, int startsBegin, int startsEnd)
 copy linear constraint coefficients: perform a deep copy of the sparse matrix More...
 
bool setNumberOfQuadraticTerms (int nq)
 set the number of quadratic terms More...
 
bool setQuadraticCoefficients (int number, int *rowIndexes, int *varOneIndexes, int *varTwoIndexes, double *coefficients, int begin, int end)
 set quadratic coefficients into the QuadraticCoefficients->qTerm data structure More...
 
bool setQuadraticTermsInNonlinearExpressions (int number, int *rowIndexes, int *varOneIndexes, int *varTwoIndexes, double *coefficients)
 set quadratic terms in nonlinearExpressions More...
 
bool setNonlinearExpressions (int nexpr, Nl **root)
 set nonlinear expressions More...
 
bool setMatrixNumber (int number)
 set the number of matrices More...
 
bool addMatrix (int index, std::string name, int numberOfRows, int numberOfColumns, ENUM_MATRIX_SYMMETRY symmetry, ENUM_MATRIX_TYPE matrixType, unsigned int inumberOfChildren, MatrixNode **m_mChildren)
 add a matrix. More...
 
bool setConeNumber (int number)
 set the number of cones More...
 
bool addCone (int index, int numberOfRows, int numberOfColumns, ENUM_CONE_TYPE coneType, std::string name, int numberOfOtherIndexes=0, int *otherIndexes=NULL)
 add a cone. More...
 
bool addCone (int index, int numberOfRows, int numberOfColumns, ENUM_CONE_TYPE coneType, std::string name, int numberOfComponents, int *components, int numberOfOtherIndexes=0, int *otherIndexes=NULL)
 add a cone. More...
 
bool addCone (int index, int numberOfRows, int numberOfColumns, ENUM_CONE_TYPE coneType, std::string name, int referenceIdx, int numberOfOtherIndexes=0, int *otherIndexes=NULL)
 add a cone. More...
 
bool addCone (int index, int numberOfRows, int numberOfColumns, ENUM_CONE_TYPE coneType, std::string name, std::string semidefiniteness, int numberOfOtherIndexes=0, int *otherIndexes=NULL)
 add a cone. More...
 
bool addCone (int index, int numberOfRows, int numberOfColumns, ENUM_CONE_TYPE coneType, std::string name, int distortionMatrixIdx, double normFactor, int axisDirection, int numberOfOtherIndexes=0, int *otherIndexes=NULL)
 add a cone. More...
 
bool addCone (int index, int numberOfRows, int numberOfColumns, ENUM_CONE_TYPE coneType, std::string name, int distortionMatrixIdx, double normFactor, int firstAxisDirection, int secondAxisDirection, int numberOfOtherIndexes=0, int *otherIndexes=NULL)
 add a cone. More...
 
bool addCone (int index, int numberOfRows, int numberOfColumns, ENUM_CONE_TYPE coneType, std::string name, int distortionMatrixIdx, double normFactor, int axisDirection, double pNorm, int numberOfOtherIndexes=0, int *otherIndexes=NULL)
 add a cone. More...
 
bool addCone (int index, int numberOfRows, int numberOfColumns, ENUM_CONE_TYPE coneType, std::string name, int maxDegree, int numberOfUB, double *ub, int numberOfLB, double *lb, int numberOfOtherIndexes=0, int *otherIndexes=NULL)
 add a cone. More...
 
std::string printModel ()
 Print the infix representation of the problem. More...
 
std::string printModel (int rowIdx)
 Print the infix representation of the row (which could be an an objective function row) indexed by rowIdx. More...
 
bool initializeNonLinearStructures ()
 Initialize the data structures for the nonlinear API. More...
 
double calculateFunctionValue (int idx, double *x, bool new_x)
 Calculate the function value for function (constraint or objective) indexed by idx. More...
 
double * calculateAllConstraintFunctionValues (double *x, double *objLambda, double *conLambda, bool new_x, int highestOrder)
 Calculate all of the constraint function values. More...
 
double * calculateAllConstraintFunctionValues (double *x, bool new_x)
 Calculate all of the constraint function values, we are overloading this function and this version of the method will not use any AD and will evaluate function values from the OS Expression Tree. More...
 
double * calculateAllObjectiveFunctionValues (double *x, double *objLambda, double *conLambda, bool new_x, int highestOrder)
 Calculate all of the objective function values. More...
 
double * calculateAllObjectiveFunctionValues (double *x, bool new_x)
 Calculate all of the objective function values, we are overloading this function and this version of the method will not use any AD and will evaluate function values from the OS Expression Tree. More...
 
SparseJacobianMatrixcalculateAllConstraintFunctionGradients (double *x, double *objLambda, double *conLambda, bool new_x, int highestOrder)
 Calculate the gradient of all constraint functions. More...
 
SparseVectorcalculateConstraintFunctionGradient (double *x, double *objLambda, double *conLambda, int idx, bool new_x, int highestOrder)
 Calculate the gradient of the constraint function indexed by idx. More...
 
SparseVectorcalculateConstraintFunctionGradient (double *x, int idx, bool new_x)
 Calculate the gradient of the constraint function indexed by idx this function is overloaded. More...
 
double ** calculateAllObjectiveFunctionGradients (double *x, double *objLambda, double *conLambda, bool new_x, int highestOrder)
 Calculate the gradient of all objective functions. More...
 
double * calculateObjectiveFunctionGradient (double *x, double *objLambda, double *conLambda, int objIdx, bool new_x, int highestOrder)
 Calculate the gradient of the objective function indexed by objIdx. More...
 
double * calculateObjectiveFunctionGradient (double *x, int objIdx, bool new_x)
 Calculate the gradient of the objective function indexed by objIdx this function is overloaded. More...
 
SparseHessianMatrixcalculateLagrangianHessian (double *x, double *objLambda, double *conLambda, bool new_x, int highestOrder)
 Calculate the Hessian of the Lagrangian Expression Tree This method will build the CppAD expression tree for only the first iteration Use this method on if the value of x does not affect the operations sequence. More...
 
SparseHessianMatrixcalculateHessian (double *x, int idx, bool new_x)
 Calculate the Hessian of a constraint or objective function. More...
 
bool getSparseJacobianFromColumnMajor ()
 
bool getSparseJacobianFromRowMajor ()
 
ScalarExpressionTreegetLagrangianExpTree ()
 
std::map< int, int > getAllNonlinearVariablesIndexMap ()
 
SparseHessianMatrixgetLagrangianHessianSparsityPattern ()
 
bool addQTermsToExressionTree ()
 
bool addQTermsToExpressionTree ()
 This method adds quadratic terms into the array of expression trees. More...
 
SparseJacobianMatrixgetJacobianSparsityPattern ()
 
void duplicateExpressionTreesMap ()
 duplicate the map of expression trees. More...
 
bool createOSADFun (std::vector< double > vdX)
 Create the a CppAD Function object: this is a function where the domain is the set of variables for the problem and the range is the objective function plus constraints. More...
 
std::vector< double > forwardAD (int p, std::vector< double > vdX)
 Perform an AD forward sweep. More...
 
std::vector< double > reverseAD (int p, std::vector< double > vdlambda)
 Perform an AD reverse sweep. More...
 
int getADSparsityHessian ()
 end revised AD code More...
 
bool getIterateResults (double *x, double *objLambda, double *conLambda, bool new_x, int highestOrder)
 end revised AD code More...
 
bool getZeroOrderResults (double *x, double *objLambda, double *conLambda)
 Calculate function values. More...
 
bool getFirstOrderResults (double *x, double *objLambda, double *conLambda)
 Calculate first derivatives. More...
 
bool getSecondOrderResults (double *x, double *objLambda, double *conLambda)
 Calculate second derivatives. More...
 
bool initForAlgDiff ()
 This should be called by nonlinear solvers using callback functions. More...
 
bool initObjGradients ()
 This should be called by initForAlgDiff() More...
 
bool setTimeDomain (std::string format)
 This sets the format of the time domain ("stages"/"interval"/"none") More...
 
bool setTimeDomainStages (int number, std::string *names)
 This sets the number (and optionally names) of the time stages. More...
 
bool setTimeDomainStageVariablesOrdered (int numberOfStages, int *numberOfVariables, int *startIdx)
 This sets the variables associated with each time domain stage in temporal order. More...
 
bool setTimeDomainStageVariablesUnordered (int numberOfStages, int *numberOfVariables, int **varIndex)
 This sets the variables associated with each time domain stage in srbitrary order. More...
 
bool setTimeDomainStageConstraintsOrdered (int numberOfStages, int *numberOfConstraints, int *startIdx)
 This sets the constraints associated with each time domain stage in temporal order. More...
 
bool setTimeDomainStageConstraintsUnordered (int numberOfStages, int *numberOfConstraints, int **conIndex)
 This sets the constraints associated with each time domain stage in srbitrary order. More...
 
bool setTimeDomainStageObjectivesOrdered (int numberOfStages, int *numberOfObjectives, int *startIdx)
 This sets the objectives associated with each time domain stage in temporal order. More...
 
bool setTimeDomainStageObjectivesUnordered (int numberOfStages, int *numberOfObjectives, int **varIndex)
 This sets the objectives associated with each time domain stage in arbitrary order. More...
 
bool setTimeDomainInterval (double start, double horizon)
 This sets the start and end of the time interval. More...
 

Public Attributes

GeneralFileHeaderinstanceHeader
 the instanceHeader is implemented as a general file header object to allow sharing of classes between schemas More...
 
InstanceDatainstanceData
 A pointer to an InstanceData object. More...
 
bool bVariablesModified
 bVariablesModified is true if the variables data has been modified. More...
 
bool bObjectivesModified
 bObjectivesModified is true if the objective function data has been modified. More...
 
bool bConstraintsModified
 bConstraintsModified is true if the constraints data has been modified. More...
 
bool bAMatrixModified
 bAMatrixModified is true if the A matrix data has been modified. More...
 
bool bUseExpTreeForFunEval
 bUseExpTreeForFunEval is set to true if you wish to use the OS Expression Tree for function evaluations instead of AD – false by default. More...
 

Detailed Description

The in-memory representation of an OSiL instance.

Remarks

1. Elements become objects of class type (the ComplexType is the class)

2. The attributes, children of the element, and text correspond to members of the class. (Note text does not have a name and becomes .value)

3. Model groups such as choice and sequence and all correspond to arrays

  1. anything specific to XML such as base64, multi, incr do not go into classes
  2. The root OSnLNode of each <nl> element is called ExpressionTree
  3. Root is not called osil it is called osinstance

The OSInstance class is composed of two objects: the header object instanceHeader and the data object instanceData

Definition at line 2241 of file OSInstance.h.

Constructor & Destructor Documentation

OSInstance::OSInstance ( )

The OSInstance class constructor.

OSInstance::~OSInstance ( )

The OSInstance class destructor.

Member Function Documentation

bool OSInstance::IsEqual ( OSInstance that)

A function to check for the equality of two objects.

std::string OSInstance::getInstanceName ( )

Get instance name.

Returns
instance name. Null or empty std::string ("") if there is no instance name.
std::string OSInstance::getInstanceSource ( )

Get instance source.

Returns
instance source. Null or empty std::string ("") if there is no instance source.
std::string OSInstance::getInstanceDescription ( )

Get instance description.

Returns
instance description. Null or empty std::string ("") if there is no instance description.
std::string OSInstance::getInstanceCreator ( )

Get instance fileCreator.

Returns
instance fileCreator. Null or empty std::string ("") if there is no instance file creator.
std::string OSInstance::getInstanceLicence ( )

Get instance licence.

Returns
instance licence. Null or empty std::string ("") if there is no instance licence.
int OSInstance::getVariableNumber ( )

Get number of variables.

Returns
number of variables.
std::string* OSInstance::getVariableNames ( )

Get variable names.

Returns
a std::string array of variable names, null if no variable names.
Exceptions
Exceptionif the elements in variables are logically inconsistent.
char* OSInstance::getVariableTypes ( )

Get variable initial values.

Returns
a double array of variable initial values, null if no initial variable values.
Exceptions
Exceptionif the elements in variables are logically inconsistent. – now deprecated Get variable initial std::string values.
Returns
a std::string array of variable initial values, null if no initial variable std::string values.
Exceptions
Exceptionif the elements in variables are logically inconsistent. – now deprecated Get variable types.
  • C for Continuous
  • B for Binary
  • I for Integer
  • S for String
Returns
a char array of variable types.
Exceptions
Exceptionif the elements in variables are logically inconsistent.
int OSInstance::getNumberOfIntegerVariables ( )

getNumberOfIntegerVariables

Returns
an integer which is the number of I variables.
int OSInstance::getNumberOfBinaryVariables ( )

getNumberOfBinaryVariables

Returns
an integer which is the number of B variables.
int OSInstance::getNumberOfSemiContinuousVariables ( )

getNumberOfSemiContinuousVariables

Returns
an integer which is the number of D variables.
int OSInstance::getNumberOfSemiIntegerVariables ( )

getNumberOfSemiIntegerVariables

Returns
an integer which is the number of J variables.
int OSInstance::getNumberOfStringVariables ( )

getNumberOfStringVariables

Returns
an integer which is the number of S variables.
double* OSInstance::getVariableLowerBounds ( )

Get variable lower bounds.

Returns
a double array of variable lower bounds.
Exceptions
Exceptionif the elements in variables are logically inconsistent.
double* OSInstance::getVariableUpperBounds ( )

Get variable upper bounds.

Returns
a double array of variable upper bounds.
Exceptions
Exceptionif the elements in variables are logically inconsistent.
int OSInstance::getObjectiveNumber ( )

Get number of objectives.

Returns
number of objectives.
std::string* OSInstance::getObjectiveNames ( )

Get objective names.

Returns
a std::string array of objective names. Null if no objective names.
Exceptions
Exceptionif the elements in objectives are logically inconsistent.
std::string* OSInstance::getObjectiveMaxOrMins ( )

Get objective maxOrMins.

One maxOrMin for each objective.

Returns
a std::string array of objective maxOrMins ("max" or "min"), null if no objectives.
Exceptions
Exceptionif the elements in objectives are logically inconsistent.
int* OSInstance::getObjectiveCoefficientNumbers ( )

Get objective coefficient number.

One number for each objective.

Returns
an integer array of size of which is equal to number of objectives, each element of the array is the number of nonzero coefficients in that objective function, null if no objectives.
Exceptions
Exceptionif the elements in objectives are logically inconsistent.
double* OSInstance::getObjectiveConstants ( )

Get objective constants.

One constant for each objective.

Returns
a double array of objective constants, null if no objectives.
Exceptions
Exceptionif the elements in objectives are logically inconsistent.
double* OSInstance::getObjectiveWeights ( )

Get objective weights.

One weight for each objective.

Returns
a double array of objective weights, null if no objectives.
Exceptions
Exceptionif the elements in objectives are logically inconsistent.
SparseVector** OSInstance::getObjectiveCoefficients ( )

Get objective coefficients.

One set of objective coefficients for each objective.

See also
org.optimizationservices.oscommon.datastructure.SparseVector
Returns
an array of objective coefficients, null if no objectives. Each member of the array is of type ObjectiveCoefficients. The ObjectiveCoefficients class contains two arrays: variableIndexes is an integer array and values is a double array of coefficient values.
Exceptions
Exceptionif the elements in objectives are logically inconsistent.
double** OSInstance::getDenseObjectiveCoefficients ( )

getDenseObjectiveCoefficients.

Returns
an vector of pointers, each pointer points to a dense vector of ObjectiveCoefficients.
int OSInstance::getConstraintNumber ( )

Get number of constraints.

Returns
number of constraints.
std::string* OSInstance::getConstraintNames ( )

Get constraint names.

Returns
a std::string array of constraint names, null if no constraint names.
Exceptions
Exceptionif the elements in constraints are logically inconsistent.
double* OSInstance::getConstraintLowerBounds ( )

Get constraint lower bounds.

Returns
a double array of constraint lower bounds, null if no constraints.
Exceptions
Exceptionif the elements in constraints are logically inconsistent.
double* OSInstance::getConstraintUpperBounds ( )

Get constraint upper bounds.

Returns
a double array of constraint upper bounds, null if no constraints.
Exceptions
Exceptionif the elements in constraints are logically inconsistent.
double* OSInstance::getConstraintConstants ( )

Get constraint constants.

Returns
a double array of constraint constants, null if no constraints.
Exceptions
Exceptionif the elements in constraints are logically inconsistent.
char* OSInstance::getConstraintTypes ( )

Get constraint types.

The contraint types are not part of the OSiL schema, but they are used in solver interfaces such as OSLindoSolver.cpp.

  • R for range constraint lb <= constraint <= ub
  • L for less than constraint -INF <= con <= ub or con <= ub
  • G for greater than constraint lb <= con <= INF or con >= lb
  • E for equal to constraint lb <= con <= ub where lb = ub or con = lb (or con = ub)
  • U for unconstrained constraint -INF <= con <= INF
Returns
a char array of constraint types, null if no constraints.
Exceptions
Exceptionif the elements in constraints are logically inconsistent.
int OSInstance::getLinearConstraintCoefficientNumber ( )

Get number of specified (usually nonzero) linear constraint coefficient values.

Returns
number of specified (usually nonzero) linear constraint coefficient values.
bool OSInstance::getLinearConstraintCoefficientMajor ( )

Get whether the constraint coefficients is in column major (true) or row major (false).

Returns
whether the constraint coefficients is in column major (true) or row major (false).
Exceptions
Exceptionif the elements in linear constraint coefficients are logically inconsistent.
SparseMatrix* OSInstance::getLinearConstraintCoefficientsInColumnMajor ( )

Get linear constraint coefficients in column major.

Returns
a sparse matrix representation of linear constraint coefficients in column major, null if no linear constraint coefficients.
Exceptions
Exceptionif the elements in linear constraint coefficients are logically inconsistent.
See also
org.optimizationservices.oscommon.datastructure.SparseMatrix
SparseMatrix* OSInstance::getLinearConstraintCoefficientsInRowMajor ( )

Get linear constraint coefficients in row major.

Returns
a sparse matrix representation of linear constraint coefficients in row major, null if no linear constraint coefficients.
Exceptions
Exceptionif the elements in linear constraint coefficients are logically inconsistent.
See also
org.optimizationservices.oscommon.datastructure.SparseMatrix
int OSInstance::getNumberOfQuadraticTerms ( )

Get the number of specified (usually nonzero) qTerms in the quadratic coefficients.

Returns
qTerm number.
QuadraticTerms* OSInstance::getQuadraticTerms ( )

Get all the quadratic terms in the instance.

Returns
the QuadraticTerms data structure for all quadratic terms in the instance, null if no quadratic terms. The QuadraticTerms contains four arrays: rowIndexes, varOneIndexes, varTwoIndexes, coefficients.
Exceptions
Exceptionif the elements in quadratic coefficients are logically inconsistent.
See also
org.optimizationservices.oscommon.datastructure.QuadraticTerms
int* OSInstance::getQuadraticRowIndexes ( )

Get the indexes of rows which have a quadratic term.

Returns
an integer pointer to the row indexes of rows with quadratic terms, objectives functions have index < 0 NULL if there are no quadratic terms.
int OSInstance::getNumberOfQuadraticRowIndexes ( )

Get the number of rows which have a quadratic term.

Returns
an integer which is the number of distinct rows (including obj) with quadratic terms,
int OSInstance::getNumberOfNonlinearExpressions ( )

Get number of nonlinear expressions.

Returns
the number of nonlinear expressions.
Nl** OSInstance::getNonlinearExpressions ( )

Get the pointers to the roots of all expression trees.

Returns
an array of pointers to Nl objects
ScalarExpressionTree* OSInstance::getNonlinearExpressionTree ( int  rowIdx)

Get the expression tree for a given row index.

Returns
an expression tree
ScalarExpressionTree* OSInstance::getNonlinearExpressionTreeMod ( int  rowIdx)

Get the expression tree for a given row index for the modified expression trees (quadratic terms added)

Returns
an expression tree
std::vector<ExprNode*> OSInstance::getNonlinearExpressionTreeInPostfix ( int  rowIdx)

Get the postfix tokens for a given row index.

Returns
a vector of pointers to ExprNodes in postfix, if rowIdx does not index a row with a nonlinear term throw an exception
Remarks
The root node of the expression tree is of type OSnLNode
std::vector<ExprNode*> OSInstance::getNonlinearExpressionTreeModInPostfix ( int  rowIdx)

Get the postfix tokens for a given row index for the modified Expression Tree (quadratic terms added).

Returns
a vector of pointers to ExprNodes in postfix, if rowIdx does not index a row with a nonlinear term throw an exception
std::vector<ExprNode*> OSInstance::getNonlinearExpressionTreeInPrefix ( int  rowIdx)

Get the prefix tokens for a given row index.

Returns
a vector of pointers to ExprNodes in prefix, if rowIdx does not index a row with a nonlinear term throw an exception
std::string OSInstance::getNonlinearExpressionTreeInInfix ( int  rowIdx)

Get the infix representation for a given row (or objective function) index.

Parameters
rowIdxis the index of the row we want to express in infix.
Returns
a string representation of the tree, if rowIdx does not index a row with a nonlinear term throw an exception
std::vector<ExprNode*> OSInstance::getNonlinearExpressionTreeModInPrefix ( int  rowIdx)

Get the prefix tokens for a given row index for the modified Expression Tree (quadratic terms added).

Returns
a vector of pointers to ExprNodes in prefix, if rowIdx does not index a row with a nonlinear term throw an exception
int OSInstance::getNumberOfNonlinearObjectives ( )
Returns
the number of Objectives with a nonlinear term
int OSInstance::getNumberOfNonlinearConstraints ( )
Returns
the number of Constraints with a nonlinear term
std::map<int, ScalarExpressionTree* > OSInstance::getAllNonlinearExpressionTrees ( )
Returns
a map: the key is the row index and the value is the corresponding expression tree
Remarks
If there are several expressions in a single row, this method combines them by adding OSnLPlus nodes
std::map<int, ScalarExpressionTree* > OSInstance::getAllNonlinearExpressionTreesMod ( )
Returns
a map: the key is the row index and the value is the corresponding expression tree
int* OSInstance::getNonlinearExpressionTreeIndexes ( )

Get all the nonlinear expression tree indexes, i.e., indexes of rows (objectives or constraints) that contain nonlinear expressions.

Returns
a pointer to an integer array of nonlinear expression tree indexes.
int OSInstance::getNumberOfNonlinearExpressionTreeIndexes ( )

Get the number of unique nonlinear expression tree indexes.

Returns
the number of unique nonlinear expression tree indexes.
int* OSInstance::getNonlinearExpressionTreeModIndexes ( )

Get all the nonlinear expression tree indexes, i.e., indexes of rows (objectives or constraints) that contain nonlinear expressions after modifying the expression tree to contain quadratic terms.

Returns
a pointer to an integer array of nonlinear expression tree indexes (including quadratic terms).
int OSInstance::getNumberOfNonlinearExpressionTreeModIndexes ( )

Get the number of unique nonlinear expression tree indexes after modifying the expression tree to contain quadratic terms.

Returns
the number of unique nonlinear expression tree indexes (including quadratic terms).
MatrixExpression** OSInstance::getMatrixExpressions ( )

Get the pointers to the roots of all matrix expression trees.

Returns
an array of pointers to MatrixExpression objects
MatrixExpressionTree* OSInstance::getMatrixExpressionTree ( int  rowIdx)

Get the matrix expression tree for a given row index.

Returns
a matrix expression tree
std::vector<ExprNode*> OSInstance::getMatrixExpressionTreeInPostfix ( int  rowIdx)

Get the postfix tokens for a given row index.

Returns
a vector of pointers to OSnLNodes in postfix, if rowIdx does not index a row with a nonlinear term throw an exception
std::vector<ExprNode*> OSInstance::getMatrixExpressionTreeModInPostfix ( int  rowIdx)

Get the postfix tokens for a given row index for the modified Expression Tree (quadratic terms added).

Returns
a vector of pointers to OSnLNodes in postfix, if rowIdx does not index a row with a nonlinear term throw an exception
std::vector<ExprNode*> OSInstance::getMatrixExpressionTreeInPrefix ( int  rowIdx)

Get the prefix tokens for a given row index.

Returns
a vector of pointers to OSnLNodes in prefix, if rowIdx does not index a row with a nonlinear term throw an exception
std::string OSInstance::getMatrixExpressionTreeInInfix ( int  rowIdx)

Get the infix representation for a given row (or objective function) index.

Parameters
rowIdxis the index of the row we want to express in infix.
Returns
a string representation of the tree, if rowIdx does not index a row with a nonlinear term throw an exception
int OSInstance::getNumberOfMatrixVariables ( )
Returns
the number of matrix variables
int OSInstance::getNumberOfMatrixObjectives ( )
Returns
the number of matrix objectives
int OSInstance::getNumberOfMatrixConstraints ( )
Returns
the number of matrix constraints
std::map<int, MatrixExpressionTree* > OSInstance::getAllMatrixExpressionTrees ( )
Returns
a map: the key is the row index and the value is the corresponding expression tree
std::map<int, MatrixExpressionTree* > OSInstance::getAllMatrixExpressionTreesMod ( )
Returns
a map: the key is the row index and the value is the corresponding expression tree
int* OSInstance::getMatrixExpressionTreeIndexes ( )

Get all the matrix expression tree indexes, i.e.

indexes of matrix objectives or matrix constraints that contain matrix expressions.

Returns
a pointer to an integer array of matrix expression tree indexes.
int OSInstance::getNumberOfMatrixExpressionTreeIndexes ( )

Get the number of unique matrix expression tree indexes.

Returns
the number of unique matrix expression tree indexes.
std::string OSInstance::getTimeDomainFormat ( )

Get the format of the time domain ("stages"/"interval")

Returns
the format of the time domain.
int OSInstance::getTimeDomainStageNumber ( )

Get the number of stages that make up the time domain.

Returns
the number of time stages.
std::string* OSInstance::getTimeDomainStageNames ( )

Get the names of the stages (NULL or empty string ("") if a stage has not been given a name.

Returns
the names of time stages.
int* OSInstance::getTimeDomainStageNumberOfVariables ( )

Get the number of variables contained in each time stage.

Returns
a vector of size numberOfStages.
int* OSInstance::getTimeDomainStageNumberOfConstraints ( )

Get the number of constraints contained in each time stage.

Returns
a vector of size numberOfStages.
int* OSInstance::getTimeDomainStageNumberOfObjectives ( )

Get the number of objectives contained in each time stage.

Returns
a vector of size numberOfStages.
int** OSInstance::getTimeDomainStageVarList ( )

Get the list of variables in each stage.

Returns
one array of integers for each stage.
int** OSInstance::getTimeDomainStageConList ( )

Get the list of constraints in each stage.

Returns
one array of integers for each stage.
int** OSInstance::getTimeDomainStageObjList ( )

Get the list of objectives in each stage.

Returns
one array of integers for each stage.
double OSInstance::getTimeDomainIntervalStart ( )

Get the start for the time domain interval.

Returns
start end of the time interval.
double OSInstance::getTimeDomainIntervalHorizon ( )

Get the horizon for the time domain interval.

Returns
the end of the time interval.
bool OSInstance::setInstanceName ( std::string  name)

set the instance name.

Parameters
nameholds the instance name.
Returns
whether the instance name was set successfully.
bool OSInstance::setInstanceSource ( std::string  source)

set the instance source.

Parameters
sourceholds the instance source.
Returns
whether the instance source was set successfully.
bool OSInstance::setInstanceDescription ( std::string  description)

set the instance description.

Parameters
descriptionholds the instance description.
Returns
whether the instance description was set successfully.
bool OSInstance::setInstanceCreator ( std::string  fileCreator)

set the instance creator.

Parameters
fileCreatorholds the instance creator.
Returns
whether the instance creator was set successfully.
bool OSInstance::setInstanceLicence ( std::string  licence)

set the instance licence.

Parameters
licenceholds the instance licence.
Returns
whether the instance licence was set successfully.
bool OSInstance::setVariableNumber ( int  number)

set the number of variables.

Parameters
numberholds the number of variables.
Returns
whether the number was set successfully.
bool OSInstance::addVariable ( int  index,
std::string  name,
double  lowerBound,
double  upperBound,
char  type 
)

add a variable.

In order to use the add method, the setVariableNumber must first be called so that the number of variables is known ahead of time to allocate appropriate memory. If a variable with the given variable index already exists, the old variable will be replaced.

Parameters
indexholds the variable index. It is required.
nameholds the variable name; use null or empty std::string ("") if no variable name.
lowerBoundholds the variable lower bound; use -OSDBL_MAX if no lower bound.
upperBoundholds the variable upper bound; use OSDBL_MAX if no upper bound.
typeholds the variable type character: C for Continuous, B for Binary, I for Integer, S for String, D for semi-continuous, J for semi-integer (i.e., either 0 or integer >=n).
Returns
whether the variable was added successfully.
bool OSInstance::setVariables ( int  number,
std::string *  names,
double *  lowerBounds,
double *  upperBounds,
char *  types 
)

set all the variable related elements.

All the previous variable-related elements will be deleted.

Parameters
numberholds the number of variables. It is required.
namesholds a std::string array of variable names; use null if no variable names.
lowerBoundsholds a double array of variable lower bounds; use null if all lower bounds are 0; use -OSDBL_MAX if no lower bound for a specific variable in the array.
upperBoundsholds a double array of variable upper bounds; use null if no upper bounds; use OSDBL_MAX if no upper bound for a specific variable in the array.
typesholds a char array of variable types; use null if all variables are continuous; for a specfic variable in the array use C for Continuous, B for Binary, I for Integer, S for String, D for semi-continuous, J for semi-integer (i.e., either 0 or integer >=n).
initsholds a double array of varible initial values; use null if no initial values. – deprecated
initsStringholds a std::string array of varible initial values; use null if no initial std::string values. – deprecated
Returns
whether the variables were set successfully.
bool OSInstance::setObjectiveNumber ( int  number)

set the number of objectives.

Parameters
numberholds the number of objectives.
Returns
whether the number of objectives was set successfully.
bool OSInstance::addObjective ( int  index,
std::string  name,
std::string  maxOrMin,
double  constant,
double  weight,
SparseVector objectiveCoefficients 
)

add an objective.

In order to use the add method, the setObjectiveNumber must first be called so that the objective number is known ahead of time to allocate appropriate memory. If a objective with the given objective index already exists, the old objective will be replaced. Objective index will start from -1, -2, -3, ... down, with -1 corresponding to the first objective.

Parameters
indexholds the objective index. Remember the first objective index is -1, second -2, ...
nameholds the objective name; use null or empty std::string ("") if no objective name.
maxOrMinholds the objective sense or direction; it can only take two values: "max" or "min".
constantholds the objective constant; use 0.0 if no objective constant.
weightholds the objective weight; use 1.0 if no objective weight.
objectiveCoefficientsholds the objective coefficients (null if no objective coefficients) in a sparse representation that holds two arrays: index array and a value array.
Returns
whether the objective was added successfully.
bool OSInstance::setObjectives ( int  number,
std::string *  names,
std::string *  maxOrMins,
double *  constants,
double *  weights,
SparseVector **  objectitiveCoefficients 
)

set all the objectives related elements.

All the previous objective-related elements will be deleted.

Parameters
numberholds the number of objectives. It is required.
namesholds a std::string array of objective names; use null if no objective names.
maxOrMinsholds a std::string array of objective objective senses or directions: "max" or "min"; use null if all objectives are "min".
constantsholds a double array of objective constants; use null if all objective constants are 0.0.
weightsholds a double array of objective weights; use null if all objective weights are 1.0.
objectiveCoefficientsholds an array of objective coefficients, (null if no objective has any coefficients) For each objective, the coefficients are stored in a sparse representation that holds two arrays: index array and a value array. If for a specific objective, there are no objective coefficients, use null for the corresponding array member.
Returns
whether the objectives were set successfully.
bool OSInstance::setConstraintNumber ( int  number)

set the number of constraints.

Parameters
numberholds the number of constraints.
Returns
whether the number of constraints was set successfully.
bool OSInstance::addConstraint ( int  index,
std::string  name,
double  lowerBound,
double  upperBound,
double  constant 
)

add a constraint.

In order to use the add method, the setConstraintNumber must first be called so that the constraint number is known ahead of time to allocate appropriate memory. If a constraint with the given constraint index already exists, the old constraint will be replaced.

Parameters
indexholds the constraint index. It is required.
nameholds the constraint name; use null or empty std::string ("") if no constraint name.
lowerBoundholds the constraint lower bound; use -OSDBL_MAX if no lower bound.
upperBoundholds the constraint upper bound; use OSDBL_MAX if no upper bound.
Returns
whether the constraint was added successfully.
bool OSInstance::setConstraints ( int  number,
std::string *  names,
double *  lowerBounds,
double *  upperBounds,
double *  constants 
)

set all the constraint related elements.

All the previous constraint-related elements will be deleted.

Parameters
numberholds the number of constraints. It is required.
namesholds a std::string array of constraint names; use null if no constraint names.
lowerBoundsholds a double array of constraint lower bounds; use null if no lower bounds; use -OSDBL_MAX if no lower bound for a specific constraint in the array.
upperBoundsholds a double array of constraint upper bounds; use null if no upper bounds; use OSDBL_MAX if no upper bound for a specific constraint in the array.
Returns
whether the constraints were set successfully.
bool OSInstance::setLinearConstraintCoefficients ( int  numberOfValues,
bool  isColumnMajor,
double *  values,
int  valuesBegin,
int  valuesEnd,
int *  indexes,
int  indexesBegin,
int  indexesEnd,
int *  starts,
int  startsBegin,
int  startsEnd 
)

set linear constraint coefficients

Parameters
numberOfValuesholds the number of specified coefficient values (usually nonzero) in the coefficient matrix.
isColumnMajorholds whether the coefficient matrix is stored in column major (true) or row major (false).
valuesholds a double array coefficient values in the matrix.
valuesBeginholds the begin index of the values array to copy from (usually 0).
valuesEndholds the end index of the values array to copy till (usually values.length - 1).
indexesholds an integer array column/row indexes for each value in the values array.
indexesBeginholds the begin index of the indexes array to copy from (usually 0).
indexesEndholds the end index of the indexes array to copy till (usually indexes.length - 1).
startsholds an integer array start indexes in the matrix; the first value of starts should always be 0.
startsBeginholds the begin index of the starts array to copy from (usually 0).
startsEndholds the end index of the starts array to copy till (usually starts.length - 1).
Returns
whether the linear constraint coefficients were set successfully.
bool OSInstance::copyLinearConstraintCoefficients ( int  numberOfValues,
bool  isColumnMajor,
double *  values,
int  valuesBegin,
int  valuesEnd,
int *  indexes,
int  indexesBegin,
int  indexesEnd,
int *  starts,
int  startsBegin,
int  startsEnd 
)

copy linear constraint coefficients: perform a deep copy of the sparse matrix

Parameters
numberOfValuesholds the number of specified coefficient values (usually nonzero) in the coefficient matrix.
isColumnMajorholds whether the coefficient matrix is stored in column major (true) or row major (false).
valuesholds a double array coefficient values in the matrix.
valuesBeginholds the begin index of the values array to copy from (usually 0).
valuesEndholds the end index of the values array to copy till (usually values.length - 1).
indexesholds an integer array column/row indexes for each value in the values array.
indexesBeginholds the begin index of the indexes array to copy from (usually 0).
indexesEndholds the end index of the indexes array to copy till (usually indexes.length - 1).
startsholds an integer array start indexes in the matrix; the first value of starts should always be 0.
startsBeginholds the begin index of the starts array to copy from (usually 0).
startsEndholds the end index of the starts array to copy till (usually starts.length - 1).
Returns
whether the linear constraint coefficients were copied successfully.
bool OSInstance::setNumberOfQuadraticTerms ( int  nq)

set the number of quadratic terms

Parameters
nqholds the number of quadratic terms.
Returns
whether the number of quadratic terms was set successfully.
bool OSInstance::setQuadraticCoefficients ( int  number,
int *  rowIndexes,
int *  varOneIndexes,
int *  varTwoIndexes,
double *  coefficients,
int  begin,
int  end 
)

set quadratic coefficients into the QuadraticCoefficients->qTerm data structure

Parameters
numberholds the number of quadratic terms.
rowIndexesholds an integer array of row indexes of all the quadratic terms. A negative integer corresponds to an objective row, e.g. -1 for 1st objective and -2 for 2nd.
varOneIndexesholds an integer array of the first variable indexes of all the quadratic terms.
varTwoIndexesholds an integer array of the second variable indexes of all the quadratic terms.
coefficientsholds an array of double containing all the quadratic term coefficients.
beginholds the begin index of all the arrays to copy from (usually = 0).
endholds the end index of all the arrays to copy till (usually = array length -1).
Returns
whether the quadratic terms were set successfully.
bool OSInstance::setQuadraticTermsInNonlinearExpressions ( int  number,
int *  rowIndexes,
int *  varOneIndexes,
int *  varTwoIndexes,
double *  coefficients 
)

set quadratic terms in nonlinearExpressions

Parameters
numberholds the number of quadratic terms.
rowIndexesholds an integer array of row indexes of all the quadratic terms. A negative integer corresponds to an objective row, e.g. -1 for 1st objective and -2 for 2nd.
varOneIndexesholds an integer array of the first variable indexes of all the quadratic terms.
varTwoIndexesholds an integer array of the second variable indexes of all the quadratic terms.
coefficientsholds a double array all the quadratic term coefficients.
Returns
whether the quadratic terms were set successfully.
bool OSInstance::setNonlinearExpressions ( int  nexpr,
Nl **  root 
)

set nonlinear expressions

Parameters
nexprholds the number of nonlinear expressions.
rootholds a pointer array to the root nodes of all the nonlinear expressions.
Returns
whether the nonlinear expressions were set successfully.
bool OSInstance::setMatrixNumber ( int  number)

set the number of matrices

Parameters
numberholds the number of matrices
Returns
whether the number of matrices was set successfully.
bool OSInstance::addMatrix ( int  index,
std::string  name,
int  numberOfRows,
int  numberOfColumns,
ENUM_MATRIX_SYMMETRY  symmetry,
ENUM_MATRIX_TYPE  matrixType,
unsigned int  inumberOfChildren,
MatrixNode **  m_mChildren 
)

add a matrix.

In order to use the add method, the setMatrixNumber must first be called so that the number of matrices is known ahead of time to allocate appropriate memory. If a matrix with the given matrix index already exists, the old matrix will be replaced.

Parameters
indexholds the matrix index. It is required.
nameholds the matrix name; use null or empty std::string ("") if no matrix name.
numberOfRowsholds the number of rows. It is required. Use 1 for column vectors.
numberOfColumnsholds the number of columns. It is required. Use 1 for row vectors.
symmetryholds the type of symmetry used in the definition of the matrix. For more information see the enumeration ENUM_MATRIX_SYMMETRY in OSGeneral.h. If no symmetry, use ENUM_MATRIX_SYMMETRY_none.
matrixTypetracks the type of elements contained in this matrix. For more information see the enumeration ENUM_MATRIX_TYPE in OSGeneral.h. If unsure, use ENUM_MATRIX_TYPE_unknown.
inumberOfChildrenis the number of MatrixNode child elements, i.e., the number of matrix constructors in the m_mChildren array.
m_mChildrenis the array of matrix constructors used in the definition of this matrix.
Returns
whether the matrix was added successfully.
bool OSInstance::setConeNumber ( int  number)

set the number of cones

Parameters
numberholds the number of cones
Returns
whether the number of cones was set successfully.
bool OSInstance::addCone ( int  index,
int  numberOfRows,
int  numberOfColumns,
ENUM_CONE_TYPE  coneType,
std::string  name,
int  numberOfOtherIndexes = 0,
int *  otherIndexes = NULL 
)

add a cone.

In order to use the add method, the setConeNumber must first be called so that the number of cones is known ahead of time to allocate appropriate memory. If a cone with the given cone index already exists, the old cone will be replaced.

Remarks
This method has different signatures to cater for different types of cones. This signature is used for cones that require basic information only.
Parameters
indexholds the cone index. It is required.
numberOfRowsholds the number of rows. It is required.
numberOfColumnsholds the number of columns. It is required.
coneTypeholds the cone type. For more information consult the enumeration ENUM_CONE_TYPE further up in this file. This argument is required and must be one of ENUM_CONE_TYPE_nonnegative, ENUM_CONE_TYPE_nonpositive, ENUM_CONE_TYPE_copositiveMatrices, ENUM_CONE_TYPE_completelyPositiveMatrices.
nameholds the cone name; use null or empty std::string ("") if no cone name.
numberOfOtherIndexesholds the number of other indexes if the cone contains higher-dimensional tensors. This argument is optional and can be omitted. It defaults to 0.
otherIndexesholds the array of other indexes if the cone contains higher-dimensional tensors. This argument is optional and can be omitted. It defaults to null.
Returns
whether the cone was added successfully.
bool OSInstance::addCone ( int  index,
int  numberOfRows,
int  numberOfColumns,
ENUM_CONE_TYPE  coneType,
std::string  name,
int  numberOfComponents,
int *  components,
int  numberOfOtherIndexes = 0,
int *  otherIndexes = NULL 
)

add a cone.

In order to use the add method, the setConeNumber must first be called so that the number of cones is known ahead of time to allocate appropriate memory. If a cone with the given cone index already exists, the old cone will be replaced.

Remarks
This method has different signatures to cater for different types of cones. This signature is used for product and intersection cones.
Parameters
indexholds the cone index. It is required.
numberOfRowsholds the number of rows. It is required.
numberOfColumnsholds the number of columns. It is required.
coneTypeholds the cone type. For more information consult the enumeration ENUM_CONE_TYPE further up in this file. This argument is required and must be one of ENUM_CONE_TYPE_product, ENUM_CONE_TYPE_intersection.
nameholds the cone name; use null or empty std::string ("") if no cone name.
numberOfComponentsholds the number of components of this cone.
componentsholds the indexes of the components of this cone.
numberOfOtherIndexesholds the number of other indexes if the cone contains higher-dimensional tensors. This argument is optional and can be omitted. It defaults to 0.
otherIndexesholds the array of other indexes if the cone contains higher-dimensional tensors. This argument is optional and can be omitted. It defaults to null.
Returns
whether the cone was added successfully.
bool OSInstance::addCone ( int  index,
int  numberOfRows,
int  numberOfColumns,
ENUM_CONE_TYPE  coneType,
std::string  name,
int  referenceIdx,
int  numberOfOtherIndexes = 0,
int *  otherIndexes = NULL 
)

add a cone.

In order to use the add method, the setConeNumber must first be called so that the number of cones is known ahead of time to allocate appropriate memory. If a cone with the given cone index already exists, the old cone will be replaced.

Remarks
This method has different signatures to cater for different types of cones. This signature is used for positive or negative cones that reference another cone or matrix.
Parameters
indexholds the cone index. It is required.
numberOfRowsholds the number of rows. It is required.
numberOfColumnsholds the number of columns. It is required.
coneTypeholds the cone type. For more information consult the enumeration ENUM_CONE_TYPE further up in this file. This argument is required and must be one of ENUM_CONE_TYPE_dual, ENUM_CONE_TYPE_polar, ENUM_CONE_TYPE_polyhedral.
nameholds the cone name; use null or empty std::string ("") if no cone name.
referenceIdxholds the index of a cone or matrix used in the definition of this cone.
numberOfOtherIndexesholds the number of other indexes if the cone contains higher-dimensional tensors. This argument is optional and can be omitted. It defaults to 0.
otherIndexesholds the array of other indexes if the cone contains higher-dimensional tensors. This argument is optional and can be omitted. It defaults to null.
Returns
whether the cone was added successfully.
bool OSInstance::addCone ( int  index,
int  numberOfRows,
int  numberOfColumns,
ENUM_CONE_TYPE  coneType,
std::string  name,
std::string  semidefiniteness,
int  numberOfOtherIndexes = 0,
int *  otherIndexes = NULL 
)

add a cone.

In order to use the add method, the setConeNumber must first be called so that the number of cones is known ahead of time to allocate appropriate memory. If a cone with the given cone index already exists, the old cone will be replaced.

Remarks
This method has different signatures to cater for different types of cones. This signature is used for positive or negative semidefinite cones.
Parameters
indexholds the cone index. It is required.
numberOfRowsholds the number of rows. It is required.
numberOfColumnsholds the number of columns. It is required.
coneTypeholds the cone type. For more information consult the enumeration ENUM_CONE_TYPE further up in this file. This argument is required and must be ENUM_CONE_TYPE_semidefinite.
nameholds the cone name; use null or empty std::string ("") if no cone name.
semidefinitenessdistinguishes positive and negative semidefinite cones. It must be either "positive" or "negative".
numberOfOtherIndexesholds the number of other indexes if the cone contains higher-dimensional tensors. This argument is optional and can be omitted. It defaults to 0.
otherIndexesholds the array of other indexes if the cone contains higher-dimensional tensors. This argument is optional and can be omitted. It defaults to null.
Returns
whether the cone was added successfully.
bool OSInstance::addCone ( int  index,
int  numberOfRows,
int  numberOfColumns,
ENUM_CONE_TYPE  coneType,
std::string  name,
int  distortionMatrixIdx,
double  normFactor,
int  axisDirection,
int  numberOfOtherIndexes = 0,
int *  otherIndexes = NULL 
)

add a cone.

In order to use the add method, the setConeNumber must first be called so that the number of cones is known ahead of time to allocate appropriate memory. If a cone with the given cone index already exists, the old cone will be replaced.

Remarks
This method has different signatures to cater for different types of cones. This signature is used for quadratic cones.
Parameters
indexholds the cone index. It is required.
numberOfRowsholds the number of rows. It is required.
numberOfColumnsholds the number of columns. It is required.
coneTypeholds the cone type. For more information consult the enumeration ENUM_CONE_TYPE further up in this file. This argument is required and must be ENUM_CONE_TYPE_quadratic.
nameholds the cone name; use null or empty std::string ("") if no cone name.
distortionMatrixIdxholds the index of a distortion matrix. Use -1 if there is none.
normFactorholds a scale factor for the norm. Use 1 if there is none.
axisDirectionholds the index of the axis direction. The most usual value is 0.
numberOfOtherIndexesholds the number of other indexes if the cone contains higher-dimensional tensors. This argument is optional and can be omitted. It defaults to 0.
otherIndexesholds the array of other indexes if the cone contains higher-dimensional tensors. This argument is optional and can be omitted. It defaults to null.
Returns
whether the cone was added successfully.
bool OSInstance::addCone ( int  index,
int  numberOfRows,
int  numberOfColumns,
ENUM_CONE_TYPE  coneType,
std::string  name,
int  distortionMatrixIdx,
double  normFactor,
int  firstAxisDirection,
int  secondAxisDirection,
int  numberOfOtherIndexes = 0,
int *  otherIndexes = NULL 
)

add a cone.

In order to use the add method, the setConeNumber must first be called so that the number of cones is known ahead of time to allocate appropriate memory. If a cone with the given cone index already exists, the old cone will be replaced.

Remarks
This method has different signatures to cater for different types of cones. This signature is used for rotated quadratic cones.
Parameters
indexholds the cone index. It is required.
numberOfRowsholds the number of rows. It is required.
numberOfColumnsholds the number of columns. It is required.
coneTypeholds the cone type. For more information consult the enumeration ENUM_CONE_TYPE further up in this file. This argument is required and must be ENUM_CONE_TYPE_rotatedQuadratic.
nameholds the cone name; use null or empty std::string ("") if no cone name.
distortionMatrixIdxholds the index of a distortion matrix. Use -1 if there is none.
normFactorholds a scale factor for the norm. Use 1 if there is none.
firstAxisDirectionholds the index of the first axis direction. The most usual value is 0.
secondAxisDirectionholds the index of the second axis direction. The most usual value is 1.
numberOfOtherIndexesholds the number of other indexes if the cone contains higher-dimensional tensors. This argument is optional and can be omitted. It defaults to 0.
otherIndexesholds the array of other indexes if the cone contains higher-dimensional tensors. This argument is optional and can be omitted. It defaults to null.
Returns
whether the cone was added successfully.
bool OSInstance::addCone ( int  index,
int  numberOfRows,
int  numberOfColumns,
ENUM_CONE_TYPE  coneType,
std::string  name,
int  distortionMatrixIdx,
double  normFactor,
int  axisDirection,
double  pNorm,
int  numberOfOtherIndexes = 0,
int *  otherIndexes = NULL 
)

add a cone.

In order to use the add method, the setConeNumber must first be called so that the number of cones is known ahead of time to allocate appropriate memory. If a cone with the given cone index already exists, the old cone will be replaced.

Remarks
This method has different signatures to cater for different types of cones. This signature is used for normed cones.
Parameters
indexholds the cone index. It is required.
numberOfRowsholds the number of rows. It is required.
numberOfColumnsholds the number of columns. It is required.
coneTypeholds the cone type. For more information consult the enumeration ENUM_CONE_TYPE further up in this file. This argument is required and must be ENUM_CONE_TYPE_normed.
nameholds the cone name; use null or empty std::string ("") if no cone name.
distortionMatrixIdxholds the index of a distortion matrix. Use -1 if there is none.
normFactorholds a scale factor for the norm. Use 1 if there is none.
pNormholds the norm descriptor. It must be greater than or equal to 1.
numberOfOtherIndexesholds the number of other indexes if the cone contains higher-dimensional tensors. This argument is optional and can be omitted. It defaults to 0.
otherIndexesholds the array of other indexes if the cone contains higher-dimensional tensors. This argument is optional and can be omitted. It defaults to null.
Returns
whether the cone was added successfully.
bool OSInstance::addCone ( int  index,
int  numberOfRows,
int  numberOfColumns,
ENUM_CONE_TYPE  coneType,
std::string  name,
int  maxDegree,
int  numberOfUB,
double *  ub,
int  numberOfLB,
double *  lb,
int  numberOfOtherIndexes = 0,
int *  otherIndexes = NULL 
)

add a cone.

In order to use the add method, the setConeNumber must first be called so that the number of cones is known ahead of time to allocate appropriate memory. If a cone with the given cone index already exists, the old cone will be replaced.

Remarks
This method has different signatures to cater for different types of cones. This signature is used for cones of nonnegative polynomials and similar cones.
Parameters
indexholds the cone index. It is required.
numberOfRowsholds the number of rows. It is required.
numberOfColumnsholds the number of columns. It is required.
coneTypeholds the cone type. For more information consult the enumeration ENUM_CONE_TYPE further up in this file. This argument is required and must be ENUM_CONE_TYPE_nonnegativePolynomials. ENUM_CONE_TYPE_sumOfSquaresPolynomials. ENUM_CONE_TYPE_moment.
nameholds the cone name; use null or empty std::string ("") if no cone name.
maxDegreeholds the maximum degree of the polynomials. Use 1, 2, 3, ..., INF.
numberOfUBholds the number of (box-type) upper bound constraints. Use 0 if there are none.
ubholds the upper bound values. Use null if there are no upper bounds.
numberOfLBholds the number of (box-type) lower bound constraints. Use 0 if there are none.
lbholds the lower bound values. Use null if there are no lower bounds.
numberOfOtherIndexesholds the number of other indexes if the cone contains higher-dimensional tensors. This argument is optional and can be omitted. It defaults to 0.
otherIndexesholds the array of other indexes if the cone contains higher-dimensional tensors. This argument is optional and can be omitted. It defaults to null.
Returns
whether the cone was added successfully.
std::string OSInstance::printModel ( )

Print the infix representation of the problem.

Returns
a string with the infix representation
std::string OSInstance::printModel ( int  rowIdx)

Print the infix representation of the row (which could be an an objective function row) indexed by rowIdx.

Parameters
rowIdxis the index of the row we want to express in infix.
Returns
a string with the infix representation
bool OSInstance::initializeNonLinearStructures ( )

Initialize the data structures for the nonlinear API.

Returns
true if we have initialized the nonlinear data strucutres.
double OSInstance::calculateFunctionValue ( int  idx,
double *  x,
bool  new_x 
)

Calculate the function value for function (constraint or objective) indexed by idx.

Parameters
idxis the index on the constraint (0, 1, 2, 3, ...) or objective function (-1, -2, -3, ...).
xis a pointer (double array) to the current variable values
new_xis false if any evaluation method was previously called for the current x has been evaluated for the current iterate x use a value of false if not sure
Returns
the function value as a double.
double* OSInstance::calculateAllConstraintFunctionValues ( double *  x,
double *  objLambda,
double *  conLambda,
bool  new_x,
int  highestOrder 
)

Calculate all of the constraint function values.

Parameters
xis a pointer (double array) to the current variable values
objLambdais the Lagrange multiplier on the objective function
conLambdais pointer (double array) of Lagrange multipliers on the constratins
new_xis false if any evaluation method was previously called for the current x for the current iterate
highestOrderis the highest order of the derivative being calculated
Returns
a double array of constraint function values – the size of the array is equal to getConstraintNumber().
double* OSInstance::calculateAllConstraintFunctionValues ( double *  x,
bool  new_x 
)

Calculate all of the constraint function values, we are overloading this function and this version of the method will not use any AD and will evaluate function values from the OS Expression Tree.

Parameters
xis a pointer (double array) to the current variable values
new_xis false if any evaluation method was previously called for the current iterate
Returns
a double array of constraint function values – the size of the array is equal to getConstraintNumber().
double* OSInstance::calculateAllObjectiveFunctionValues ( double *  x,
double *  objLambda,
double *  conLambda,
bool  new_x,
int  highestOrder 
)

Calculate all of the objective function values.

Parameters
xis a pointer (double array) to the current variable values
objLambdais the Lagrange multiplier on the objective function
conLambdais pointer (double array) of Lagrange multipliers on the constratins
new_xis false if any evaluation method was previously called for the current iterate
highestOrderis the highest order of the derivative being calculated
Returns
a double array of objective function values – the size of the array is equal to getObjectiveNumber().
double* OSInstance::calculateAllObjectiveFunctionValues ( double *  x,
bool  new_x 
)

Calculate all of the objective function values, we are overloading this function and this version of the method will not use any AD and will evaluate function values from the OS Expression Tree.

Parameters
xis a pointer (double array) to the current variable values
new_xis false if any evaluation method was previously called for the current iterate
Returns
a double array of objective function values – the size of the array is equal to getObjectiveNumber().
SparseJacobianMatrix* OSInstance::calculateAllConstraintFunctionGradients ( double *  x,
double *  objLambda,
double *  conLambda,
bool  new_x,
int  highestOrder 
)

Calculate the gradient of all constraint functions.

Parameters
xis a pointer (double array) to the current variable values
objLambdais the Lagrange multiplier on the objective function
conLambdais pointer (double array) of Lagrange multipliers on the constratins
new_xis false if any evaluation method was previously called for the current iterate
highestOrderis the highest order of the derivative being calculated
Returns
a pointer a SparseJacobianMatrix.
SparseVector* OSInstance::calculateConstraintFunctionGradient ( double *  x,
double *  objLambda,
double *  conLambda,
int  idx,
bool  new_x,
int  highestOrder 
)

Calculate the gradient of the constraint function indexed by idx.

Parameters
xis a pointer (double array) to the current variable values
objLambdais the Lagrange multiplier on the objective function
conLambdais pointer (double array) of Lagrange multipliers on the constratins idx is the index of the constraint function gradient
new_xis false if any evaluation method was previously called for the current iterate
highestOrderis the highest order of the derivative being calculated
Returns
a pointer to a sparse vector of doubles.
SparseVector* OSInstance::calculateConstraintFunctionGradient ( double *  x,
int  idx,
bool  new_x 
)

Calculate the gradient of the constraint function indexed by idx this function is overloaded.

Parameters
xis a pointer (double array) to the current variable values idx is the index of the constraint function gradient
new_xis false if any evaluation method was previously called for the current iterate
highestOrderis the highest order of the derivative being calculated
Returns
a pointer to a sparse vector of doubles.
double** OSInstance::calculateAllObjectiveFunctionGradients ( double *  x,
double *  objLambda,
double *  conLambda,
bool  new_x,
int  highestOrder 
)

Calculate the gradient of all objective functions.

Parameters
xis a pointer (double array) to the current variable values
objLambdais the Lagrange multiplier on the objective function
conLambdais pointer (double array) of Lagrange multipliers on the constratins
new_xis false if any evaluation method was previously called for the current iterate
highestOrderis the highest order of the derivative being calculated
Returns
an array of pointer to dense objective function gradients.
double* OSInstance::calculateObjectiveFunctionGradient ( double *  x,
double *  objLambda,
double *  conLambda,
int  objIdx,
bool  new_x,
int  highestOrder 
)

Calculate the gradient of the objective function indexed by objIdx.

Parameters
xis a pointer (double array) to the current variable values
objLambdais the Lagrange multiplier on the objective function
conLambdais pointer (double array) of Lagrange multipliers on the constratins objIdx is the index of the objective function being optimized
new_xis false if any evaluation method was previously called for the current iterate
highestOrderis the highest order of the derivative being calculated
Returns
a pointer to a dense vector of doubles.
double* OSInstance::calculateObjectiveFunctionGradient ( double *  x,
int  objIdx,
bool  new_x 
)

Calculate the gradient of the objective function indexed by objIdx this function is overloaded.

Parameters
xis a pointer (double array) to the current variable values
objIdxis the index of the objective function being optimized
new_xis false if any evaluation method was previously called for the current iterate
Returns
a pointer to a dense vector of doubles.
SparseHessianMatrix* OSInstance::calculateLagrangianHessian ( double *  x,
double *  objLambda,
double *  conLambda,
bool  new_x,
int  highestOrder 
)

Calculate the Hessian of the Lagrangian Expression Tree This method will build the CppAD expression tree for only the first iteration Use this method on if the value of x does not affect the operations sequence.

Parameters
xis a pointer (double array) to the current variable values
objLambdais the Lagrange multiplier on the objective function
conLambdais pointer (double array) of Lagrange multipliers on the constratins
new_xis false if any evaluation method was previously called for the current iterate
highestOrderis the highest order of the derivative being calculated
Returns
a pointer a SparseHessianMatrix. Each array member corresponds to one constraint gradient.
SparseHessianMatrix* OSInstance::calculateHessian ( double *  x,
int  idx,
bool  new_x 
)

Calculate the Hessian of a constraint or objective function.

Parameters
xis a pointer (double array) to the current variable values
new_xis false if any evaluation method was previously called for the current iterate idx is the index of the either a constraint or objective function Hessian
Returns
a pointer a SparseVector. Each array member corresponds to one constraint gradient.
bool OSInstance::getSparseJacobianFromColumnMajor ( )
Returns
true if successful in generating the constraints gradient.
bool OSInstance::getSparseJacobianFromRowMajor ( )
Returns
true if successful in generating the constraints gradient.
ScalarExpressionTree* OSInstance::getLagrangianExpTree ( )
Returns
a pointer to the ExpressionTree for the Lagrangian function of current instance we only take the Lagrangian of the rows with nonlinear terms
std::map<int, int> OSInstance::getAllNonlinearVariablesIndexMap ( )
Returns
a pointer to a map of the indices of all of the variables that appear in the Lagrangian function
SparseHessianMatrix* OSInstance::getLagrangianHessianSparsityPattern ( )
Returns
a pointer to a SparseHessianMatrix with the nonzero structure of the Lagrangian Expression Tree
bool OSInstance::addQTermsToExressionTree ( )
Returns
true if successful in adding the qTerms to the ExpressionTree.
Remarks
due to the typo in the name of the method, this has been flagged as obsolescent and is being replaced by addQTermsToExpressionTree() – see below
bool OSInstance::addQTermsToExpressionTree ( )

This method adds quadratic terms into the array of expression trees.

There is at most one expression tree per row (see getAllNonlinearExpressionTrees)

Returns
true if successful in adding the qTerms to the ExpressionTree.
SparseJacobianMatrix* OSInstance::getJacobianSparsityPattern ( )
Returns
pointer to a SparseJacobianMatrix.
void OSInstance::duplicateExpressionTreesMap ( )

duplicate the map of expression trees.

bool OSInstance::createOSADFun ( std::vector< double >  vdX)

Create the a CppAD Function object: this is a function where the domain is the set of variables for the problem and the range is the objective function plus constraints.

Parameters
vdXis a vector of doubles holding the current primal variable values the size of x should equal instanceData->variables->numberOfVariables
Returns
if successfully created
std::vector<double> OSInstance::forwardAD ( int  p,
std::vector< double >  vdX 
)

Perform an AD forward sweep.

Parameters
pis the highest order Taylor coefficient
vdXis a vector of doubles of the current primal variable values the size of vdX m_iNumberOfNonlinearVariables
Returns
a double vector equal to the dimension of the range space the result of the forward p sweep
std::vector<double> OSInstance::reverseAD ( int  p,
std::vector< double >  vdlambda 
)

Perform an AD reverse sweep.

Parameters
pis the order of the sweep
vdlambdais a vector of doubles of the current dual (lagrange) variable values the size of lambda should equal number of objective functions plus number of constraints
Returns
a double vector equal to the n*p
int OSInstance::getADSparsityHessian ( )

end revised AD code

Call the AD routine to fill in m_vbLagHessNonz and determine the nonzeros.

Returns
the number of nonzeros in the Hessian
bool OSInstance::getIterateResults ( double *  x,
double *  objLambda,
double *  conLambda,
bool  new_x,
int  highestOrder 
)

end revised AD code

Get the information for each iteration. Get the functions values, Jacobian and Hessian of the Lagrangian

Parameters
xis a pointer of doubles of primal values for the current iteration
objLambdais is a pointer of doubles of the current dual (Lagrange) multipliers on the objective functions
conLambdais a pointer of doubles of the current dual (Lagrange) multipliers on the constraints
new_xis false if any evaluation method was previously called
highestOrderis the highest order derivative to be calculated
Returns
true if successful
bool OSInstance::getZeroOrderResults ( double *  x,
double *  objLambda,
double *  conLambda 
)

Calculate function values.

Parameters
xis a pointer of doubles of primal values for the current iteration
objLambdais is a pointer of doubles of the current dual (Lagrange) multipliers on the objective functions
conLambdais a pointer of doubles of the current dual (Lagrange) multipliers on the constraints
Returns
true if successful
bool OSInstance::getFirstOrderResults ( double *  x,
double *  objLambda,
double *  conLambda 
)

Calculate first derivatives.

Parameters
xis a pointer of doubles of primal values for the current iteration
objLambdais is a pointer of doubles of the current dual (Lagrange) multipliers on the objective functions
conLambdais a pointer of doubles of the current dual (Lagrange) multipliers on the constraints
Returns
true if successful
bool OSInstance::getSecondOrderResults ( double *  x,
double *  objLambda,
double *  conLambda 
)

Calculate second derivatives.

Parameters
xis a pointer of doubles of primal values for the current iteration
objLambdais is a pointer of doubles of the current dual (Lagrange) multipliers on the objective functions
conLambdais a pointer of doubles of the current dual (Lagrange) multipliers on the constraints
Returns
true if successful
bool OSInstance::initForAlgDiff ( )

This should be called by nonlinear solvers using callback functions.

initForAlgDiff will initialize the correct nonlinear structures in preparation for using the algorithmic differentiation routines.

Returns
true if successful
bool OSInstance::initObjGradients ( )

This should be called by initForAlgDiff()

initObjGradients will initialize the objective function gradients to be equal to the coefficients given in the <coef> section of the OSiL instance

Returns
true if successful
bool OSInstance::setTimeDomain ( std::string  format)

This sets the format of the time domain ("stages"/"interval"/"none")

bool OSInstance::setTimeDomainStages ( int  number,
std::string *  names 
)

This sets the number (and optionally names) of the time stages.

bool OSInstance::setTimeDomainStageVariablesOrdered ( int  numberOfStages,
int *  numberOfVariables,
int *  startIdx 
)

This sets the variables associated with each time domain stage in temporal order.

(I.e., for each stage numberOfVariables gives the number of variables accociated with this stage and startIdx gives the first variable in this stage.)

bool OSInstance::setTimeDomainStageVariablesUnordered ( int  numberOfStages,
int *  numberOfVariables,
int **  varIndex 
)

This sets the variables associated with each time domain stage in srbitrary order.

(I.e., for each stage numberOfVariables gives the number of variables accociated with this stage and varIndex[i] gives the index of each variable in stage[i].)

bool OSInstance::setTimeDomainStageConstraintsOrdered ( int  numberOfStages,
int *  numberOfConstraints,
int *  startIdx 
)

This sets the constraints associated with each time domain stage in temporal order.

(I.e., for each stage numberOfConstraints gives the number of constraints accociated with this stage and startIdx gives the first constraint in this stage.)

bool OSInstance::setTimeDomainStageConstraintsUnordered ( int  numberOfStages,
int *  numberOfConstraints,
int **  conIndex 
)

This sets the constraints associated with each time domain stage in srbitrary order.

(I.e., for each stage numberOfConstraints gives the number of constraints accociated with this stage and conIndex[i] gives the index of each constraint in stage[i].)

bool OSInstance::setTimeDomainStageObjectivesOrdered ( int  numberOfStages,
int *  numberOfObjectives,
int *  startIdx 
)

This sets the objectives associated with each time domain stage in temporal order.

(I.e., for each stage numberOfObjectives gives the number of objectives accociated with this stage and startIdx gives the first objective in this stage.)

bool OSInstance::setTimeDomainStageObjectivesUnordered ( int  numberOfStages,
int *  numberOfObjectives,
int **  varIndex 
)

This sets the objectives associated with each time domain stage in arbitrary order.

(I.e., for each stage numberOfObjectives gives the number of objectives accociated with this stage and objIndex[i] gives the index of each objective in stage[i].)

bool OSInstance::setTimeDomainInterval ( double  start,
double  horizon 
)

This sets the start and end of the time interval.

Member Data Documentation

GeneralFileHeader* OSInstance::instanceHeader

the instanceHeader is implemented as a general file header object to allow sharing of classes between schemas

Definition at line 2254 of file OSInstance.h.

InstanceData* OSInstance::instanceData

A pointer to an InstanceData object.

Definition at line 2257 of file OSInstance.h.

bool OSInstance::bVariablesModified

bVariablesModified is true if the variables data has been modified.

Definition at line 2267 of file OSInstance.h.

bool OSInstance::bObjectivesModified

bObjectivesModified is true if the objective function data has been modified.

Definition at line 2272 of file OSInstance.h.

bool OSInstance::bConstraintsModified

bConstraintsModified is true if the constraints data has been modified.

Definition at line 2277 of file OSInstance.h.

bool OSInstance::bAMatrixModified

bAMatrixModified is true if the A matrix data has been modified.

Definition at line 2282 of file OSInstance.h.

bool OSInstance::bUseExpTreeForFunEval

bUseExpTreeForFunEval is set to true if you wish to use the OS Expression Tree for function evaluations instead of AD – false by default.

Definition at line 4588 of file OSInstance.h.


The documentation for this class was generated from the following file: