OSInstance.h
Go to the documentation of this file.
1 /* $Id: OSInstance.h 5284 2017-12-08 13:52:50Z stefan $ */
29 #ifndef OSINSTANCE_H
30 #define OSINSTANCE_H
31 #include "OSConfig.h"
32 #include "OSParameters.h"
33 #include "OSGeneral.h"
34 #include "OSMatrix.h"
35 #include "OSnLNode.h"
36 #include "OSExpressionTree.h"
37 #include <string>
38 #include <map>
39 
40 
44 class Variable
45 {
46 public:
48  Variable();
49 
51  ~Variable();
52 
56  double lb;
57 
61  double ub;
62 
66  char type;
67 
71  std::string name;
72 
76  bool IsEqual(Variable *that);
77 }; // class Variable
78 
79 
83 class Variables
84 {
85 public:
86 
88  Variables();
89 
91  ~Variables();
92 
95 
98 
102  bool IsEqual(Variables *that);
103 }; // class Variables
104 
105 
110 class ObjCoef
111 {
112 public:
113 
115  ObjCoef();
116 
118  ~ObjCoef();
119 
123  int idx;
124 
128  double value;
129 
133  bool IsEqual(ObjCoef *that);
134 };//class ObjCoef
135 
136 
142 {
143 public:
144 
146  Objective();
147 
149  ~Objective();
150 
152  std::string name;
153 
157  std::string maxOrMin;
158 
162  double constant;
163 
167  double weight;
168 
173 
177 
181  bool IsEqual(Objective *that);
182 };//class Objective
183 
189 {
190 public:
191 
193  Objectives();
194 
196  ~Objectives();
197 
202 
206 
210  bool IsEqual(Objectives *that);
211 };//class Objectives
212 
213 
219 {
220 public:
221 
223  Constraint();
224 
226  ~Constraint();
227 
229  std::string name;
230 
232  double constant;
233 
235  double lb;
236 
238  double ub;
239 
243  bool IsEqual(Constraint *that);
244 };//class Constraint
245 
246 
252 {
253 public:
254 
256  Constraints();
257 
259  ~Constraints();
260 
265 
269 
273  bool IsEqual(Constraints *that);
274 };//class Constraints
275 
276 
289 {
290 public:
291 
294 
297 
302 
307 
310 
313 
323 
328 };//class LinearConstraintCoefficients
329 
330 
341 {
342 public:
343 
345  QuadraticTerm();
346 
348  ~QuadraticTerm();
349 
353  int idx;
354 
358  int idxOne;
359 
363  int idxTwo;
364 
366  double coef;
367 
371  bool IsEqual(QuadraticTerm *that);
372 }; // QuadraticTerm
373 
374 
381 {
382 public:
383 
386 
389 
394 
398 
402  bool IsEqual(QuadraticCoefficients *that);
403 }; // QuadraticCoefficients
404 
405 
410 class Nl
411 {
412 public:
414  int idx;
415 
421 
428 
431 
435  Nl();
436 
440  ~Nl();
441 
445  bool IsEqual(Nl *that);
446 };//end Nl
447 
453 {
454 public:
455 
458 
461 
467 
469  Nl **nl;
470 
474  bool IsEqual(NonlinearExpressions *that);
475 }; // NonlinearExpressions
476 
477 
482 class Matrices
483 {
484 public:
485 
487  Matrices();
488 
490  ~Matrices();
491 
497 
500 
504  bool IsEqual(Matrices *that);
505 
515  bool setRandom(double density, bool conformant, int iMin, int iMax);
516 
522  bool deepCopyFrom(Matrices *that);
523 }; // Matrices
524 
525 
530 class Cone
531 {
532 public:
533 
535  Cone();
536 
538  virtual ~Cone();
539 
545 
554 
557 
559  std::string name;
560 
562  int idx;
563 
567  virtual std::string getConeName();
568 
575  virtual std::string getConeInXML() = 0;
576 
577 
581  bool IsEqual(Cone *that);
582 
592  bool setRandom(double density, bool conformant, int iMin, int iMax);
593 
599  bool deepCopyFrom(Cone *that);
600 }; // Cone
601 
609 class NonnegativeCone : public Cone
610 {
611 public:
615  NonnegativeCone();
616 
621 
625  virtual std::string getConeName();
626 
633  virtual std::string getConeInXML();
634 
638  bool IsEqual(NonnegativeCone *that);
639 
649  bool setRandom(double density, bool conformant, int iMin, int iMax);
650 
656  bool deepCopyFrom(NonnegativeCone *that);
657 
658 };//end NonnegativeCone
659 
667 class NonpositiveCone : public Cone
668 {
669 public:
673  NonpositiveCone();
674 
679 
683  virtual std::string getConeName();
684 
691  virtual std::string getConeInXML();
692 
696  bool IsEqual(NonpositiveCone *that);
697 
707  bool setRandom(double density, bool conformant, int iMin, int iMax);
708 
714  bool deepCopyFrom(NonpositiveCone *that);
715 
716 };//end NonpositiveCone
717 
718 
726 class OrthantCone : public Cone
727 {
728 public:
733  double* ub;
734  double* lb;
735 
739  OrthantCone();
740 
744  ~OrthantCone();
745 
749  virtual std::string getConeName();
750 
757  virtual std::string getConeInXML();
758 
762  bool IsEqual(OrthantCone *that);
763 
773  bool setRandom(double density, bool conformant, int iMin, int iMax);
774 
780  bool deepCopyFrom(OrthantCone *that);
781 };//end OrthantCone
782 
786 class PolyhedralCone : public Cone
787 {
788 public:
789 
791  PolyhedralCone();
792 
794  ~PolyhedralCone();
795 
801 
809 
811  int coneType;
812 
814  int idx;
815 
818 
822  virtual std::string getConeName();
823 
830  virtual std::string getConeInXML();
831 
835  bool IsEqual(PolyhedralCone *that);
836 
846  bool setRandom(double density, bool conformant, int iMin, int iMax);
847 
853  bool deepCopyFrom(PolyhedralCone *that);
854 }; // PolyhedralCone
855 
856 
860 class QuadraticCone : public Cone
861 {
862 public:
863 
865  QuadraticCone();
866 
868  ~QuadraticCone();
869 
875 
883 
885  int coneType;
886 
888  int idx;
889 
898 
909 
913  virtual std::string getConeName();
914 
921  virtual std::string getConeInXML();
922 
926  bool IsEqual(QuadraticCone *that);
927 
937  bool setRandom(double density, bool conformant, int iMin, int iMax);
938 
944  bool deepCopyFrom(QuadraticCone *that);
945 }; // QuadraticCone
946 
947 
952 {
953 public:
954 
957 
960 
966 
974 
976  int coneType;
977 
979  int idx;
980 
989 
1001 
1005  virtual std::string getConeName();
1006 
1013  virtual std::string getConeInXML();
1014 
1018  bool IsEqual(RotatedQuadraticCone *that);
1019 
1029  bool setRandom(double density, bool conformant, int iMin, int iMax);
1030 
1036  bool deepCopyFrom(RotatedQuadraticCone *that);
1037 }; // RotatedQuadraticCone
1038 
1039 /* Not yet implemented:
1040  ENUM_CONE_TYPE_normed,
1041 */
1042 
1046 class SemidefiniteCone : public Cone
1047 {
1048 public:
1049 
1051  SemidefiniteCone();
1052 
1055 
1061 
1069 
1072 
1074  int idx;
1075 
1077  std::string semidefiniteness;
1078 
1081 
1085  virtual std::string getConeName();
1086 
1093  virtual std::string getConeInXML();
1094 
1098  bool IsEqual(SemidefiniteCone *that);
1099 
1109  bool setRandom(double density, bool conformant, int iMin, int iMax);
1110 
1116  bool deepCopyFrom(SemidefiniteCone *that);
1117 }; // SemidefiniteCone
1118 
1119 
1128 {
1129 public:
1134 
1139 
1143  virtual std::string getConeName();
1144 
1151  virtual std::string getConeInXML();
1152 
1156  bool IsEqual(CopositiveMatricesCone *that);
1157 
1167  bool setRandom(double density, bool conformant, int iMin, int iMax);
1168 
1175 
1176 };//end CopositiveMatricesCone
1177 
1178 
1187 {
1188 public:
1194 
1199 
1203  virtual std::string getConeName();
1204 
1212  virtual std::string getConeInXML();
1213 
1218 
1228  bool setRandom(double density, bool conformant, int iMin, int iMax);
1229 
1236 
1237 };//end CompletelyPositiveMatricesCone
1238 
1239 /* Not yet implemented:
1240  ENUM_CONE_TYPE_hyperbolicity,
1241  ENUM_CONE_TYPE_nonnegativePolynomials,
1242  ENUM_CONE_TYPE_moments,
1243 */
1244 
1248 class ProductCone : public Cone
1249 {
1250 public:
1251 
1253  ProductCone();
1254 
1256  ~ProductCone();
1257 
1263 
1271 
1274 
1276  int idx;
1277 
1282 
1286  virtual std::string getConeName();
1287 
1294  virtual std::string getConeInXML();
1295 
1299  bool IsEqual(ProductCone *that);
1300 
1310  bool setRandom(double density, bool conformant, int iMin, int iMax);
1311 
1312 
1318  bool deepCopyFrom(ProductCone *that);
1319 }; // ProductCone
1320 
1324 class IntersectionCone : public Cone
1325 {
1326 public:
1327 
1329  IntersectionCone();
1330 
1333 
1339 
1347 
1350 
1352  int idx;
1353 
1358 
1362  virtual std::string getConeName();
1363 
1370  virtual std::string getConeInXML();
1371 
1375  bool IsEqual(IntersectionCone *that);
1376 
1386  bool setRandom(double density, bool conformant, int iMin, int iMax);
1387 
1393  bool deepCopyFrom(IntersectionCone *that);
1394 }; // IntersectionCone
1395 
1396 
1400 class DualCone : public Cone
1401 {
1402 public:
1403 
1405  DualCone();
1406 
1408  ~DualCone();
1409 
1415 
1423 
1426 
1428  int idx;
1429 
1432 
1436  virtual std::string getConeName();
1437 
1441  bool IsEqual(DualCone *that);
1442 
1452  bool setRandom(double density, bool conformant, int iMin, int iMax);
1453 
1459  bool deepCopyFrom(DualCone *that);
1460 }; // DualCone
1461 
1465 class PolarCone : public Cone
1466 {
1467 public:
1468 
1470  PolarCone();
1471 
1473  ~PolarCone();
1474 
1480 
1488 
1491 
1493  int idx;
1494 
1497 
1501  virtual std::string getConeName();
1502 
1506  bool IsEqual(PolarCone *that);
1507 
1517  bool setRandom(double density, bool conformant, int iMin, int iMax);
1518 
1524  bool deepCopyFrom(PolarCone *that);
1525 }; // PolarCone
1526 
1527 
1532 class Cones
1533 {
1534 public:
1535 
1537  Cones();
1538 
1540  ~Cones();
1541 
1547 
1550 
1554  bool IsEqual(Cones *that);
1555 
1564  bool setRandom(double density, bool conformant, int iMin, int iMax);
1565 
1571  bool deepCopyFrom(Cones *that);
1572 }; // Cones
1573 
1574 
1580 {
1581 public:
1584 
1587 
1592 
1597 
1600 
1603 
1606 
1609 
1611  std::string name;
1612 
1616  char varType;
1617 
1619  MatrixVar();
1620 
1622  ~MatrixVar();
1623 
1627  bool IsEqual(MatrixVar *that);
1628 }; // MatrixVar
1629 
1630 
1636 {
1637 public:
1640 
1643 
1645  MatrixVariables();
1646 
1648  ~MatrixVariables();
1649 
1653  bool IsEqual(MatrixVariables *that);
1654 }; // MatrixVariables
1655 
1656 
1662 {
1663 public:
1666 
1669 
1674 
1679 
1684 
1687 
1689  std::string name;
1690 
1692  MatrixObj();
1693 
1695  ~MatrixObj();
1696 
1700  bool IsEqual(MatrixObj *that);
1701 }; // MatrixObj
1702 
1703 
1709 {
1710 public:
1711 
1713  MatrixObjectives();
1714 
1717 
1720 
1723 
1724 
1728  bool IsEqual(MatrixObjectives *that);
1729 }; // MatrixObjectives
1730 
1731 
1737 {
1738 public:
1741 
1744 
1749 
1754 
1757 
1760 
1763 
1766 
1768  std::string name;
1769 
1771  MatrixCon();
1772 
1774  ~MatrixCon();
1775 
1779  bool IsEqual(MatrixCon *that);
1780 }; // MatrixCon
1781 
1782 
1788 {
1789 public:
1790 
1793 
1796 
1799 
1802 
1803 
1807  bool IsEqual(MatrixConstraints *that);
1808 }; // MatrixConstraints
1809 
1817 {
1818 public:
1820  int idx;
1821 
1827 
1830 
1837 
1839  MatrixExpression();
1840 
1843 
1847  bool IsEqual(MatrixExpression *that);
1848 }; // MatrixExpression
1849 
1850 
1856 {
1857 public:
1860 
1865 
1868 
1871 
1875  bool IsEqual(MatrixExpressions *that);
1876 }; // MatrixExpressions
1877 
1883 {
1884 public:
1887 
1890 
1893 
1896 
1899 
1902 
1903 
1907  bool IsEqual(MatrixProgramming *that);
1908 
1918  bool setRandom(double density, bool conformant, int iMin, int iMax);
1919 
1925  bool deepCopyFrom(MatrixProgramming *that);
1926 }; // MatrixProgramming
1927 
1928 
1934 {
1935 public:
1936 
1939 
1942 
1944  int idx;
1945 }; // TimeDomainStageVar
1946 
1952 {
1953 public:
1954 
1957 
1960 
1963 
1966 
1969 }; // TimeDomainStageVariables
1970 
1971 
1977 {
1978 public:
1979 
1982 
1985 
1987  int idx;
1988 }; // TimeDomainStageCon
1989 
1995 {
1996 public:
1997 
2000 
2003 
2006 
2009 
2012 }; // TimeDomainStageConstraints
2013 
2014 
2020 {
2021 public:
2022 
2025 
2028 
2030  int idx;
2031 }; // TimeDomainStageObj
2032 
2038 {
2039 public:
2040 
2043 
2046 
2049 
2052 
2055 }; // TimeDomainStageObjectives
2056 
2057 
2063 {
2064 public:
2065 
2067  TimeDomainStage();
2068 
2070  ~TimeDomainStage();
2071 
2075  std::string name;
2076 
2079 
2082 
2085 }; // TimeDomainStage
2086 
2092 {
2093 public:
2094 
2096  TimeDomainStages();
2097 
2100 
2105 
2108 }; // Stages
2109 
2115 {
2116 public:
2117 
2120 
2123 
2127  double start;
2128 
2132  double horizon;
2133 }; // Interval
2134 
2140 {
2141 public:
2142 
2144  TimeDomain();
2145 
2147  ~TimeDomain();
2148 
2152 
2156 }; // TimeDomain
2157 
2175 {
2176 public:
2177 
2179  InstanceData();
2180 
2182  ~InstanceData();
2183 
2186 
2189 
2192 
2197 
2202 
2207 
2212 
2217 
2222 
2227 
2231  bool IsEqual(InstanceData *that);
2232 }; // class InstanceData
2233 
2234 
2263 {
2264 public:
2265 
2267  OSInstance();
2268 
2270  ~OSInstance();
2271 
2276 
2279 
2283  bool IsEqual(OSInstance *that);
2284 
2289 
2294 
2299 
2304 
2305 private:
2310  std::string m_sInstanceName;
2314  std::string m_sInstanceSource;
2322  std::string m_sInstanceCreator;
2326  std::string m_sInstanceLicence;
2327 
2328 
2334 
2339 
2344 
2349 
2354 
2359 
2364 
2368  std::string* m_msVariableNames;
2369 
2375 
2380 
2385 
2386 
2392 
2397 
2402 
2406  std::string* m_msObjectiveNames;
2407 
2411  std::string* m_msMaxOrMins;
2412 
2417 
2422 
2427 
2433 
2438 
2444 
2445 
2451 
2456 
2461 
2465  std::string* m_msConstraintNames;
2466 
2471 
2476 
2482 
2488 
2489 
2496 
2502 
2508 
2515 
2522 
2523 
2529 
2534 
2539 
2544 
2550 
2556 
2560 
2561 
2568 
2574 
2581 
2588 
2594 
2600 
2601 
2607 
2613 
2618 
2623 
2629 
2634 
2639 
2645 
2651 
2656 
2661 
2666 
2670  double *m_mdJacValue;
2671 
2677 
2682 
2688 
2697  std::map<int, ScalarExpressionTree*> m_mapExpressionTrees;
2698 
2703  std::map<int, int> m_mapOSADFunRangeIndex;
2704 
2713  std::map<int, MatrixExpressionTree*> m_mapMatrixExpressionTrees;
2714 
2720 
2725 
2730 
2736 
2741 
2747 
2753 
2761  std::map<int, ScalarExpressionTree*> m_mapExpressionTreesMod ;
2762 
2769 
2775 
2781 
2786 
2791 
2796 
2802  std::map<int, std::vector<OSnLNode*> > m_mapExpressionTreesInPostfix ;
2803 
2809 
2815 
2816 
2821  std::vector<double> m_vdX;
2822 
2826  std::vector<double> m_vdYval;
2827 
2832  std::vector<bool> m_vbLagHessNonz;
2833 
2837  std::vector<double> m_vdYjacval;
2838 
2842  std::vector<double> m_vdw;
2843 
2847  std::vector<double> m_vdLambda;
2848 
2852  std::vector<double> m_vdDomainUnitVec;
2853 
2857  std::vector<double> m_vdRangeUnitVec;
2858 
2859 
2865 
2870 
2876 
2882 
2887 
2892 
2896  std::string* m_msMatrixNames;
2897 
2906 
2907 #if 0
2908 
2930  GeneralSparseMatrix** m_mExpandedMatricesInColumnMajor;
2931 
2935  GeneralSparseMatrix** m_mExpandedMatricesInRowMajor;
2936 
2942  ExpandedMatrixBlocks** m_mMatrixBlocksInColumnMajor;
2943 
2949  OSnLMNode *m_mMatrixTransformation;
2950 #endif
2951 
2957 
2962 
2967 
2972 
2973 
2979 
2984 
2989 
2994 
2999 
3003  std::string m_sTimeDomainFormat;
3004 
3009 
3010 
3011 
3012 
3017 
3022 
3027 
3032 
3037 
3042 
3043 
3050  bool processVariables();
3051 
3058  bool processObjectives();
3059 
3066  bool processConstraints();
3067 
3075 
3082  bool processMatrices();
3083 
3084 public:
3085 
3090  std::string getInstanceName();
3091 
3096  std::string getInstanceSource();
3097 
3103  std::string getInstanceDescription();
3104 
3109  std::string getInstanceCreator();
3110 
3116  std::string getInstanceLicence();
3117 
3118 
3124  int getVariableNumber();
3125 
3132  std::string* getVariableNames();
3133 
3141  //double* getVariableInitialValues();
3142 
3150  //std::string* getVariableInitialStringValues();
3151 
3163  char* getVariableTypes();
3164 
3170 
3176 
3182 
3188 
3194 
3201  double* getVariableLowerBounds();
3202 
3209  double* getVariableUpperBounds();
3210 
3216  int getObjectiveNumber();
3217 
3218 
3225  std::string* getObjectiveNames();
3226 
3233  std::string* getObjectiveMaxOrMins();
3234 
3235 
3245 
3252  double* getObjectiveConstants();
3253 
3260  double* getObjectiveWeights();
3261 
3273 
3280  double** getDenseObjectiveCoefficients();
3281 
3287  int getConstraintNumber();
3288 
3295  std::string* getConstraintNames();
3296 
3303  double* getConstraintLowerBounds();
3304 
3311  double *getConstraintUpperBounds();
3312 
3319  double *getConstraintConstants();
3320 
3334  char* getConstraintTypes();
3335 
3342 
3343 
3351 
3352 
3360 
3368 
3375 
3385 
3393  int* getQuadraticRowIndexes();
3394 
3401 
3402 
3403 /*********************************************************************
3404  * *
3405  * Here we have a number of methods for dealing with *
3406  * scalar-valued expression trees. *
3407  * Even though the tree can contain OSnLMNodes (e.g., to compute *
3408  * the trace of a matrix), the root of the tree is of type OSnLNode. *
3409  * *
3410  *********************************************************************/
3411 
3418 
3425 
3432 
3440 
3449  std::vector<ExprNode*> getNonlinearExpressionTreeInPostfix( int rowIdx);
3450 
3458  std::vector<ExprNode*> getNonlinearExpressionTreeModInPostfix( int rowIdx);
3459 
3466  std::vector<ExprNode*> getNonlinearExpressionTreeInPrefix( int rowIdx);
3467 
3475  std::string getNonlinearExpressionTreeInInfix( int rowIdx);
3476 
3477 
3485  std::vector<ExprNode*> getNonlinearExpressionTreeModInPrefix( int rowIdx);
3486 
3487 
3492 
3497 
3503  std::map<int, ScalarExpressionTree* > getAllNonlinearExpressionTrees();
3504 
3508  std::map<int, ScalarExpressionTree* > getAllNonlinearExpressionTreesMod();
3509 
3517 
3518 
3525 
3526 
3535 
3543 
3549  int getMatrixNumber();
3550 
3564 
3575 
3583 // int getNumberOfBlocksForMatrix(int n);
3584 
3592  int getNumberOfColumnsForMatrix(int n);
3593 
3601  int getNumberOfRowsForMatrix(int n);
3602 
3610  int getNumberOfValuesForMatrix(int n);
3611 
3619  std::string getMatrixName(int n);
3620 
3627  bool matrixHasBase(int n);
3628  bool matrixHasElements(int n);
3629  bool matrixHasTransformations(int n);
3630  bool matrixHasBlocks(int n);
3634 
3642  OSMatrix* getMatrix(int n);
3643 
3652 
3661 
3669 // SymmetricMatrixBlocks* getSymmetricMatrixBlocks(int n);
3670 
3682  GeneralSparseMatrix* getMatrixBlockInColumnMajorForm(int n, int columnIdx, int rowIdx);
3683 
3684 
3685 /***********************************************************************
3686  * *
3687  * Here we have a number of methods for dealing with *
3688  * matrix programming and matrix-valued expression trees. *
3689  * Even though the tree can contain OSnLNodes (e.g., to compute the *
3690  * scalar multiple of a matrix), the root of the tree is an OSnLMNode. *
3691  * *
3692  ***********************************************************************/
3693 
3700 
3707 
3714 
3721 
3728 
3735 
3742  std::vector<ExprNode*> getMatrixExpressionTreeInPostfix( int rowIdx);
3743 
3751  std::vector<ExprNode*> getMatrixExpressionTreeModInPostfix( int rowIdx);
3752 
3759  std::vector<ExprNode*> getMatrixExpressionTreeInPrefix( int rowIdx);
3760 
3768  std::string getMatrixExpressionTreeInInfix( int rowIdx);
3769 
3770 
3774  std::map<int, MatrixExpressionTree* > getAllMatrixExpressionTrees();
3775 
3776 
3780  std::map<int, MatrixExpressionTree* > getAllMatrixExpressionTreesMod();
3781 
3789 
3790 
3797 
3798 //===============================================
3799 
3805  std::string getTimeDomainFormat();
3806 
3813 
3819  std::string* getTimeDomainStageNames();
3820 
3827 
3828 
3835 
3842 
3848  int** getTimeDomainStageVarList();
3849 
3855  int** getTimeDomainStageConList();
3856 
3862  int** getTimeDomainStageObjList();
3863 
3869  double getTimeDomainIntervalStart();
3870 
3877 
3878 
3879 
3880  // the set() methods
3881 
3882 
3889  bool setInstanceName(std::string name);
3890 
3897  bool setInstanceSource(std::string source);
3898 
3905  bool setInstanceDescription(std::string description);
3906 
3913  bool setInstanceCreator(std::string fileCreator);
3914 
3921  bool setInstanceLicence(std::string licence);
3922 
3923 
3930  bool setVariableNumber(int number);
3931 
3947  bool addVariable(int index, std::string name, double lowerBound, double upperBound, char type);
3948 
3968  bool setVariables(int number, std::string* names, double* lowerBounds,
3969  double* upperBounds, char* types);
3970 
3971 
3978  bool setObjectiveNumber(int number);
3979 
3997  bool addObjective(int index, std::string name, std::string maxOrMin, double constant, double weight, SparseVector* objectiveCoefficients);
3998 
4014  bool setObjectives(int number, std::string *names, std::string *maxOrMins, double *constants, double *weights, SparseVector **objectitiveCoefficients);
4015 
4022  bool setConstraintNumber(int number);
4023 
4037  bool addConstraint(int index, std::string name, double lowerBound, double upperBound, double constant);
4038 
4052  bool setConstraints(int number, std::string* names, double* lowerBounds, double* upperBounds, double* constants);
4053 
4072  bool setLinearConstraintCoefficients(int numberOfValues, bool isColumnMajor,
4073  double* values, int valuesBegin, int valuesEnd,
4074  int* indexes, int indexesBegin, int indexesEnd,
4075  int* starts, int startsBegin, int startsEnd);
4076 
4095  bool copyLinearConstraintCoefficients(int numberOfValues, bool isColumnMajor,
4096  double* values, int valuesBegin, int valuesEnd,
4097  int* indexes, int indexesBegin, int indexesEnd,
4098  int* starts, int startsBegin, int startsEnd);
4099 
4108  bool setNumberOfQuadraticTerms(int nq);
4109 
4126  bool setQuadraticCoefficients(int number,
4127  int* rowIndexes, int* varOneIndexes, int* varTwoIndexes,
4128  double* coefficients, int begin, int end);
4129 
4130 
4145  int* rowIndexes, int* varOneIndexes, int* varTwoIndexes, double* coefficients);
4146 
4156  bool setNonlinearExpressions(int nexpr, Nl** root);
4157 
4164  bool setMatrixNumber(int number);
4165 
4188  bool addMatrix(int index, std::string name, int numberOfRows, int numberOfColumns,
4189  ENUM_MATRIX_SYMMETRY symmetry, ENUM_MATRIX_TYPE matrixType,
4190  unsigned int inumberOfChildren, MatrixNode **m_mChildren);
4191 
4192 
4199  bool setConeNumber(int number);
4200 
4227  bool addCone(int index, int numberOfRows, int numberOfColumns, ENUM_CONE_TYPE coneType,
4228  std::string name, int numberOfOtherIndexes = 0, int* otherIndexes = NULL);
4229 
4256  bool addCone(int index, int numberOfRows, int numberOfColumns, ENUM_CONE_TYPE coneType,
4257  std::string name, int numberOfComponents, int* components,
4258  int numberOfOtherIndexes = 0, int* otherIndexes = NULL);
4259 
4286  bool addCone(int index, int numberOfRows, int numberOfColumns, ENUM_CONE_TYPE coneType,
4287  std::string name, int referenceIdx, int numberOfOtherIndexes = 0, int* otherIndexes = NULL);
4288 
4314  bool addCone(int index, int numberOfRows, int numberOfColumns, ENUM_CONE_TYPE coneType,
4315  std::string name, std::string semidefiniteness, int numberOfOtherIndexes = 0, int* otherIndexes = NULL);
4316 
4343  bool addCone(int index, int numberOfRows, int numberOfColumns, ENUM_CONE_TYPE coneType,
4344  std::string name, int distortionMatrixIdx, double normFactor, int axisDirection,
4345  int numberOfOtherIndexes = 0, int* otherIndexes = NULL);
4346 
4374  bool addCone(int index, int numberOfRows, int numberOfColumns, ENUM_CONE_TYPE coneType,
4375  std::string name, int distortionMatrixIdx, double normFactor, int firstAxisDirection,
4376  int secondAxisDirection, int numberOfOtherIndexes = 0, int* otherIndexes = NULL);
4377 
4404  bool addCone(int index, int numberOfRows, int numberOfColumns, ENUM_CONE_TYPE coneType,
4405  std::string name, int distortionMatrixIdx, double normFactor, int axisDirection, double pNorm,
4406  int numberOfOtherIndexes = 0, int* otherIndexes = NULL);
4407 
4438  bool addCone(int index, int numberOfRows, int numberOfColumns, ENUM_CONE_TYPE coneType,
4439  std::string name, int maxDegree, int numberOfUB, double* ub, int numberOfLB, double* lb,
4440  int numberOfOtherIndexes = 0, int* otherIndexes = NULL);
4441 
4442 
4443  // methods to print the current model or parts of it
4444 
4449  std::string printModel( );
4450 
4458  std::string printModel( int rowIdx);
4459 
4460 
4461 
4462  // nonlinear API methods
4463 
4464 
4471 
4485  double calculateFunctionValue(int idx, double* x, bool new_x);
4486 
4501  double *calculateAllConstraintFunctionValues(double* x, double *objLambda, double *conLambda,
4502  bool new_x, int highestOrder);
4503 
4517  double *calculateAllConstraintFunctionValues(double* x, bool new_x);
4518 
4534  double *calculateAllObjectiveFunctionValues(double* x, double *objLambda, double *conLambda,
4535  bool new_x, int highestOrder);
4536 
4550  double *calculateAllObjectiveFunctionValues(double* x, bool new_x);
4551 
4552 
4568  double *conLambda, bool new_x, int highestOrder);
4569 
4570 
4586  SparseVector *calculateConstraintFunctionGradient(double* x, double *objLambda, double *conLambda,
4587  int idx, bool new_x, int highestOrder);
4588 
4602  SparseVector *calculateConstraintFunctionGradient(double* x, int idx, bool new_x );
4603 
4618  double **calculateAllObjectiveFunctionGradients(double* x, double *objLambda, double *conLambda,
4619  bool new_x, int highestOrder);
4620 
4636  double *calculateObjectiveFunctionGradient(double* x, double *objLambda, double *conLambda,
4637  int objIdx, bool new_x, int highestOrder);
4638 
4652  double *calculateObjectiveFunctionGradient(double* x, int objIdx, bool new_x );
4653 
4671  SparseHessianMatrix *calculateLagrangianHessian( double* x, double *objLambda, double *conLambda,
4672  bool new_x, int highestOrder);
4673 
4686  SparseHessianMatrix *calculateHessian( double* x, int idx, bool new_x);
4687 
4688 
4694 
4700 
4706 
4711  std::map<int, int> getAllNonlinearVariablesIndexMap( );
4712 
4718 
4725  bool addQTermsToExressionTree();
4726 
4734 
4740 
4746 
4747 #ifdef OS_HAS_CPPAD
4748 
4752  CppAD::ADFun<double> *Fad;
4753 #endif
4754 
4765  bool createOSADFun(std::vector<double> vdX );
4766 
4777  std::vector<double> forwardAD(int p, std::vector<double> vdX);
4778 
4789  std::vector<double> reverseAD(int p, std::vector<double> vdlambda);
4790 
4803  int getADSparsityHessian();
4804 
4824  bool getIterateResults(double *x, double *objLambda, double *conLambda,
4825  bool new_x, int highestOrder);
4826 
4827 
4828 
4841  bool getZeroOrderResults(double *x, double *objLambda, double *conLambda);
4842 
4855  bool getFirstOrderResults(double *x, double *objLambda, double *conLambda );
4856 
4869  bool getSecondOrderResults(double *x, double *objLambda, double *conLambda );
4870 
4871 
4881  bool initForAlgDiff();
4882 
4892  bool initObjGradients();
4893 
4894 
4900 
4901 
4905  bool setTimeDomain(std::string format);
4906 
4910  bool setTimeDomainStages(int number, std::string *names);
4911 
4918  bool setTimeDomainStageVariablesOrdered(int numberOfStages, int *numberOfVariables, int *startIdx);
4919 
4926  bool setTimeDomainStageVariablesUnordered(int numberOfStages, int *numberOfVariables, int **varIndex);
4927 
4933  bool setTimeDomainStageConstraintsOrdered(int numberOfStages, int *numberOfConstraints, int *startIdx);
4934 
4940  bool setTimeDomainStageConstraintsUnordered(int numberOfStages, int *numberOfConstraints, int **conIndex);
4941 
4947  bool setTimeDomainStageObjectivesOrdered(int numberOfStages, int *numberOfObjectives, int *startIdx);
4948 
4954  bool setTimeDomainStageObjectivesUnordered(int numberOfStages, int *numberOfObjectives, int **varIndex);
4955 
4959  bool setTimeDomainInterval(double start, double horizon);
4960 
4961 
4962 }; //class OSInstance
4963 
4964 #endif
4965 
bool IsEqual(CopositiveMatricesCone *that)
A function to check for the equality of two objects.
int numberOfExpr
numberOfExpr gives the number of expressions
Definition: OSInstance.h:1859
a data structure for holding quadratic terms
Definition: OSGeneral.h:431
int coneType
The type of the cone (one of the values in ENUM_CONE_TYPE)
Definition: OSInstance.h:811
double * getConstraintLowerBounds()
Get constraint lower bounds.
bool setTimeDomainStageVariablesOrdered(int numberOfStages, int *numberOfVariables, int *startIdx)
This sets the variables associated with each time domain stage in temporal order. ...
TimeDomain()
The TimeDomain class constructor.
~TimeDomainStageCon()
The TimeDomainStageCon class destructor.
double * getVariableLowerBounds()
Get variable lower bounds.
double * getConstraintUpperBounds()
Get constraint upper bounds.
ENUM_NL_EXPR_SHAPE shape
shape holds the shape of the nonlinear expression (linear/quadratic/convex/general) (see further up i...
Definition: OSInstance.h:1826
double * values
ScalarExpressionTree * getNonlinearExpressionTreeMod(int rowIdx)
Get the expression tree for a given row index for the modified expression trees (quadratic terms adde...
~TimeDomainStageVariables()
The TimeDomainStageVariables class destructor.
~TimeDomainStageObjectives()
The TimeDomainStageObjectives class destructor.
MatrixVar ** matrixVar
matrixVar is an array of pointers to the &lt;matrixVar&gt; children
Definition: OSInstance.h:1642
int * getTimeDomainStageNumberOfConstraints()
Get the number of constraints contained in each time stage.
bool IsEqual(Cones *that)
A function to check for the equality of two objects.
int numberOfMatrixCon
numberOfMatrixCon gives the number of &lt;matrixCon&gt; children
Definition: OSInstance.h:1798
bool deepCopyFrom(ProductCone *that)
A function to make a deep copy of an instance of this class.
bool m_bCppADMustReTape
is true if a CppAD Expresion Tree has an expression that can change depending on the value of the inp...
Definition: OSInstance.h:2780
std::string name
name corresponds to the optional attribute that holds the variable name, the default value is empty ...
Definition: OSInstance.h:71
Constraints * constraints
constraints is a pointer to a Constraints object
Definition: OSInstance.h:2191
bool setQuadraticCoefficients(int number, int *rowIndexes, int *varOneIndexes, int *varTwoIndexes, double *coefficients, int begin, int end)
set quadratic coefficients into the QuadraticCoefficients-&gt;qTerm data structure
int getNumberOfIntegerVariables()
getNumberOfIntegerVariables
~TimeDomainStageConstraints()
The TimeDomainStageConstraints class destructor.
bool m_bProcessLinearConstraintCoefficients
-—— data items for linear constraint coefficients -——
Definition: OSInstance.h:2495
bool processConstraints()
process constraints.
int numberOfColumns
Definition: OSInstance.h:1262
int idx
cones are referenced by an (automatically created) index
Definition: OSInstance.h:888
bool getSparseJacobianFromColumnMajor()
~QuadraticCone()
The QuadraticCone class destructor.
~MatrixObjectives()
The MatrixObjectives class destructor.
virtual std::string getConeInXML()
Write a SemidefiniteCone object in XML format.
char * getVariableTypes()
Get variable initial values.
int idx
cones are referenced by an (automatically created) index
Definition: OSInstance.h:1276
bool m_bProcessMatrices
-—— data items for matrices -——
Definition: OSInstance.h:2864
int getNumberOfMatrixVariables()
Get the number of matrix variables.
int idx
cones are referenced by an (automatically created) index
Definition: OSInstance.h:1074
ENUM_MATRIX_TYPE * m_miMatrixType
m_miMatrixType holds the type of each matrix.
Definition: OSInstance.h:2881
virtual ~Cone()
The Cone class destructor.
bool deepCopyFrom(RotatedQuadraticCone *that)
A function to make a deep copy of an instance of this class.
std::string name
the name of the objective function
Definition: OSInstance.h:152
bool setConeNumber(int number)
set the number of cones
bool m_bDuplicateExpressionTreesMap
m_bDuplicateExpressionTreeMap is true if m_mapExpressionTrees was duplicated.
Definition: OSInstance.h:2785
This file defines the OSnLNode class along with its derived classes.
bool IsEqual(RotatedQuadraticCone *that)
A function to check for the equality of two objects.
ScalarExpressionTree * getNonlinearExpressionTree(int rowIdx)
Get the expression tree for a given row index.
The in-memory representation of a polyhedral cone.
Definition: OSInstance.h:786
The in-memory representation of a rotated quadratic cone.
Definition: OSInstance.h:951
bool addVariable(int index, std::string name, double lowerBound, double upperBound, char type)
add a variable.
~MatrixVariables()
The MatrixVariables class destructor.
virtual std::string getConeInXML()
Write an IntersectionCone object in XML format.
The in-memory representation of the &lt;matrices&gt; element.
Definition: OSInstance.h:482
std::string name
name corresponds to the optional attribute that holds the name of the stage; the default value is emp...
Definition: OSInstance.h:2075
bool bConstraintsModified
bConstraintsModified is true if the constraints data has been modified.
Definition: OSInstance.h:2298
InstanceData()
The InstanceData class constructor.
~Constraints()
The Constraints class destructor.
Definition: OSInstance.cpp:713
a sparse matrix data structure for matrices that can hold nonconstant values
Definition: OSMatrix.h:1654
ENUM_CONE_TYPE
Definition: OSParameters.h:865
int numberOfColumns
numberOfColumns gives the number of columns of this matrix
Definition: OSInstance.h:1743
bool deepCopyFrom(OrthantCone *that)
A function to make a deep copy of an instance of this class.
bool setRandom(double density, bool conformant, int iMin, int iMax)
A function to make a random instance of this class.
SparseHessianMatrix * 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 t...
The in-memory representation of the &lt;obj&gt; element.
Definition: OSInstance.h:2019
bool IsEqual(Nl *that)
A function to check for the equality of two objects.
bool bAMatrixModified
bAMatrixModified is true if the A matrix data has been modified.
Definition: OSInstance.h:2303
int idx
idx gives the index of this variable
Definition: OSInstance.h:1944
bool addQTermsToExpressionTree()
This method adds quadratic terms into the array of expression trees.
~Variables()
The Variables class destructor.
Definition: OSInstance.cpp:586
int getNumberOfRowsForMatrix(int n)
Get the number of rows in the matrix.
bool getIterateResults(double *x, double *objLambda, double *conLambda, bool new_x, int highestOrder)
end revised AD code
int numberOfMatrixVar
numberOfMatrixVar gives the number of &lt;matrixVar&gt; children
Definition: OSInstance.h:1639
int * getTimeDomainStageNumberOfVariables()
Get the number of variables contained in each time stage.
int numberOfOtherIndexes
Multidimensional tensors can also form cones (the Kronecker product, for instance, can be thought of as a four-dimensional tensor).
Definition: OSInstance.h:1067
The in-memory representation of the &lt;matrixObj&gt; element.
Definition: OSInstance.h:1661
LinearConstraintCoefficients()
The LinearConstraintCoefficients class constructor.
Definition: OSInstance.cpp:734
IntVector * rowIdx
a pointer of row indices if the problem is stored by column
Definition: OSInstance.h:309
bool setRandom(double density, bool conformant, int iMin, int iMax)
A function to make a random instance of this class.
double calculateFunctionValue(int idx, double *x, bool new_x)
Calculate the function value for function (constraint or objective) indexed by idx.
~SemidefiniteCone()
The SemidefiniteCone class destructor.
virtual std::string getConeInXML()
Write a NonnegativeCone object in XML format.
int numberOfRows
Every cone has (at least) two dimensions; no distinction is made between vector cones and matrix cone...
Definition: OSInstance.h:1059
int m_iMatrixConNumber
m_iMatrixConNumber holds the number of matrix constraints
Definition: OSInstance.h:2966
int m_iNumberOfStringVariables
m_iNumberOfStringVariables holds the number of string-valued variables.
Definition: OSInstance.h:2363
int m_iConstraintNumber
m_iConstraintNumber is the number of constraints.
Definition: OSInstance.h:2455
bool IsEqual(MatrixVariables *that)
A function to check for the equality of two objects.
int m_iJacValueSize
m_iJacValueSize is the number of nonzero partial derivates in the Jacobian.
Definition: OSInstance.h:2655
bool deepCopyFrom(SemidefiniteCone *that)
A function to make a deep copy of an instance of this class.
virtual std::string getConeName()
std::string * m_msVariableNames
m_msVariableNames holds an array of variable names.
Definition: OSInstance.h:2368
bool bUseExpTreeForFunEval
bUseExpTreeForFunEval is set to true if you wish to use the OS Expression Tree for function evaluatio...
Definition: OSInstance.h:4899
int ubConeIdx
ubConeIdx gives a cone that must contain ubMatrix - matrixCon
Definition: OSInstance.h:1765
int getNumberOfElementConstructors(int n)
NonlinearExpressions * nonlinearExpressions
nonlinearExpressions is a pointer to a NonlinearExpressions object
Definition: OSInstance.h:2206
int orderConeIdx
orderConeIdx gives a cone that expresses preferences during the optimization x is (weakly) preferred ...
Definition: OSInstance.h:1683
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
bool setTimeDomainStageObjectivesOrdered(int numberOfStages, int *numberOfObjectives, int *startIdx)
This sets the objectives associated with each time domain stage in temporal order.
Variable()
The Variable class constructor.
Definition: OSInstance.cpp:557
bool IsEqual(Objectives *that)
A function to check for the equality of two objects.
int getVariableNumber()
Get number of variables.
MatrixExpression ** expr
a pointer to an array of linear and nonlinear expressions that evaluate to matrices ...
Definition: OSInstance.h:1864
std::vector< double > m_vdw
m_vdYval is a vector of derivatives – output from a reverse sweep
Definition: OSInstance.h:2842
std::string printModel()
Print the infix representation of the problem.
double * m_mdObjectiveConstants
m_mdObjectiveConstants holds an array of objective constants (default = 0.0).
Definition: OSInstance.h:2421
bool m_bLagrangianSparseHessianCreated
m_bLagrangianSparseHessianCreated is true if the sparse Hessian Matrix for the Lagrangian was created...
Definition: OSInstance.h:2735
bool setTimeDomainStageVariablesUnordered(int numberOfStages, int *numberOfVariables, int **varIndex)
This sets the variables associated with each time domain stage in srbitrary order.
SparseHessianMatrix * m_LagrangianSparseHessian
m_LagrangianSparseHessian is the Hessian Matrix of the Lagrangian function in sparse format ...
Definition: OSInstance.h:2729
bool deepCopyFrom(CompletelyPositiveMatricesCone *that)
A function to make a deep copy of an instance of this class.
int numberOfMatrixObj
numberOfMatrixObj gives the number of &lt;matrixObj&gt; children
Definition: OSInstance.h:1719
TimeDomain * timeDomain
timeDomain is a pointer to a TimeDomain object
Definition: OSInstance.h:2226
GeneralSparseMatrix * getMatrixCoefficientsInRowMajor(int n)
Get the (nonzero) elements of the matrix in row major form.
bool setRandom(double density, bool conformant, int iMin, int iMax)
A function to make a random instance of this class.
int idx
idx gives the index of this variable
Definition: OSInstance.h:2030
std::string name
The cone can have a name for easier identification.
Definition: OSInstance.h:559
int getNumberOfSemiContinuousVariables()
getNumberOfSemiContinuousVariables
ENUM_MATRIX_TYPE
An enum to track the many different types of values that a matrix can contain Note that these types a...
Definition: OSParameters.h:599
OrthantCone()
default constructor.
int ** m_mmiTimeDomainStageVarList
m_mmiTimeDomainStageVarList holds the list of variables in each stage.
Definition: OSInstance.h:3021
int idx
cones are referenced by an (automatically created) index
Definition: OSInstance.h:814
int referenceMatrixIdx
Polyhedral cones use a reference to a previously defined matrix for the extreme rays.
Definition: OSInstance.h:817
IntVector * factors
the list of &quot;factors&quot; contributing to the product each factor contains a reference to a previously de...
Definition: OSInstance.h:1281
bool setRandom(double density, bool conformant, int iMin, int iMax)
A function to make a random instance of this class.
std::string m_sInstanceDescription
m_sInstanceDescription holds the instance description.
Definition: OSInstance.h:2318
bool setObjectives(int number, std::string *names, std::string *maxOrMins, double *constants, double *weights, SparseVector **objectitiveCoefficients)
set all the objectives related elements.
SparseHessianMatrix * calculateHessian(double *x, int idx, bool new_x)
Calculate the Hessian of a constraint or objective function.
CompletelyPositiveMatricesCone()
default constructor.
bool m_bProcessQuadraticTerms
m_bProcessQuadraticTerms holds whether the quadratic terms are processed.
Definition: OSInstance.h:2543
bool IsEqual(Constraints *that)
A function to check for the equality of two objects.
virtual std::string getConeName()
The in-memory representation of the &lt;matrixProgramming&gt; element.
Definition: OSInstance.h:1882
TimeDomainStageObj ** obj
obj is a pointer to an array of TimeDomainStageObj object pointers
Definition: OSInstance.h:2054
int numberOfRows
Every cone has (at least) two dimensions; no distinction is made between vector cones and matrix cone...
Definition: OSInstance.h:799
bool IsEqual(Objective *that)
A function to check for the equality of two objects.
int getLinearConstraintCoefficientNumber()
Get number of specified (usually nonzero) linear constraint coefficient values.
virtual std::string getConeName()
std::string getMatrixName(int n)
Get the name of the matrix.
int * getNonlinearExpressionTreeModIndexes()
Get all the nonlinear expression tree indexes, i.e., indexes of rows (objectives or constraints) that...
ENUM_MATRIX_SYMMETRY * m_miMatrixSymmetry
m_miMatrixSymmetry holds the symmetry property of each matrix.
Definition: OSInstance.h:2875
IntVector * colIdx
a pointer of column indices if the problem is stored by row
Definition: OSInstance.h:312
std::string maxOrMin
declare the objective function to be a max or a min
Definition: OSInstance.h:157
~TimeDomainInterval()
The Interval class destructor.
std::string name
an optional name to this matrixObj
Definition: OSInstance.h:1689
QuadraticCoefficients()
The QuadraticCoefficients class constructor.
Definition: OSInstance.cpp:786
bool setRandom(double density, bool conformant, int iMin, int iMax)
A function to make a random instance of this class.
The in-memory representation of the &lt;linearConstraintCoefficients&gt; element.
Definition: OSInstance.h:288
SparseVector ** getObjectiveCoefficients()
Get objective coefficients.
TimeDomainStageConstraints()
The TimeDomainStageConstraints class constructor.
bool getFirstOrderResults(double *x, double *objLambda, double *conLambda)
Calculate first derivatives.
ObjCoef ** coef
coef is pointer to an array of ObjCoef object pointers
Definition: OSInstance.h:176
ENUM_CONE_TYPE coneType
The type of the cone.
Definition: OSInstance.h:556
bool setQuadraticTermsInNonlinearExpressions(int number, int *rowIndexes, int *varOneIndexes, int *varTwoIndexes, double *coefficients)
set quadratic terms in nonlinearExpressions
bool m_bSparseJacobianCalculated
m_bSparseJacobianCalculated is true if getJacobianSparsityPattern() has been called.
Definition: OSInstance.h:2795
bool m_bProcessObjectives
-—— data items for Objectives -——
Definition: OSInstance.h:2391
~MatrixObj()
The MatrixVar class destructor.
The in-memory representation of the objective function &lt;coef&gt; element.
Definition: OSInstance.h:110
MatrixCon ** matrixCon
matrixCon is an array of pointers to the &lt;matrixCon&gt; children
Definition: OSInstance.h:1801
std::map< int, std::vector< OSnLNode * > > m_mapExpressionTreesInPostfix
m_mapExpressionTreesInPostfix holds a hash map of expression trees in postfix format, with the key being the row index and value being the expression tree representing the nonlinear expression of that row.
Definition: OSInstance.h:2802
int idxTwo
idxTwo is the index of the second variable in the quadratic term
Definition: OSInstance.h:363
QuadraticTerm ** qTerm
qTerm is a pointer to an array of QuadraticTerm object pointers
Definition: OSInstance.h:397
Constraint ** con
con is pointer to an array of Constraint object pointers
Definition: OSInstance.h:268
bool IsEqual(MatrixExpressions *that)
A function to check for the equality of two objects.
bool m_bProcessExpressionTrees
m_bProcessExpressionTrees is true if the expression trees have been processed.
Definition: OSInstance.h:2633
MatrixConstraints * matrixConstraints
a pointer to the matrixConstraints object
Definition: OSInstance.h:1898
bool matrixHasBlocks(int n)
int * getNonlinearExpressionTreeIndexes()
Get all the nonlinear expression tree indexes, i.e., indexes of rows (objectives or constraints) that...
MatrixVar()
The MatrixVar class constructor.
SparseJacobianMatrix * calculateAllConstraintFunctionGradients(double *x, double *objLambda, double *conLambda, bool new_x, int highestOrder)
Calculate the gradient of all constraint functions.
int numberOfOtherIndexes
Multidimensional tensors can also form cones (the Kronecker product, for instance, can be thought of as a four-dimensional tensor).
Definition: OSInstance.h:881
double * m_mdConstraintConstants
m_mdConstraintConstants holds an array of constraint constants (default = 0.0).
Definition: OSInstance.h:2481
TimeDomainStageVariables * variables
variables is a pointer to a TimeDomainVariables object
Definition: OSInstance.h:2078
std::string m_sInstanceSource
m_sInstanceSource holds the instance source.
Definition: OSInstance.h:2314
bool IsEqual(NonlinearExpressions *that)
A function to check for the equality of two objects.
~PolyhedralCone()
The PolyhedralCone class destructor.
MatrixCon()
The MatrixCon class constructor.
TimeDomainInterval()
The Interval class constructor.
int numberOfConstraints
numberOfConstraints gives the number of constraints contained in this stage
Definition: OSInstance.h:2005
bool setRandom(double density, bool conformant, int iMin, int iMax)
A function to make a random instance of this class.
bool IsEqual(OSInstance *that)
A function to check for the equality of two objects.
TimeDomainStageCon ** con
con is a pointer to an array of TimeDomainStageCon object pointers
Definition: OSInstance.h:2011
Cone()
The Cone class constructor.
Definition: OSInstance.cpp:987
std::string getMatrixExpressionTreeInInfix(int rowIdx)
Get the infix representation for a given row (or objective function) index.
~Cones()
The Cones class destructor.
Definition: OSInstance.cpp:948
ObjCoef()
The ObjCoef class constructor.
Definition: OSInstance.cpp:608
std::vector< ExprNode * > getNonlinearExpressionTreeModInPrefix(int rowIdx)
Get the prefix tokens for a given row index for the modified Expression Tree (quadratic terms added)...
TimeDomainStageObjectives()
The TimeDomainStageObjectives class constructor.
The in-memory representation of a generic cone Specific cone types are derived from this generic clas...
Definition: OSInstance.h:530
double * m_mdConstraintUpperBounds
m_mdConstraintUpperBounds holds an array of constraint upper bounds (default = INF).
Definition: OSInstance.h:2475
bool IsEqual(ObjCoef *that)
A function to check for the equality of two objects.
int numberOfRows
Every cone has (at least) two dimensions; no distinction is made between vector cones and matrix cone...
Definition: OSInstance.h:873
int numberOfColumns
Definition: OSInstance.h:874
std::vector< double > m_vdDomainUnitVec
m_vdDomainUnitVec is a unit vector in the domain space
Definition: OSInstance.h:2852
int idx
cones are referenced by an (automatically created) index
Definition: OSInstance.h:1493
MatrixExpression ** getMatrixExpressions()
Get the pointers to the roots of all matrix expression trees.
void duplicateExpressionTreesMap()
duplicate the map of expression trees.
int getNumberOfNonlinearExpressionTreeModIndexes()
Get the number of unique nonlinear expression tree indexes after modifying the expression tree to con...
The OSnLMNode Class for nonlinear expressions involving matrices.
Definition: OSnLNode.h:1760
int numberOfRows
numberOfRows gives the number of rows of this matrix
Definition: OSInstance.h:1665
Variables()
The Variables class constructor.
Definition: OSInstance.cpp:577
~ObjCoef()
The ObjCoef class destructor.
Definition: OSInstance.cpp:617
bool IsEqual(NonnegativeCone *that)
A function to check for the equality of two objects.
std::string * m_msMaxOrMins
m_msMaxOrMins holds a std::string array of objective maxOrMins (&quot;max&quot; or &quot;min&quot;).
Definition: OSInstance.h:2411
a generic class from which we derive matrix constructors (BaseMatrix, MatrixElements, MatrixTransformation and MatrixBlocks) as well as matrix types (OSMatrix and MatrixBlock).
Definition: OSMatrix.h:50
The in-memory representation of the element.
Definition: OSInstance.h:1933
int getObjectiveNumber()
Get number of objectives.
char type
type corresponds to the attribute that holds the variable type: C (Continuous), B (binary)...
Definition: OSInstance.h:66
int m_iVariableNumber
m_iVariableNumber holds the variable number.
Definition: OSInstance.h:2338
bool m_bNonlinearExpressionTreeIndexesProcessed
m_bNonlinearExpressionTreeIndexesProcessed is true if getNonlinearExpressionTreeIndexes() has been ca...
Definition: OSInstance.h:2573
bool IsEqual(MatrixExpression *that)
A function to check for the equality of two objects.
QuadraticCone()
The QuadraticCone class constructor.
int numberOfVariables
numberOfVariables is the number of variables in the instance
Definition: OSInstance.h:94
int lbConeIdx
lbConeIdx gives a cone that must contain matrixCon - lbMatrix
Definition: OSInstance.h:1759
~Nl()
default destructor.
Definition: OSInstance.cpp:828
int m_iObjectiveNumberNonlinear
m_iObjectiveNumber is the number of objective functions with a nonlinear term.
Definition: OSInstance.h:2401
int * otherIndexes
Definition: OSInstance.h:882
The in-memory representation of the &lt;instanceData&gt; element.
Definition: OSInstance.h:2174
bool IsEqual(QuadraticCoefficients *that)
A function to check for the equality of two objects.
bool IsEqual(SemidefiniteCone *that)
A function to check for the equality of two objects.
std::map< int, int > getAllNonlinearVariablesIndexMap()
~Objective()
The Objective class destructor.
Definition: OSInstance.cpp:638
std::string * getVariableNames()
Get variable names.
bool IsEqual(MatrixVar *that)
A function to check for the equality of two objects.
~OSInstance()
The OSInstance class destructor.
Definition: OSInstance.cpp:167
ENUM_NL_EXPR_SHAPE shape
shape holds the shape of the nonlinear expression (linear/quadratic/convex/general) (see further up i...
Definition: OSInstance.h:420
int coneType
The type of the cone (one of the values in ENUM_CONE_TYPE)
Definition: OSInstance.h:1425
std::map< int, ScalarExpressionTree * > m_mapExpressionTreesMod
m_mapExpressionTreesMod holds a map of expression trees, with the key being the row index and value b...
Definition: OSInstance.h:2761
virtual std::string getConeInXML()
Write a CopositiveMatricesCone object in XML format.
bool m_bProcessConstraints
-—— data items for Constraints -——
Definition: OSInstance.h:2450
The in-memory representation of the &lt;constraints&gt; child of the &lt;stage&gt; element.
Definition: OSInstance.h:1994
std::map< int, ScalarExpressionTree * > m_mapExpressionTrees
m_mapExpressionTrees holds a hash map of scalar-valued expression tree pointers.
Definition: OSInstance.h:2697
int getNumberOfNonlinearExpressions()
Get number of nonlinear expressions.
std::vector< double > m_vdX
-—— data vectors for nonlinear optimization -——
Definition: OSInstance.h:2821
int distortionMatrixIdx
Definition: OSInstance.h:897
a data structure that holds general information about files that conform to one of the OSxL schemas ...
Definition: OSGeneral.h:32
int numberOfRows
Every cone has (at least) two dimensions; no distinction is made between vector cones and matrix cone...
Definition: OSInstance.h:1337
int ** m_mmiTimeDomainStageObjList
m_mmiTimeDomainStageObjList holds the list of objectives in each stage.
Definition: OSInstance.h:3041
int * m_miJacNumConTerms
m_miJacNumConTerms holds a int array of the number of constant terms (gradient does not change) for t...
Definition: OSInstance.h:2676
int getNumberOfMatrixExpressionTreeIndexes()
Get the number of unique matrix expression tree indexes.
double lb
lb is the lower bound on the constraint
Definition: OSInstance.h:235
bool setRandom(double density, bool conformant, int iMin, int iMax)
A function to make a random instance of this class.
bool deepCopyFrom(PolyhedralCone *that)
A function to make a deep copy of an instance of this class.
bool IsEqual(IntersectionCone *that)
A function to check for the equality of two objects.
The in-memory representation of the &lt;constraints&gt; element.
Definition: OSInstance.h:251
int numberOfObjectives
numberOfObjectives is the number of objective functions in the instance
Definition: OSInstance.h:201
bool getZeroOrderResults(double *x, double *objLambda, double *conLambda)
Calculate function values.
double ** m_mmdObjGradient
m_mdObjGradient holds an array of pointers, each pointer points to gradient of one objective function...
Definition: OSInstance.h:2814
int ** m_mmiTimeDomainStageConList
m_mmiTimeDomainStageConList holds the list of constraints in each stage.
Definition: OSInstance.h:3031
int numberOfRows
Every cone has (at least) two dimensions; no distinction is made between vector cones and matrix cone...
Definition: OSInstance.h:1261
NonlinearExpressions()
The NonlinearExpressions class constructor.
Definition: OSInstance.cpp:844
ENUM_MATRIX_SYMMETRY
Definition: OSParameters.h:735
std::string * m_msTimeDomainStageNames
m_msTimeDomainStageNames holds the names of the time stages.
Definition: OSInstance.h:3008
int * m_miNonlinearExpressionTreeIndexes
m_miNonlinearExpressionTreeIndexes is an integer pointer to the distinct rows indexes in the nonlinea...
Definition: OSInstance.h:2580
std::vector< double > m_vdLambda
m_vdYval is a vector of Lagrange multipliers
Definition: OSInstance.h:2847
int * otherIndexes
Definition: OSInstance.h:1487
int numberOfObjectives
numberOfObjectives gives the number of objectives contained in this stage
Definition: OSInstance.h:2048
bool IsEqual(NonpositiveCone *that)
A function to check for the equality of two objects.
std::map< int, int > m_mapAllNonlinearVariablesIndex
m_mapAllNonlinearVariablesIndexMap is a map of the variables in the Lagrangian function ...
Definition: OSInstance.h:2740
std::string m_sInstanceLicence
m_sInstanceDescription holds the instance fileCreator info.
Definition: OSInstance.h:2326
bool setTimeDomainStages(int number, std::string *names)
This sets the number (and optionally names) of the time stages.
int referenceConeIdx
Polar cones use a reference to another, previously defined cone.
Definition: OSInstance.h:1496
TimeDomainStageVar()
The TimeDomainStageVar class constructor.
bool setRandom(double density, bool conformant, int iMin, int iMax)
A function to make a random instance of this class.
int * m_miTimeDomainStageObjectiveNumber
m_miTimeDomainStageObjectiveNumber holds the number of objectives in each stage.
Definition: OSInstance.h:3036
IntVector * start
a pointer to the start of each row or column stored in sparse format
Definition: OSInstance.h:306
ProductCone()
The ProductCone class constructor.
double * getObjectiveWeights()
Get objective weights.
int idx
cones are referenced by an (automatically created) index
Definition: OSInstance.h:562
double ub
ub is the upper bound on the constraint
Definition: OSInstance.h:238
~LinearConstraintCoefficients()
The LinearConstraintCoefficients class destructor.
Definition: OSInstance.cpp:748
bool setTimeDomainStageConstraintsUnordered(int numberOfStages, int *numberOfConstraints, int **conIndex)
This sets the constraints associated with each time domain stage in srbitrary order.
double * m_mdJacValue
m_mdJacValue holds a double array of partial derivatives for the Jacobian matrix in sparse form (row ...
Definition: OSInstance.h:2670
~MatrixVar()
The MatrixVar class destructor.
virtual std::string getConeName()
int getNumberOfStringVariables()
getNumberOfStringVariables
bool setInstanceName(std::string name)
set the instance name.
The in-memory representation of an intersection cone.
Definition: OSInstance.h:1324
OSInstance()
The OSInstance class constructor.
Definition: OSInstance.cpp:36
virtual std::string getConeName()
int idx
cones are referenced by an (automatically created) index
Definition: OSInstance.h:1352
TimeDomainStages * stages
stages is a pointer to a Stages object
Definition: OSInstance.h:2151
MatrixObjectives * matrixObjectives
a pointer to the matrixObjectives object
Definition: OSInstance.h:1895
int m_iMatrixExpressionNumber
m_iMatrixExpressionNumber holds the number of matrix expressions
Definition: OSInstance.h:2971
bool setRandom(double density, bool conformant, int iMin, int iMax)
A function to make a random instance of this class.
double ** getDenseObjectiveCoefficients()
getDenseObjectiveCoefficients.
bool initObjGradients()
This should be called by initForAlgDiff()
OSMatrix ** m_mMatrix
m_mMatrix holds the list of constructors for each matrix.
Definition: OSInstance.h:2905
The in-memory representation of the &lt;nonlinearExpressions&gt; element.
Definition: OSInstance.h:452
virtual std::string getConeName()
virtual std::string getConeName()
int m_iHighestTaylorCoeffOrder
m_iHighestTaylorCoeffOrder is the order of highest calculated Taylor coefficient
Definition: OSInstance.h:2687
PolyhedralCone()
The PolyhedralCone class constructor.
double normScaleFactor
quadratic cones normally are of the form x0 &gt;= x1^2 + x2^2 + ...
Definition: OSInstance.h:896
bool IsEqual(MatrixProgramming *that)
A function to check for the equality of two objects.
bool getSecondOrderResults(double *x, double *objLambda, double *conLambda)
Calculate second derivatives.
SparseJacobianMatrix * getJacobianSparsityPattern()
Used to hold part of the instance in memory.
std::map< int, MatrixExpressionTree * > getAllMatrixExpressionTrees()
double getTimeDomainIntervalStart()
Get the start for the time domain interval.
~CompletelyPositiveMatricesCone()
default destructor.
int * m_miJacStart
m_miJacStart holds a int array of starts for the Jacobian matrix in sparse form (row major)...
Definition: OSInstance.h:2660
int * m_miNonlinearExpressionIndexes
m_miNonlinearExpressionIndexes holds an integer array of nonlinear expression indexes, negative indexes correspond to objectives.
Definition: OSInstance.h:2628
bool matrixHasBase(int n)
Several tools to parse the constructor list of a matrix.
int numberOfVariables
numberOfVariables gives the number of variables contained in this stage
Definition: OSInstance.h:1962
bool bObjectivesModified
bObjectivesModified is true if the objective function data has been modified.
Definition: OSInstance.h:2293
CopositiveMatricesCone()
default constructor.
bool deepCopyFrom(QuadraticCone *that)
A function to make a deep copy of an instance of this class.
std::string * m_msObjectiveNames
m_msObjectiveNames holds an array of objective names.
Definition: OSInstance.h:2406
int * m_miTimeDomainStageVariableNumber
m_miTimeDomainStageVariableNumber holds the number of variables in each stage.
Definition: OSInstance.h:3016
bool setRandom(double density, bool conformant, int iMin, int iMax)
A function to make a random instance of this class.
TimeDomainStage ** stage
stage is pointer to an array of stage object pointers
Definition: OSInstance.h:2107
bool setMatrixNumber(int number)
set the number of matrices
double * m_mdConstraintFunctionValues
m_mdConstraintFunctionValues holds a double array of constraint function values – the size of the arr...
Definition: OSInstance.h:2644
bool IsEqual(ProductCone *that)
A function to check for the equality of two objects.
virtual std::string getConeName()
int getNumberOfNonlinearConstraints()
double normScaleFactor
rotated quadratic cones normally are of the form x0x1 &gt;= x2^2 + x3^2 + ...
Definition: OSInstance.h:987
The in-memory representation of the &lt;matrixCon&gt; element.
Definition: OSInstance.h:1736
double * m_mdConstraintLowerBounds
m_mdConstraintLowerBounds holds an array of constraint lower bounds (default = -INF).
Definition: OSInstance.h:2470
bool IsEqual(CompletelyPositiveMatricesCone *that)
A function to check for the equality of two objects.
int m_iObjectiveNumber
m_iObjectiveNumber is the number of objective functions.
Definition: OSInstance.h:2396
bool setInstanceCreator(std::string fileCreator)
set the instance creator.
double weight
weight is the weight applied to the given objective function, 1.0 by default
Definition: OSInstance.h:167
bool setConstraintNumber(int number)
set the number of constraints.
std::string name
an optional name to this matrixVar
Definition: OSInstance.h:1611
a double vector data structure
Definition: OSGeneral.h:609
bool m_bNonlinearExpressionTreeModIndexesProcessed
m_bNonlinearExpressionTreeModIndexesProcessed is true if getNonlinearExpressionTreeModIndexes has bee...
Definition: OSInstance.h:2593
MatrixObj()
The MatrixVar class constructor.
The in-memory representation of the &lt;obj&gt; element.
Definition: OSInstance.h:141
bool deepCopyFrom(Matrices *that)
A function to make a deep copy of an instance of this class.
MatrixExpressions()
The MatrixExpressions class constructor.
int * getMatrixExpressionTreeIndexes()
Get all the matrix expression tree indexes, i.e.
~InstanceData()
The InstanceData class destructor.
Nl ** nl
nl is pointer to an array of Nl object pointers
Definition: OSInstance.h:469
bool IsEqual(Variables *that)
A function to check for the equality of two objects.
std::string name
an optional name to this MatrixCon
Definition: OSInstance.h:1768
bool IsEqual(DualCone *that)
A function to check for the equality of two objects.
virtual std::string getConeName()
DoubleVector * value
a pointer to the array of nonzero values being stored
Definition: OSInstance.h:315
MatrixProgramming()
The MatrixProgramming class constructor.
std::string * m_msMatrixNames
m_msMatrixNames holds the names of the matrices
Definition: OSInstance.h:2896
double * calculateAllConstraintFunctionValues(double *x, double *objLambda, double *conLambda, bool new_x, int highestOrder)
Calculate all of the constraint function values.
int * otherIndexes
Definition: OSInstance.h:1270
The in-memory representation of the &lt;objectives&gt; element.
Definition: OSInstance.h:188
int constantMatrixIdx
constantMatrixIdx gives a constant added to the matrixObj
Definition: OSInstance.h:1686
fint end
Nl ** getNonlinearExpressions()
Get the pointers to the roots of all expression trees.
double lb
lb corresponds to the optional attribute that holds the variable lower bound.
Definition: OSInstance.h:56
double horizon
horizon is the end of the planning period in the &lt;interval&gt; element.
Definition: OSInstance.h:2132
std::map< int, MatrixExpressionTree * > m_mapMatrixExpressionTrees
m_mapMatrixExpressionTrees holds a hash map of matrix-valued expression tree pointers.
Definition: OSInstance.h:2713
a sparse matrix data structure
Definition: OSGeneral.h:223
double ** calculateAllObjectiveFunctionGradients(double *x, double *objLambda, double *conLambda, bool new_x, int highestOrder)
Calculate the gradient of all objective functions.
double constant
constant is the constant term added to the objective function, 0 by default
Definition: OSInstance.h:162
int lbMatrixIdx
lbMatrixIdx gives a lower bound for this matrixVar
Definition: OSInstance.h:1599
int m_iConstraintNumberNonlinear
m_iConstraintNumberNonlinear is the number of constraints that have a nonlinear term.
Definition: OSInstance.h:2460
PolarCone()
The PolarCone class constructor.
char * getConstraintTypes()
Get constraint types.
int numberOfRows
Every cone has (at least) two dimensions; no distinction is made between vector cones and matrix cone...
Definition: OSInstance.h:964
int coneType
The type of the cone (one of the values in ENUM_CONE_TYPE)
Definition: OSInstance.h:1071
Variable ** var
Here we define a pointer to an array of var pointers.
Definition: OSInstance.h:97
std::vector< double > m_vdRangeUnitVec
m_vdRangeUnitVec is a unit vector in the range space
Definition: OSInstance.h:2857
int lbConeIdx
lbConeIdx gives a cone that must contain matrixVar - lbMatrix
Definition: OSInstance.h:1602
int numberOfOtherIndexes
Multidimensional tensors can also form cones (the Kronecker product, for instance, can be thought of as a four-dimensional tensor).
Definition: OSInstance.h:1345
int numberOfColumns
numberOfColumns gives the number of columns of this matrix
Definition: OSInstance.h:1586
virtual std::string getConeInXML()
Write a NonpositiveCone object in XML format.
bool setRandom(double density, bool conformant, int iMin, int iMax)
A function to make a random instance of this class.
bool IsEqual(Constraint *that)
A function to check for the equality of two objects.
bool IsEqual(Matrices *that)
A function to check for the equality of two objects.
~MatrixCon()
The MatrixCon class destructor.
~ProductCone()
The ProductCone class destructor.
int m_iMatrixVarNumber
-—— data items for matrix programming -——
Definition: OSInstance.h:2956
bool m_bProcessExpressionTreesMod
m_bProcessExpressionTreesMod is true if the modified expression trees have been processed.
Definition: OSInstance.h:2638
bool IsEqual(QuadraticTerm *that)
A function to check for the equality of two objects.
double start
start is the start of the planning period in the &lt;interval&gt; element.
Definition: OSInstance.h:2127
The in-memory representation of the &lt;matrixVariables&gt; element.
Definition: OSInstance.h:1635
double * m_mdVariableUpperBounds
m_mdVariableUpperBounds holds a double array of variable upper bounds (default = INF).
Definition: OSInstance.h:2384
The in-memory representation of a dual cone.
Definition: OSInstance.h:1400
bool IsEqual(PolyhedralCone *that)
A function to check for the equality of two objects.
int m_iNumberOfIntegerVariables
m_iNumberOfIntegerVariables holds the number of integer variables.
Definition: OSInstance.h:2343
bool m_bProcessTimeInterval
m_bProcessTimeInterval holds whether a time interval has been processed.
Definition: OSInstance.h:2988
SparseMatrix * getLinearConstraintCoefficientsInRowMajor()
Get linear constraint coefficients in row major.
bool m_bCppADTapesBuilt
is true if a CppAD Expresion Tree has been built for each row and objective with a nonlinear expressi...
Definition: OSInstance.h:2774
double * ub
For each dimension of the cone, give the upper and lower bounds The upper bound can be only zero or +...
Definition: OSInstance.h:733
int getNumberOfMatrixObjectives()
Get the number of matrix objectives.
The in-memory representation of a quadratic cone.
Definition: OSInstance.h:860
double * m_mdObjectiveWeights
m_mdObjectiveWeights holds an array of objective weights (default = 1.0).
Definition: OSInstance.h:2426
MatrixExpressions * matrixExpressions
a pointer to the matrixExpressions object
Definition: OSInstance.h:1901
bool deepCopyFrom(NonpositiveCone *that)
A function to make a deep copy of an instance of this class.
virtual std::string getConeName()
bool IsEqual(MatrixConstraints *that)
A function to check for the equality of two objects.
Cones()
The Cones class constructor.
Definition: OSInstance.cpp:939
virtual std::string getConeInXML()
Write a CompletelyPositiveMatricesCone object in XML format.
bool deepCopyFrom(NonnegativeCone *that)
A function to make a deep copy of an instance of this class.
double value
value is the value of the objective function coefficient corresponding to the variable with index idx...
Definition: OSInstance.h:128
The in-memory representation of the &lt;quadraticCoefficients&gt; element.
Definition: OSInstance.h:380
SparseVector * calculateConstraintFunctionGradient(double *x, double *objLambda, double *conLambda, int idx, bool new_x, int highestOrder)
Calculate the gradient of the constraint function indexed by idx.
The in-memory representation of the &lt;stages&gt; element.
Definition: OSInstance.h:2091
SparseHessianMatrix * getLagrangianHessianSparsityPattern()
bool setObjectiveNumber(int number)
set the number of objectives.
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 t...
bool m_bAllNonlinearVariablesIndex
m_bAllNonlinearVariablesIndexMap is true if the map of the variables in the Lagrangian function has b...
Definition: OSInstance.h:2752
bool deepCopyFrom(Cones *that)
A function to make a deep copy of an instance of this class.
bool setNonlinearExpressions(int nexpr, Nl **root)
set nonlinear expressions
int idxOne
idxOne is the index of the first variable in the quadratic term
Definition: OSInstance.h:358
Objective()
The Objective class constructor.
Definition: OSInstance.cpp:624
ENUM_MATRIX_SYMMETRY getMatrixSymmetry(int n)
Get the matrix symmetry.
bool setTimeDomainStageObjectivesUnordered(int numberOfStages, int *numberOfObjectives, int **varIndex)
This sets the objectives associated with each time domain stage in arbitrary order.
GeneralSparseMatrix * getMatrixCoefficientsInColumnMajor(int n)
Get the (nonzero) elements of the matrix in column major form.
bool m_bProcessTimeDomain
-—— data items for time domain -——
Definition: OSInstance.h:2978
SparseVector ** m_mObjectiveCoefficients
m_mObjectiveCoefficients holds an array of objective coefficients, one set of objective coefficients ...
Definition: OSInstance.h:2432
bool m_bQuadraticRowIndexesProcessed
m_bQuadraticRowIndexesProcessed is true if getQuadraticRowIndexes() has been called.
Definition: OSInstance.h:2533
int numberOfValues
numberOfValues is the number of nonzero elements stored in the &lt;linearConstraintCoefficients&gt; element...
Definition: OSInstance.h:301
bool addConstraint(int index, std::string name, double lowerBound, double upperBound, double constant)
add a constraint.
Constraints()
The Constraints class constructor.
Definition: OSInstance.cpp:704
MatrixObj ** matrixObj
matrixObj is an array of pointers to the &lt;matrixObj&gt; children
Definition: OSInstance.h:1722
bool m_bFiniteTimeStages
m_bFiniteTimeStages holds whether the time domain has the form of finite (discrete) stages...
Definition: OSInstance.h:2993
TimeDomainStageCon()
The TimeDomainStageCon class constructor.
bool addObjective(int index, std::string name, std::string maxOrMin, double constant, double weight, SparseVector *objectiveCoefficients)
add an objective.
int ubMatrixIdx
ubMatrixIdx gives an upper bound for this matrixCon
Definition: OSInstance.h:1762
int * m_miNonLinearVarsReverseMap
m_miNonLinearVarsReverseMap maps the nonlinear variable number back into the original variable space ...
Definition: OSInstance.h:2746
int firstAxisDirection
The indices of the first two component can be changed Since there are possibly many dimensions...
Definition: OSInstance.h:999
int m_iNumberOfTimeStages
m_iNumberOfTimeStages holds the number of discrete stages
Definition: OSInstance.h:2998
virtual std::string getConeInXML()
Write a QuadraticCone object in XML format.
~Matrices()
The Matrices class destructor.
Definition: OSInstance.cpp:902
bool setTimeDomain(std::string format)
This sets the format of the time domain (&quot;stages&quot;/&quot;interval&quot;/&quot;none&quot;)
std::string * getObjectiveMaxOrMins()
Get objective maxOrMins.
bool setTimeDomainStageConstraintsOrdered(int numberOfStages, int *numberOfConstraints, int *startIdx)
This sets the constraints associated with each time domain stage in temporal order.
bool IsEqual(OrthantCone *that)
A function to check for the equality of two objects.
int * m_miNumberOfObjCoef
m_miNumberOfObjCoef holds an integer array of number of objective coefficients (default = 0)...
Definition: OSInstance.h:2416
double ub
ub corresponds to the optional attribute that holds the variable upper bound.
Definition: OSInstance.h:61
int idx
idx gives the index of this constraint
Definition: OSInstance.h:1987
a sparse vector data structure
Definition: OSGeneral.h:122
Variables * variables
variables is a pointer to a Variables object
Definition: OSInstance.h:2185
int numberOfOtherIndexes
Multidimensional tensors can also form cones (the Kronecker product, for instance, can be thought of as a four-dimensional tensor).
Definition: OSInstance.h:807
TimeDomainStage()
The TimeDomainStage class constructor.
~NonnegativeCone()
default destructor.
virtual std::string getConeInXML()=0
Write a Cone object in XML format.
ScalarExpressionTree * m_LagrangianExpTree
m_LagrangianExpTree is an ScalarExpressionTree object that is the expression tree for the Lagrangian ...
Definition: OSInstance.h:2719
MatrixVariables * matrixVariables
a pointer to the matrixVariables object
Definition: OSInstance.h:1892
ScalarExpressionTree * getLagrangianExpTree()
SparseMatrix * getLinearConstraintCoefficientsInColumnMajor()
Get linear constraint coefficients in column major.
MatrixExpressionTree * getMatrixExpressionTree(int rowIdx)
Get the matrix expression tree for a given row index.
int getTimeDomainStageNumber()
Get the number of stages that make up the time domain.
int numberOfOtherIndexes
Multidimensional tensors can also form cones (the Kronecker product, for instance, can be thought of as a four-dimensional tensor).
Definition: OSInstance.h:1421
The in-memory representation of the &lt;timeDomain&gt; element.
Definition: OSInstance.h:2139
bool IsEqual(MatrixCon *that)
A function to check for the equality of two objects.
int getMatrixNumber()
Get the number of matrices.
The in-memory representation of the &lt;con&gt; element.
Definition: OSInstance.h:1976
virtual std::string getConeInXML()
Write an OrthantCone object in XML format.
int m_iLinearConstraintCoefficientNumber
m_iLinearConstraintCoefficientNumber holds the number of specified (usually nonzero) linear constrain...
Definition: OSInstance.h:2501
bool setVariables(int number, std::string *names, double *lowerBounds, double *upperBounds, char *types)
set all the variable related elements.
~QuadraticCoefficients()
The QuadraticCoefficients class destructor.
Definition: OSInstance.cpp:796
NonpositiveCone()
default constructor.
int templateMatrixIdx
templateMatrixIdx refers to a matrix that describes the locations in this matrixVar that are allowed ...
Definition: OSInstance.h:1748
~DualCone()
The DualCone class destructor.
double * getConstraintConstants()
Get constraint constants.
GeneralFileHeader * instanceHeader
the instanceHeader is implemented as a general file header object to allow sharing of classes between...
Definition: OSInstance.h:2275
MatrixExpressionTree * matrixExpressionTree
matrixExpressionTree contains the root of the MatrixExpressionTree
Definition: OSInstance.h:1829
The in-memory representation of the &lt;matrixObjectives&gt; element.
Definition: OSInstance.h:1708
IntersectionCone()
The IntersectionCone class constructor.
double * getObjectiveConstants()
Get objective constants.
int numberOfConstraints
numberOfConstraints is the number of constraints in the instance
Definition: OSInstance.h:264
SemidefiniteCone()
The SemidefiniteCone class constructor.
~TimeDomainStageObj()
The TimeDomainStageObj class destructor.
MatrixObjectives()
The MatrixObjectives class constructor.
int m_iHighestOrderEvaluated
m_iHighestOrderEvaluated is the highest order derivative of the current iterate
Definition: OSInstance.h:2808
int varReferenceMatrixIdx
varReferenceMatrixIdx allows some or all of the components of this matrix variable to be copied from ...
Definition: OSInstance.h:1596
int startIdx
startdIdx gives the number of the first variable contained in this stage
Definition: OSInstance.h:1965
int numberOfRows
Every cone has (at least) two dimensions; no distinction is made between vector cones and matrix cone...
Definition: OSInstance.h:1478
a sparse Jacobian matrix data structure
Definition: OSGeneral.h:300
std::string getInstanceName()
Get instance name.
int numberOfOtherIndexes
Multidimensional tensors can also form cones (the Kronecker product, for instance, can be thought of as a four-dimensional tensor).
Definition: OSInstance.h:1269
bool m_bProcessVariables
-—— data items for Variables -——
Definition: OSInstance.h:2333
int numberOfRows
numberOfRows gives the number of rows of this matrix
Definition: OSInstance.h:1583
int getADSparsityHessian()
end revised AD code
InstanceData * instanceData
A pointer to an InstanceData object.
Definition: OSInstance.h:2278
int * otherIndexes
Definition: OSInstance.h:808
ENUM_MATRIX_TYPE getMatrixType(int n)
Get the matrix type.
int m_iQuadraticTermNumber
m_iQuadraticTermNumber holds the number of specified (usually nonzero) qTerms in the quadratic coeffi...
Definition: OSInstance.h:2549
int numberOfRows
Every cone has (at least) two dimensions; no distinction is made between vector cones and matrix cone...
Definition: OSInstance.h:543
Matrices()
The Matrices class constructor.
Definition: OSInstance.cpp:893
virtual std::string getConeInXML()
Write a PolyhedralCone object in XML format.
DualCone()
The DualCone class constructor.
GeneralSparseMatrix * getMatrixBlockInColumnMajorForm(int n, int columnIdx, int rowIdx)
Get the (nonzero) elements of the matrix in symmetric block form.
int idx
cones are referenced by an (automatically created) index
Definition: OSInstance.h:1428
int startIdx
startdIdx gives the number of the first constraint contained in this stage
Definition: OSInstance.h:2008
bool addQTermsToExressionTree()
The in-memory representation of the &lt;nl&gt; element.
Definition: OSInstance.h:410
int ** getTimeDomainStageConList()
Get the list of constraints in each stage.
int m_iNumberOfSemiIntegerVariables
m_iNumberOfSemiIntegerVariables holds the number of semi-integer variables.
Definition: OSInstance.h:2358
bool matrixHasElements(int n)
virtual std::string getConeName()
int * m_miMatrixNumberOfRows
m_miMatrixNumberOfRows holds the number of rows for each matrix.
Definition: OSInstance.h:2891
int m_iNumberOfSemiContinuousVariables
m_iNumberOfSemiContinuousVariables holds the number of semi-continuous variables. ...
Definition: OSInstance.h:2353
an integer Vector data structure
Definition: OSGeneral.h:469
MatrixVariables()
The MatrixVariables class constructor.
int * otherIndexes
Definition: OSInstance.h:1422
int idx
idx holds the row index of the nonlinear expression
Definition: OSInstance.h:414
std::vector< double > m_vdYval
m_vdYval is a vector of function values
Definition: OSInstance.h:2826
bool processVariables()
process variables.
char * m_mcConstraintTypes
m_mcConstraintTypes holds a char array of constraint types (R for range; L for &lt;=; G for &gt;=; E for =;...
Definition: OSInstance.h:2487
The OrthantCone Class.
Definition: OSInstance.h:726
~MatrixConstraints()
The MatrixConstraints class destructor.
std::string * getObjectiveNames()
Get objective names.
int numberOfRows
Every cone has (at least) two dimensions; no distinction is made between vector cones and matrix cone...
Definition: OSInstance.h:1413
double ** m_mmdDenseObjectiveCoefficients
m_mmdDenseObjectiveCoefficients holds an array of pointers, each pointer points to a vector of dense ...
Definition: OSInstance.h:2443
int m_iNonlinearExpressionNumber
m_iNonlinearExpressionNumber holds the number of nonlinear expressions.
Definition: OSInstance.h:2622
int getConstraintNumber()
Get number of constraints.
Objective ** obj
coef is pointer to an array of ObjCoef object pointers
Definition: OSInstance.h:205
bool getLinearConstraintCoefficientMajor()
Get whether the constraint coefficients is in column major (true) or row major (false).
int startIdx
startdIdx gives the number of the first objective contained in this stage
Definition: OSInstance.h:2051
int axisDirection
The index of the first component can be changed Since there are possibly many dimensions, the index is coded as i0*n1*n2*...
Definition: OSInstance.h:908
double getTimeDomainIntervalHorizon()
Get the horizon for the time domain interval.
int idx
cones are referenced by an (automatically created) index
Definition: OSInstance.h:979
bool setInstanceSource(std::string source)
set the instance source.
Matrices * matrices
matrices is a pointer to a Matrices object
Definition: OSInstance.h:2211
double * m_mdVariableLowerBounds
m_mdVariableLowerBounds holds a double array of variable lower bounds (default = 0.0).
Definition: OSInstance.h:2379
bool IsEqual(Variable *that)
A function to check for the equality of two objects.
~MatrixExpression()
The MatrixExpression class destructor.
int getNumberOfQuadraticRowIndexes()
Get the number of rows which have a quadratic term.
std::string * getTimeDomainStageNames()
Get the names of the stages (NULL or empty string (&quot;&quot;) if a stage has not been given a name...
std::string semidefiniteness
we need to distinguish positive and negative semidefiniteness
Definition: OSInstance.h:1077
bool setInstanceDescription(std::string description)
set the instance description.
The CompletelyPositiveMatricesCone Class.
Definition: OSInstance.h:1186
bool m_bProcessNonlinearExpressions
m_bProcessNonlinearExpressions holds whether the nonlinear expressions are processed.
Definition: OSInstance.h:2617
bool deepCopyFrom(IntersectionCone *that)
A function to make a deep copy of an instance of this class.
bool setRandom(double density, bool conformant, int iMin, int iMax)
A function to make a random instance of this class.
bool IsEqual(LinearConstraintCoefficients *that)
A function to check for the equality of two objects.
double coef
coef is the coefficient of the quadratic term
Definition: OSInstance.h:366
int numberOfColumns
numberOfColumns gives the number of columns of this matrix
Definition: OSInstance.h:1668
int getNumberOfQuadraticTerms()
Get the number of specified (usually nonzero) qTerms in the quadratic coefficients.
~TimeDomainStageVar()
The TimeDomainStageVar class destructor.
bool IsEqual(Cone *that)
A function to check for the equality of two objects.
int * m_miTimeDomainStageConstraintNumber
m_miTimeDomainStageConstraintNumber holds the number of constraints in each stage.
Definition: OSInstance.h:3026
bool m_bDeleteExpressionTree
m_bDeleteExpressionTree is true, if in garbage collection, we should delete the osExpression tree obj...
Definition: OSInstance.h:427
TimeDomainStageConstraints * constraints
constraints is a pointer to a TimeDomainConstraints object
Definition: OSInstance.h:2081
The CopositiveMatricesCone Class.
Definition: OSInstance.h:1127
ENUM_NL_EXPR_SHAPE
Definition: OSParameters.h:830
The in-memory representation of the &lt;variables&gt; child of the &lt;stage&gt; element.
Definition: OSInstance.h:1951
bool m_bProcessTimeStages
m_bProcessTimeStages holds whether the time stages have been processed.
Definition: OSInstance.h:2983
bool deepCopyFrom(CopositiveMatricesCone *that)
A function to make a deep copy of an instance of this class.
int templateMatrixIdx
templateMatrixIdx refers to a matrix that describes the locations in this matrixObj that are allowed ...
Definition: OSInstance.h:1673
QuadraticTerms * m_quadraticTerms
m_quadraticTerms holds the data structure for all the quadratic terms in the instance.
Definition: OSInstance.h:2555
int getNumberOfMatrixExpressions()
Get the number of matrix-valued expressions.
The in-memory representation of a cone of semidefinite matrices.
Definition: OSInstance.h:1046
NonnegativeCone()
default constructor.
int ubMatrixIdx
ubMatrixIdx gives an upper bound for this matrixVar
Definition: OSInstance.h:1605
Nl()
default constructor.
Definition: OSInstance.cpp:816
Objectives * objectives
objectives is a pointer to a Objectives object
Definition: OSInstance.h:2188
TimeDomainStageVar ** var
var is a pointer to an array of TimeDomainStageVar object pointers
Definition: OSInstance.h:1968
~CopositiveMatricesCone()
default destructor.
~QuadraticTerm()
The QuadraticTerm class destructor.
Definition: OSInstance.cpp:777
The in-memory representation of the &lt;stage&gt; element.
Definition: OSInstance.h:2062
The in-memory representation of a polar cone.
Definition: OSInstance.h:1465
The in-memory representation of the &lt;matrixVar&gt; element.
Definition: OSInstance.h:1579
std::vector< ExprNode * > getNonlinearExpressionTreeInPrefix(int rowIdx)
Get the prefix tokens for a given row index.
std::string getInstanceSource()
Get instance source.
int m_iMatrixObjNumber
m_iMatrixObjNumber holds the number of matrix objectives
Definition: OSInstance.h:2961
int getNumberOfTransformationConstructors(int n)
bool initForAlgDiff()
This should be called by nonlinear solvers using callback functions.
int ** getTimeDomainStageObjList()
Get the list of objectives in each stage.
The in-memory representation of the &lt;cones&gt; element.
Definition: OSInstance.h:1532
std::map< int, ScalarExpressionTree * > getAllNonlinearExpressionTrees()
bool IsEqual(QuadraticCone *that)
A function to check for the equality of two objects.
ScalarExpressionTree * osExpressionTree
osExpressionTree contains the root of the ScalarExpressionTree
Definition: OSInstance.h:430
std::vector< ExprNode * > getMatrixExpressionTreeInPrefix(int rowIdx)
Get the prefix tokens for a given row index.
MatrixProgramming * matrixProgramming
matrixProgramming is a pointer to a MatrixProgramming object
Definition: OSInstance.h:2221
bool setRandom(double density, bool conformant, int iMin, int iMax)
A function to make a random instance of this class.
TimeDomainStageVariables()
The TimeDomainStageVariables class constructor.
~PolarCone()
The PolarCone class destructor.
int * m_miQuadRowIndexes
m_miQuadRowIndexes is an integer pointer to the distinct row indexes with a quadratic term...
Definition: OSInstance.h:2538
double * calculateAllObjectiveFunctionValues(double *x, double *objLambda, double *conLambda, bool new_x, int highestOrder)
Calculate all of the objective function values.
bool IsEqual(PolarCone *that)
A function to check for the equality of two objects.
QuadraticTerms * getQuadraticTerms()
Get all the quadratic terms in the instance.
int m_iNumberOfNonlinearExpressionTreeModIndexes
m_iNumberOfNonlinearExpressionTreeModIndexes holds the number of distinct rows and objectives with no...
Definition: OSInstance.h:2587
bool bVariablesModified
bVariablesModified is true if the variables data has been modified.
Definition: OSInstance.h:2288
int numberOfColumns
Definition: OSInstance.h:1479
IntVector * components
the list of components contributing to the intersection each component contains a reference to a prev...
Definition: OSInstance.h:1357
Cones * cones
cones is a pointer to a Cones object
Definition: OSInstance.h:2216
int * otherIndexes
Definition: OSInstance.h:553
bool deepCopyFrom(PolarCone *that)
A function to make a deep copy of an instance of this class.
virtual std::string getConeName()
double * getVariableUpperBounds()
Get variable upper bounds.
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.
int ** getTimeDomainStageVarList()
Get the list of variables in each stage.
The in-memory representation of the &lt;matrixConstraints&gt; element.
Definition: OSInstance.h:1787
bool m_bColumnMajor
m_bColumnMajor holds whether the linear constraint coefficients are stored in column major (if m_bCol...
Definition: OSInstance.h:2507
bool deepCopyFrom(MatrixProgramming *that)
A function to make a deep copy of an instance of this class.
bool IsEqual(InstanceData *that)
A function to check for the equality of two objects.
std::vector< double > reverseAD(int p, std::vector< double > vdlambda)
Perform an AD reverse sweep.
The in-memory representation of the &lt;objectives&gt; child of the &lt;stage&gt; element.
Definition: OSInstance.h:2037
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
RotatedQuadraticCone()
The RotatedQuadraticCone class constructor.
int numberOfNonlinearExpressions
numberOfNonlinearExpressions is the number of &lt;nl&gt; elements in the &lt;nonlinearExpressions&gt; element...
Definition: OSInstance.h:466
int getNumberOfColumnsForMatrix(int n)
Get the number of blocks in the matrix.
int numberOfObjCoef
numberOfObjCoef is the number of variables with a nonzero objective function coefficient ...
Definition: OSInstance.h:172
std::string m_sTimeDomainFormat
m_sTimeDomainFormat holds the format (&quot;stages&quot;/&quot;interval&quot;) of the time domain.
Definition: OSInstance.h:3003
bool setNumberOfQuadraticTerms(int nq)
set the number of quadratic terms
std::vector< bool > m_vbLagHessNonz
m_vbLagHessNonz is a boolean vector holding the nonzero pattern of the Lagrangian of the Hessian ...
Definition: OSInstance.h:2832
int numberOfQuadraticTerms
numberOfQuadraticTerms is the number of quadratic terms in the &lt;quadraticCoefficients&gt; element...
Definition: OSInstance.h:393
int m_iNumberOfQuadraticRowIndexes
-—— data items for quadratic coefficients -——
Definition: OSInstance.h:2528
int numberOfMatrices
numberOfMatrices is the number of &lt;nl&gt; elements in the &lt;matrices&gt; element.
Definition: OSInstance.h:496
int idx
idx holds the row index of the nonlinear expression
Definition: OSInstance.h:1820
TimeDomainInterval * interval
interval is a pointer to an Interval object
Definition: OSInstance.h:2155
~Constraint()
The Constraint class destructor.
Definition: OSInstance.cpp:697
Cone ** cone
cone is pointer to an array of Cone object pointers
Definition: OSInstance.h:1549
~TimeDomain()
The TimeDomain class destructor.
virtual std::string getConeName()
Objectives()
The Objectives class constructor.
Definition: OSInstance.cpp:657
~IntersectionCone()
The IntersectionCone class destructor.
~RotatedQuadraticCone()
The RotatedQuadraticCone class destructor.
a sparse matrix data structure for matrices that can hold nonconstant values and have block structure...
Definition: OSMatrix.h:1768
bool getSparseJacobianFromRowMajor()
int * m_miMatrixNumberOfColumns
m_miMatrixNumberOfColumns holds the number of columns for each matrix.
Definition: OSInstance.h:2886
int coneType
The type of the cone (one of the values in ENUM_CONE_TYPE)
Definition: OSInstance.h:1349
bool m_bOSADFunIsCreated
m_bOSADFunIsCreated is true if we have created the OSInstanc OSAD Function
Definition: OSInstance.h:2768
bool m_bNonLinearStructuresInitialized
m_bNonLinearStructuresInitialized is true if initializeNonLinearStructures() has been called...
Definition: OSInstance.h:2790
int getNumberOfBlocksConstructors(int n)
std::string * m_msConstraintNames
m_msConstraintNames holds an array of constraint names.
Definition: OSInstance.h:2465
std::string getInstanceCreator()
Get instance fileCreator.
int coneType
The type of the cone (one of the values in ENUM_CONE_TYPE)
Definition: OSInstance.h:1490
std::string getInstanceLicence()
Get instance licence.
int conReferenceMatrixIdx
conReferenceMatrixIdx allows some or all of the components of this matrixCon to be copied from constr...
Definition: OSInstance.h:1753
TimeDomainStages()
The Stages class constructor.
int referenceConeIdx
Dual cones use a reference to another, previously defined cone.
Definition: OSInstance.h:1431
std::vector< ExprNode * > getNonlinearExpressionTreeModInPostfix(int rowIdx)
Get the postfix tokens for a given row index for the modified Expression Tree (quadratic terms added)...
TimeDomainStageObjectives * objectives
objectives is a pointer to a TimeDomainObjectives object
Definition: OSInstance.h:2084
bool setVariableNumber(int number)
set the number of variables.
The in-memory representation of an OSiL instance..
Definition: OSInstance.h:2262
bool setRandom(double density, bool conformant, int iMin, int iMax)
A function to make a random instance of this class.
bool setRandom(double density, bool conformant, int iMin, int iMax)
A function to make a random instance of this class.
int ubConeIdx
ubConeIdx gives a cone that must contain ubMatrix - matrixVar
Definition: OSInstance.h:1608
std::string getNonlinearExpressionTreeInInfix(int rowIdx)
Get the infix representation for a given row (or objective function) index.
SparseMatrix * m_linearConstraintCoefficientsInColumnMajor
m_linearConstraintCoefficientsInColumnMajor holds the standard three-array data structure for linear ...
Definition: OSInstance.h:2514
~TimeDomainStages()
The Stages class destructor.
The in-memory representation of the variables element.
Definition: OSInstance.h:83
bool m_bQTermsAdded
m_bQTermsAdded is true if we added the quadratic terms to the expression tree
Definition: OSInstance.h:2559
bool processObjectives()
process objectives.
~OrthantCone()
default destructor.
TimeDomainStageObj()
The TimeDomainStageObj class constructor.
double * lb
Definition: OSInstance.h:734
QuadraticCoefficients * quadraticCoefficients
quadraticCoefficients is a pointer to a QuadraticCoefficients object
Definition: OSInstance.h:2201
int coneType
The type of the cone (one of the values in ENUM_CONE_TYPE)
Definition: OSInstance.h:885
~TimeDomainStage()
The TimeDomainStage class destructor.
int * m_miJacIndex
m_miJacIndex holds a int array of variable indices for the Jacobian matrix in sparse form (row major)...
Definition: OSInstance.h:2665
int idx
idx is the index of the variable corresponding to the coefficient
Definition: OSInstance.h:123
int getNumberOfMatrixConstraints()
Get the number of matrix constraints.
~NonlinearExpressions()
The NonlinearExpressions class destructor.
Definition: OSInstance.cpp:853
OSMatrix ** matrix
matrix is a pointer to an array of OSMatrix object pointers
Definition: OSInstance.h:499
char varType
an optional variable type (C, B, I, D, J, S).
Definition: OSInstance.h:1616
Constraint()
The Constraint class constructor.
Definition: OSInstance.cpp:685
int numberOfStages
numberOfStages is the number of stages in the &lt;stages&gt; element.
Definition: OSInstance.h:2104
int idx
idx is the index of the row in which the quadratic term appears
Definition: OSInstance.h:353
double * m_mdObjectiveFunctionValues
m_mdObjectiveFunctionValues holds a double array of objective function values – the size of the array...
Definition: OSInstance.h:2650
bool isPositiveSemiDefinite
information about semidefiniteness is also tracked in a boolean variable
Definition: OSInstance.h:1080
bool setConstraints(int number, std::string *names, double *lowerBounds, double *upperBounds, double *constants)
set all the constraint related elements.
bool setTimeDomainInterval(double start, double horizon)
This sets the start and end of the time interval.
std::string m_sInstanceName
-—— data items for InstanceHeader -——
Definition: OSInstance.h:2310
int numberOfOtherIndexes
Multidimensional tensors can also form cones (the Kronecker product, for instance, can be thought of as a four-dimensional tensor).
Definition: OSInstance.h:972
std::vector< ExprNode * > getMatrixExpressionTreeModInPostfix(int rowIdx)
Get the postfix tokens for a given row index for the modified Expression Tree (quadratic terms added)...
int * getTimeDomainStageNumberOfObjectives()
Get the number of objectives contained in each time stage.
The in-memory representation of a SparseHessianMatrix..
Definition: OSGeneral.h:376
char * m_mcVariableTypes
m_mcVariableTypes holds a char array of variable types (default = &#39;C&#39;).
Definition: OSInstance.h:2374
int m_iNumberOfBinaryVariables
m_iNumberOfBinaryVariables holds the number of binary variables.
Definition: OSInstance.h:2348
int numberOfOtherIndexes
Multidimensional tensors can also form cones (the Kronecker product, for instance, can be thought of as a four-dimensional tensor).
Definition: OSInstance.h:1486
The in-memory representation of a product cone.
Definition: OSInstance.h:1248
bool setRandom(double density, bool conformant, int iMin, int iMax)
A function to make a random instance of this class.
std::string * getConstraintNames()
Get constraint names.
bool IsEqual(MatrixObj *that)
A function to check for the equality of two objects.
std::vector< double > m_vdYjacval
m_vdYval is a vector equal to a column or row of the Jacobian
Definition: OSInstance.h:2837
bool m_bGetDenseObjectives
m_bGetDenseObjectives holds whether the dense objective functions are processed.
Definition: OSInstance.h:2437
bool setInstanceLicence(std::string licence)
set the instance licence.
int m_iNumberOfNonlinearExpressionTreeIndexes
-—— data items for nonlinear expressions -——
Definition: OSInstance.h:2567
bool initializeNonLinearStructures()
Initialize the data structures for the nonlinear API.
int * getObjectiveCoefficientNumbers()
Get objective coefficient number.
std::string m_sInstanceCreator
m_sInstanceSource holds the instance source.
Definition: OSInstance.h:2322
int coneType
The type of the cone (one of the values in ENUM_CONE_TYPE)
Definition: OSInstance.h:1273
OSMatrix * getMatrix(int n)
Get the list of constructors of the matrix.
int getNumberOfValuesForMatrix(int n)
Get the number of (nonzero) values in the matrix.
int numberOfColumns
Definition: OSInstance.h:544
bool addCone(int index, int numberOfRows, int numberOfColumns, ENUM_CONE_TYPE coneType, std::string name, int numberOfOtherIndexes=0, int *otherIndexes=NULL)
add a cone.
int coneType
The type of the cone (one of the values in ENUM_CONE_TYPE)
Definition: OSInstance.h:976
int m_iMatrixNumber
m_iMatrixNumber holds the number of matrices
Definition: OSInstance.h:2869
~Objectives()
The Objectives class destructor.
Definition: OSInstance.cpp:666
void fint * n
bool matrixHasTransformations(int n)
Used to hold the instance in memory.
int getNumberOfSemiIntegerVariables()
getNumberOfSemiIntegerVariables
LinearConstraintCoefficients * linearConstraintCoefficients
linearConstraintCoefficients is a pointer to a LinearConstraintCoefficients object ...
Definition: OSInstance.h:2196
virtual std::string getConeInXML()
Write a RotatedQuadraticCone object in XML format.
bool IsEqual(MatrixObjectives *that)
A function to check for the equality of two objects.
int numberOfColumns
Definition: OSInstance.h:1414
~NonpositiveCone()
default destructor.
int numberOfRows
numberOfRows gives the number of rows of this matrix
Definition: OSInstance.h:1740
int * m_miNonlinearExpressionTreeModIndexes
m_miNonlinearExpressionTreeModIndexes is an integer pointer to the distinct rows indexes in the modif...
Definition: OSInstance.h:2599
bool setRandom(double density, bool conformant, int iMin, int iMax)
A function to make a random instance of this class.
int numberOfCones
numberOfCones is the number of &lt;nl&gt; elements in the &lt;cones&gt; element.
Definition: OSInstance.h:1546
std::map< int, int > m_mapOSADFunRangeIndex
m_mapOSADFunRangeIndex is an inverse of the previous map.
Definition: OSInstance.h:2703
The in-memory representation of the &lt;qTerm&gt; element.
Definition: OSInstance.h:340
The in-memory representation of the &lt;expr&gt; element, which is like a nonlinear expression, but since it involves matrices, the expression could be linear, so a &quot;shape&quot; attribute is added to distinguish linear and nonlinear expressions.
Definition: OSInstance.h:1816
a data structure to represent a matrix object (derived from MatrixType)
Definition: OSMatrix.h:2185
MatrixConstraints()
The MatrixConstraints class constructor.
~MatrixExpressions()
The MatrixExpressions class destructor.
int numberOfOtherIndexes
Cones can also be formed by Multidimensional tensors.
Definition: OSInstance.h:552
unsigned int m_iNumberOfNonlinearVariables
m_iNumberOfNonlinearVariables is the number of variables that appear in a nonlinear expression...
Definition: OSInstance.h:2612
double constant
constant is a value that is added to the constraint
Definition: OSInstance.h:232
std::vector< double > forwardAD(int p, std::vector< double > vdX)
Perform an AD forward sweep.
The in-memory representation of the variable element.
Definition: OSInstance.h:44
SparseMatrix * m_linearConstraintCoefficientsInRowMajor
m_linearConstraintCoefficientsInRowMajor holds the standard three-array data structure for linear con...
Definition: OSInstance.h:2521
virtual std::string getConeName()
bool m_bLagrangianExpTreeCreated
m_bLagrangianHessionCreated is true if a Lagrangian function for the Hessian has been created ...
Definition: OSInstance.h:2724
int * getQuadraticRowIndexes()
Get the indexes of rows which have a quadratic term.
The NonnegativeCone Class.
Definition: OSInstance.h:609
int iNumberOfStartElements
iNumberOfStartElements counts the number of elements in the &lt;start&gt; section of &lt;linearConstraintCoeff...
Definition: OSInstance.h:322
bool processLinearConstraintCoefficients()
process linear constraint coefficients.
int templateMatrixIdx
templateMatrixIdx refers to a matrix that describes the locations in this matrixVar that are allowed ...
Definition: OSInstance.h:1591
SparseJacobianMatrix * m_sparseJacMatrix
m_sparseJacMatrix is the Jacobian matrix stored in sparse matrix format
Definition: OSInstance.h:2681
~Variable()
The Variable class destructor.
Definition: OSInstance.cpp:570
bool deepCopyFrom(Cone *that)
A function to make a deep copy of an instance of this class.
int objReferenceMatrixIdx
objReferenceMatrixIdx allows some or all of the components of this matrixObj to be copied from object...
Definition: OSInstance.h:1678
virtual std::string getConeInXML()
Write a ProductCone object in XML format.
int getNumberOfBinaryVariables()
getNumberOfBinaryVariables
std::string getInstanceDescription()
Get instance description.
bool deepCopyFrom(DualCone *that)
A function to make a deep copy of an instance of this class.
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.
std::map< int, ScalarExpressionTree * > getAllNonlinearExpressionTreesMod()
MatrixExpression()
The MatrixExpression class constructor.
void fint fint fint real fint real * x
The in-memory representation of the &lt;con&gt; element.
Definition: OSInstance.h:218
int getNumberOfNonlinearExpressionTreeIndexes()
Get the number of unique nonlinear expression tree indexes.
bool m_bDeleteExpressionTree
if m_bDeleteExpressionTree is true during garbage collection, we should delete the osExpression tree ...
Definition: OSInstance.h:1836
std::string name
name is the name of the constraint
Definition: OSInstance.h:229
int lbMatrixIdx
lbMatrixIdx gives a lower bound for this matrixCon
Definition: OSInstance.h:1756
int getNumberOfNonlinearObjectives()
std::string getTimeDomainFormat()
Get the format of the time domain (&quot;stages&quot;/&quot;interval&quot;)
std::map< int, MatrixExpressionTree * > getAllMatrixExpressionTreesMod()
std::vector< ExprNode * > getMatrixExpressionTreeInPostfix(int rowIdx)
Get the postfix tokens for a given row index.
bool m_binitForAlgDiff
-—— data items for automatic differentiation -——
Definition: OSInstance.h:2606
QuadraticTerm()
The QuadraticTerm class constructor.
Definition: OSInstance.cpp:763
The in-memory representation of the &lt;matrixExpressions&gt; element.
Definition: OSInstance.h:1855
~MatrixProgramming()
The MatrixProgramming class destructor.
bool processMatrices()
process matrices.
The NonpositiveCone Class.
Definition: OSInstance.h:667
std::vector< ExprNode * > getNonlinearExpressionTreeInPostfix(int rowIdx)
Get the postfix tokens for a given row index.