47 std::string tmpname, tmpsense;
48 double tmplb, tmpub, tmpconst, tmpweight;
53 outStr <<
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>" ;
55 outStr <<
"<osil xmlns=\"os.optimizationservices.org\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" ";
56 outStr <<
"xsi:schemaLocation=\"os.optimizationservices.org http://www.optimizationservices.org/schemas/";
58 outStr <<
"/OSiL.xsd\" >" ;
60 outStr <<
"<instanceHeader>";
66 outStr <<
"<name>" +
m_OSInstance->instanceHeader->name +
"</name>" ;
72 outStr <<
"<source>" +
m_OSInstance->instanceHeader->source +
"</source>" ;
75 if(
m_OSInstance->instanceHeader->description.length() > 0)
77 outStr <<
"<description>" +
m_OSInstance->instanceHeader->description +
"</description>";
80 if(
m_OSInstance->instanceHeader->fileCreator.length() > 0)
82 outStr <<
"<fileCreator>" +
m_OSInstance->instanceHeader->fileCreator +
"</fileCreator>";
87 outStr <<
"<licence>" +
m_OSInstance->instanceHeader->licence +
"</licence>";
91 outStr <<
"</instanceHeader>" ;
93 outStr <<
"<instanceData>" ;
99 outStr <<
"<variables " ;
100 outStr <<
"numberOfVariables=\"";
101 outStr <<
m_OSInstance->instanceData->variables->numberOfVariables ;
106 for (i = 0; i <
m_OSInstance->instanceData->variables->numberOfVariables;)
109 if (
m_OSInstance->instanceData->variables->var[i] != NULL)
111 if (i < m_OSInstance->instanceData->variables->numberOfVariables - 1)
113 tmpname =
m_OSInstance->instanceData->variables->var[i]->name;
114 tmptype =
m_OSInstance->instanceData->variables->var[i]->type;
115 tmplb =
m_OSInstance->instanceData->variables->var[i]->lb;
116 tmpub =
m_OSInstance->instanceData->variables->var[i]->ub;
117 for (k=i+1; k <
m_OSInstance->instanceData->variables->numberOfVariables; k++)
119 if (tmpname !=
m_OSInstance->instanceData->variables->var[k]->name)
break;
120 if (tmptype !=
m_OSInstance->instanceData->variables->var[k]->type)
break;
121 if (tmplb !=
m_OSInstance->instanceData->variables->var[k]->lb)
break;
122 if (tmpub !=
m_OSInstance->instanceData->variables->var[k]->ub)
break;
127 if (
m_OSInstance->instanceData->variables->var[i]->name.length() > 0)
132 if(
m_OSInstance->instanceData->variables->var[i]->type !=
'C')
134 outStr <<
" type=\"" ;
135 outStr <<
m_OSInstance->instanceData->variables->var[i]->type ;
138 if(
m_OSInstance->instanceData->variables->var[i]->lb != 0.0)
152 outStr <<
" mult=\"" <<
mult <<
"\"";
158 outStr <<
"</variables>" ;
161 if(
m_OSInstance->instanceData->objectives != NULL &&
m_OSInstance->instanceData->objectives->numberOfObjectives > 0)
163 outStr <<
"<objectives " ;
164 outStr <<
"numberOfObjectives=\"";
165 outStr <<
m_OSInstance->instanceData->objectives->numberOfObjectives ;
169 for (j = 0; j <
m_OSInstance->instanceData->objectives->numberOfObjectives;)
172 if(
m_OSInstance->instanceData->objectives->obj[j] != NULL)
174 if (j < m_OSInstance->instanceData->objectives->numberOfObjectives - 1)
176 tmpname =
m_OSInstance->instanceData->objectives->obj[j]->name;
177 tmpsense =
m_OSInstance->instanceData->objectives->obj[j]->maxOrMin;
178 tmpconst =
m_OSInstance->instanceData->objectives->obj[j]->constant;
179 tmpweight =
m_OSInstance->instanceData->objectives->obj[j]->weight;
180 tmpnum =
m_OSInstance->instanceData->objectives->obj[j]->numberOfObjCoef;
181 for (k=j+1; k <
m_OSInstance->instanceData->objectives->numberOfObjectives; k++)
183 if (tmpname !=
m_OSInstance->instanceData->objectives->obj[k]->name)
break;
184 if (tmpsense !=
m_OSInstance->instanceData->objectives->obj[k]->maxOrMin)
break;
185 if (tmpconst !=
m_OSInstance->instanceData->objectives->obj[k]->constant)
break;
187 if (tmpnum !=
m_OSInstance->instanceData->objectives->obj[k]->numberOfObjCoef)
break;
188 for (kk=0; kk < tmpnum; kk++)
190 if (
m_OSInstance->instanceData->objectives->obj[k]->coef[kk]->idx !=
191 m_OSInstance->instanceData->objectives->obj[j]->coef[kk]->idx)
break;
192 if (
m_OSInstance->instanceData->objectives->obj[k]->coef[kk]->value !=
193 m_OSInstance->instanceData->objectives->obj[j]->coef[kk]->value)
break;
195 if ( kk < tmpnum)
break;
200 if(
m_OSInstance->instanceData->objectives->obj[j]->maxOrMin.length() > 0)
202 outStr <<
" maxOrMin=\"" ;
203 outStr <<
m_OSInstance->instanceData->objectives->obj[j]->maxOrMin ;
206 if(
m_OSInstance->instanceData->objectives->obj[j]->constant != 0.0)
208 outStr <<
" constant=\"" ;
214 outStr <<
" weight=\"" ;
218 if(
m_OSInstance->instanceData->objectives->obj[j]->name.length() > 0)
223 outStr <<
" numberOfObjCoef=\"" ;
224 outStr <<
m_OSInstance->instanceData->objectives->obj[j]->numberOfObjCoef ;
227 outStr <<
" mult=\"" <<
mult <<
"\"";
230 if(
m_OSInstance->instanceData->objectives->obj[j]->coef != NULL)
232 for (i = 0; i <
m_OSInstance->instanceData->objectives->obj[ j]->numberOfObjCoef; i++)
234 if(
m_OSInstance->instanceData->objectives->obj[j]->coef[i]->idx > -1 )
237 outStr <<
" idx=\"" ;
238 outStr <<
m_OSInstance->instanceData->objectives->obj[j]->coef[i]->idx ;
245 outStr <<
"</coef>" ;
255 outStr <<
"</objectives>" ;
259 if(
m_OSInstance->instanceData->constraints != NULL &&
m_OSInstance->instanceData->constraints->numberOfConstraints > 0)
261 outStr <<
"<constraints " ;
262 outStr <<
"numberOfConstraints=\"";
263 outStr <<
m_OSInstance->instanceData->constraints->numberOfConstraints ;
267 for (i = 0; i <
m_OSInstance->instanceData->constraints->numberOfConstraints;)
270 if(
m_OSInstance->instanceData->constraints->con[i] != NULL)
272 if (i < m_OSInstance->instanceData->constraints->numberOfConstraints - 1)
274 tmpname =
m_OSInstance->instanceData->constraints->con[i]->name;
275 tmpconst =
m_OSInstance->instanceData->constraints->con[i]->constant;
276 tmplb =
m_OSInstance->instanceData->constraints->con[i]->lb;
277 tmpub =
m_OSInstance->instanceData->constraints->con[i]->ub;
278 for (k=i+1; k <
m_OSInstance->instanceData->constraints->numberOfConstraints; k++)
280 if (tmpname !=
m_OSInstance->instanceData->constraints->con[k]->name)
break;
281 if (tmpconst !=
m_OSInstance->instanceData->constraints->con[k]->constant)
break;
282 if (tmplb !=
m_OSInstance->instanceData->constraints->con[k]->lb)
break;
283 if (tmpub !=
m_OSInstance->instanceData->constraints->con[k]->ub)
break;
288 if(
m_OSInstance->instanceData->constraints->con[i]->name.length())
293 if(
m_OSInstance->instanceData->constraints->con[i]->constant != 0)
295 outStr <<
" constant=\"" ;
312 outStr <<
" mult=\"" <<
mult <<
"\"";
318 outStr <<
"</constraints>" ;
322 if(
m_OSInstance->instanceData->linearConstraintCoefficients != NULL &&
m_OSInstance->instanceData->linearConstraintCoefficients->numberOfValues > 0)
324 outStr <<
"<linearConstraintCoefficients " ;
325 outStr <<
"numberOfValues=\"";
326 outStr <<
m_OSInstance->instanceData->linearConstraintCoefficients->numberOfValues ;
330 if( (
m_OSInstance->instanceData->linearConstraintCoefficients->rowIdx != NULL) &&
331 (
m_OSInstance->instanceData->linearConstraintCoefficients->rowIdx->el != NULL) )
333 if(
m_OSInstance->instanceData->linearConstraintCoefficients->start->el != NULL)
335 outStr <<
"<start>" ;
341 for(i = 0; i <=
m_OSInstance->instanceData->variables->numberOfVariables;)
344 &
mult, &incr, (
m_OSInstance->instanceData->variables->numberOfVariables) + 1-i,1);
348 outStr <<
"<el mult=\"" <<
mult <<
"\">";
350 outStr <<
"<el mult=\"" <<
mult <<
"\" incr=\"" << incr <<
"\">";
351 outStr <<
m_OSInstance->instanceData->linearConstraintCoefficients->start->el[i];
359 outStr <<
"<base64BinaryData sizeOf=\"" <<
sizeof(int) <<
"\" >" ;
361 (
m_OSInstance->instanceData->variables->numberOfVariables + 1)*
sizeof(
int) );
362 outStr <<
"</base64BinaryData>" ;
366 outStr <<
"</start>" ;
369 outStr <<
"<rowIdx>" ;
373 for(i = 0; i <
m_OSInstance->instanceData->linearConstraintCoefficients->numberOfValues;)
376 &
mult, &incr, (
m_OSInstance->instanceData->linearConstraintCoefficients->numberOfValues)-i,1);
380 outStr <<
"<el mult=\"" <<
mult <<
"\">";
382 outStr <<
"<el mult=\"" <<
mult <<
"\" incr=\"" << incr <<
"\">";
383 outStr <<
m_OSInstance->instanceData->linearConstraintCoefficients->rowIdx->el[i];
392 outStr <<
"<base64BinaryData sizeOf=\"" <<
sizeof(int) <<
"\" >" ;
394 m_OSInstance->instanceData->linearConstraintCoefficients->numberOfValues*
sizeof(
int) );
395 outStr <<
"</base64BinaryData>" ;
398 outStr <<
"</rowIdx>" ;
403 if( (
m_OSInstance->instanceData->linearConstraintCoefficients->colIdx != NULL) &&
404 (
m_OSInstance->instanceData->linearConstraintCoefficients->colIdx->el != NULL) )
406 if(
m_OSInstance->instanceData->linearConstraintCoefficients->start->el != NULL)
408 outStr <<
"<start>" ;
410 if(
m_OSInstance->instanceData->constraints != NULL &&
m_OSInstance->instanceData->constraints->numberOfConstraints > 0)
414 for(i = 0; i <=
m_OSInstance->instanceData->constraints->numberOfConstraints;)
417 &
mult, &incr, (
m_OSInstance->instanceData->constraints->numberOfConstraints) + 1-i,1);
421 outStr <<
"<el mult=\"" <<
mult <<
"\">";
423 outStr <<
"<el mult=\"" <<
mult <<
"\" incr=\"" << incr <<
"\">";
424 outStr <<
m_OSInstance->instanceData->linearConstraintCoefficients->start->el[i];
432 outStr <<
"<base64BinaryData sizeOf=\"" <<
sizeof(int) <<
"\" >" ;
434 (
m_OSInstance->instanceData->variables->numberOfVariables + 1)*
sizeof(
int) );
435 outStr <<
"</base64BinaryData>" ;
439 outStr <<
"</start>" ;
442 outStr <<
"<colIdx>";
446 for(i = 0; i <
m_OSInstance->instanceData->linearConstraintCoefficients->numberOfValues;)
449 &
mult, &incr, (
m_OSInstance->instanceData->linearConstraintCoefficients->numberOfValues)-i,1);
453 outStr <<
"<el mult=\"" <<
mult <<
"\">";
455 outStr <<
"<el mult=\"" <<
mult <<
"\" incr=\"" << incr <<
"\">";
456 outStr <<
m_OSInstance->instanceData->linearConstraintCoefficients->colIdx->el[i];
464 outStr <<
"<base64BinaryData sizeOf=\"" <<
sizeof(int) <<
"\" >" ;
466 m_OSInstance->instanceData->linearConstraintCoefficients->numberOfValues*
sizeof(
int) );
467 outStr <<
"</base64BinaryData>" ;
470 outStr <<
"</colIdx>" ;
474 if(
m_OSInstance->instanceData->linearConstraintCoefficients->value != NULL)
476 outStr <<
"<value>" ;
478 if(
m_OSInstance->instanceData->linearConstraintCoefficients->value->el != NULL)
482 for(i = 0; i <
m_OSInstance->instanceData->linearConstraintCoefficients->numberOfValues;)
485 (
m_OSInstance->instanceData->linearConstraintCoefficients->numberOfValues)-i);
489 outStr <<
"<el mult=\"" <<
mult <<
"\">";
498 outStr <<
"<base64BinaryData sizeOf=\"" <<
sizeof(double) <<
"\" >" ;
500 m_OSInstance->instanceData->linearConstraintCoefficients->numberOfValues*
sizeof(
double) );
501 outStr <<
"</base64BinaryData>" ;
505 outStr <<
"</value>" ;
508 outStr <<
"</linearConstraintCoefficients>" ;
511 if(
m_OSInstance->instanceData->quadraticCoefficients != NULL &&
m_OSInstance->instanceData->quadraticCoefficients->numberOfQuadraticTerms > 0)
513 outStr <<
"<quadraticCoefficients";
514 outStr <<
" numberOfQuadraticTerms=\"";
515 outStr <<
m_OSInstance->instanceData->quadraticCoefficients->numberOfQuadraticTerms;
518 for(i = 0; i <
m_OSInstance->instanceData->quadraticCoefficients->numberOfQuadraticTerms; i++)
520 if(
m_OSInstance->instanceData->quadraticCoefficients->qTerm[i])
525 outStr <<
m_OSInstance->instanceData->quadraticCoefficients->qTerm[i]->idx;
527 outStr <<
" idxOne=\"";
528 outStr <<
m_OSInstance->instanceData->quadraticCoefficients->qTerm[i]->idxOne;
530 outStr <<
" idxTwo=\"";
531 outStr <<
m_OSInstance->instanceData->quadraticCoefficients->qTerm[i]->idxTwo;
533 if(
m_OSInstance->instanceData->quadraticCoefficients->qTerm[i]->coef != 0)
535 outStr <<
" coef=\"";
543 outStr <<
"</quadraticCoefficients>";
547 if(
m_OSInstance->instanceData->nonlinearExpressions != NULL &&
m_OSInstance->instanceData->nonlinearExpressions->numberOfNonlinearExpressions > 0)
549 outStr <<
"<nonlinearExpressions";
550 outStr <<
" numberOfNonlinearExpressions=\"";
551 outStr <<
m_OSInstance->instanceData->nonlinearExpressions->numberOfNonlinearExpressions;
554 for(i = 0; i <
m_OSInstance->instanceData->nonlinearExpressions->numberOfNonlinearExpressions; i++)
556 if(
m_OSInstance->instanceData->nonlinearExpressions->nl[i] != NULL)
561 outStr <<
m_OSInstance->instanceData->nonlinearExpressions->nl[i]->idx;
566 if (tempStr !=
"" && tempStr !=
"general")
568 outStr <<
" shape=\"" << tempStr <<
"\"";
571 if(
m_OSInstance->instanceData->nonlinearExpressions->nl[i]->osExpressionTree->m_treeRoot != NULL)
572 outStr <<
m_OSInstance->instanceData->nonlinearExpressions->nl[i]->osExpressionTree->m_treeRoot->getNonlinearExpressionInXML();
577 outStr <<
"</nonlinearExpressions>";
583 outStr <<
"<matrices";
584 outStr <<
" numberOfMatrices=\"";
585 outStr <<
m_OSInstance->instanceData->matrices->numberOfMatrices ;
589 for (i = 0; i <
m_OSInstance->instanceData->matrices->numberOfMatrices;i++)
591 if (
m_OSInstance->instanceData->matrices->matrix[i] != NULL)
592 outStr <<
m_OSInstance->instanceData->matrices->matrix[i]->getMatrixNodeInXML();
595 outStr <<
"</matrices>" << endl;
601 outStr <<
" numberOfCones=\"";
602 outStr <<
m_OSInstance->instanceData->cones->numberOfCones ;
606 for (i = 0; i <
m_OSInstance->instanceData->cones->numberOfCones;i++)
610 switch (
m_OSInstance->instanceData->cones->cone[i]->coneType )
640 outStr <<
"</cones>" << endl;
643 if (
m_OSInstance->instanceData->matrixProgramming != NULL)
645 outStr <<
"<matrixProgramming>";
647 if (
m_OSInstance->instanceData->matrixProgramming->matrixVariables != NULL)
649 outStr <<
"<matrixVariables";
650 outStr <<
" numberOfMatrixVar=\"";
651 outStr <<
m_OSInstance->instanceData->matrixProgramming->matrixVariables->numberOfMatrixVar <<
"\">";
652 for (
int i=0; i <
m_OSInstance->instanceData->matrixProgramming->matrixVariables->numberOfMatrixVar; i++)
654 outStr <<
"<matrixVar";
655 outStr <<
" numberOfRows=\"";
656 outStr <<
m_OSInstance->instanceData->matrixProgramming->matrixVariables->matrixVar[i]->numberOfRows <<
"\"";
657 outStr <<
" numberOfColumns=\"";
658 outStr <<
m_OSInstance->instanceData->matrixProgramming->matrixVariables->matrixVar[i]->numberOfColumns <<
"\"";
660 if (
m_OSInstance->instanceData->matrixProgramming->matrixVariables->matrixVar[i]->templateMatrixIdx >= 0)
662 outStr <<
" templateMatrixIdx=\"";
663 outStr <<
m_OSInstance->instanceData->matrixProgramming->matrixVariables->matrixVar[i]->templateMatrixIdx <<
"\"";
666 if (
m_OSInstance->instanceData->matrixProgramming->matrixVariables->matrixVar[i]->varReferenceMatrixIdx >= 0)
668 outStr <<
" varReferenceMatrixIdx=\"";
669 outStr <<
m_OSInstance->instanceData->matrixProgramming->matrixVariables->matrixVar[i]->varReferenceMatrixIdx <<
"\"";
672 if (
m_OSInstance->instanceData->matrixProgramming->matrixVariables->matrixVar[i]->lbMatrixIdx >= 0)
674 outStr <<
" lbMatrixIdx=\"";
675 outStr <<
m_OSInstance->instanceData->matrixProgramming->matrixVariables->matrixVar[i]->lbMatrixIdx <<
"\"";
678 if (
m_OSInstance->instanceData->matrixProgramming->matrixVariables->matrixVar[i]->lbConeIdx >= 0)
680 outStr <<
" lbConeIdx=\"";
681 outStr <<
m_OSInstance->instanceData->matrixProgramming->matrixVariables->matrixVar[i]->lbConeIdx <<
"\"";
684 if (
m_OSInstance->instanceData->matrixProgramming->matrixVariables->matrixVar[i]->ubMatrixIdx >= 0)
686 outStr <<
" ubMatrixIdx=\"";
687 outStr <<
m_OSInstance->instanceData->matrixProgramming->matrixVariables->matrixVar[i]->ubMatrixIdx <<
"\"";
690 if (
m_OSInstance->instanceData->matrixProgramming->matrixVariables->matrixVar[i]->ubConeIdx >= 0)
692 outStr <<
" ubConeIdx=\"";
693 outStr <<
m_OSInstance->instanceData->matrixProgramming->matrixVariables->matrixVar[i]->ubConeIdx <<
"\"";
696 if (
m_OSInstance->instanceData->matrixProgramming->matrixVariables->matrixVar[i]->name !=
"")
698 outStr <<
" name=\"";
699 outStr <<
m_OSInstance->instanceData->matrixProgramming->matrixVariables->matrixVar[i]->name <<
"\"";
702 if (
verifyVarType(
m_OSInstance->instanceData->matrixProgramming->matrixVariables->matrixVar[i]->varType) &&
m_OSInstance->instanceData->matrixProgramming->matrixVariables->matrixVar[i]->varType !=
'C')
704 outStr <<
" varType=\"";
705 outStr <<
m_OSInstance->instanceData->matrixProgramming->matrixVariables->matrixVar[i]->varType <<
"\"";
708 outStr <<
"/>" << endl;
710 outStr <<
"</matrixVariables>" << endl;
713 if (
m_OSInstance->instanceData->matrixProgramming->matrixObjectives != NULL)
715 outStr <<
"<matrixObjectives";
716 outStr <<
" numberOfMatrixObj=\"";
717 outStr <<
m_OSInstance->instanceData->matrixProgramming->matrixObjectives->numberOfMatrixObj <<
"\">";
718 for (
int i=0; i <
m_OSInstance->instanceData->matrixProgramming->matrixObjectives->numberOfMatrixObj; i++)
720 outStr <<
"<matrixObj";
721 outStr <<
" numberOfRows=\"";
722 outStr <<
m_OSInstance->instanceData->matrixProgramming->matrixObjectives->matrixObj[i]->numberOfRows <<
"\"";
723 outStr <<
" numberOfColumns=\"";
724 outStr <<
m_OSInstance->instanceData->matrixProgramming->matrixObjectives->matrixObj[i]->numberOfColumns <<
"\"";
726 if (
m_OSInstance->instanceData->matrixProgramming->matrixObjectives->matrixObj[i]->templateMatrixIdx >= 0)
728 outStr <<
" templateMatrixIdx=\"";
729 outStr <<
m_OSInstance->instanceData->matrixProgramming->matrixObjectives->matrixObj[i]->templateMatrixIdx <<
"\"";
732 if (
m_OSInstance->instanceData->matrixProgramming->matrixObjectives->matrixObj[i]->objReferenceMatrixIdx >= 0)
734 outStr <<
" objReferenceMatrixIdx=\"";
735 outStr <<
m_OSInstance->instanceData->matrixProgramming->matrixObjectives->matrixObj[i]->objReferenceMatrixIdx <<
"\"";
738 if (
m_OSInstance->instanceData->matrixProgramming->matrixObjectives->matrixObj[i]->orderConeIdx >= 0)
740 outStr <<
" orderConeIdx=\"";
741 outStr <<
m_OSInstance->instanceData->matrixProgramming->matrixObjectives->matrixObj[i]->orderConeIdx <<
"\"";
744 if (
m_OSInstance->instanceData->matrixProgramming->matrixObjectives->matrixObj[i]->constantMatrixIdx >= 0)
746 outStr <<
" constantMatrixIdx=\"";
747 outStr <<
m_OSInstance->instanceData->matrixProgramming->matrixObjectives->matrixObj[i]->constantMatrixIdx <<
"\"";
750 if (
m_OSInstance->instanceData->matrixProgramming->matrixObjectives->matrixObj[i]->name !=
"")
752 outStr <<
" name=\"";
753 outStr <<
m_OSInstance->instanceData->matrixProgramming->matrixObjectives->matrixObj[i]->name <<
"\"";
756 outStr <<
"/>" << endl;
758 outStr <<
"</matrixObjectives>" << endl;
761 if (
m_OSInstance->instanceData->matrixProgramming->matrixConstraints != NULL)
763 outStr <<
"<matrixConstraints";
764 outStr <<
" numberOfMatrixCon=\"";
765 outStr <<
m_OSInstance->instanceData->matrixProgramming->matrixConstraints->numberOfMatrixCon <<
"\">";
766 for (
int i=0; i <
m_OSInstance->instanceData->matrixProgramming->matrixConstraints->numberOfMatrixCon; i++)
768 outStr <<
"<matrixCon";
769 outStr <<
" numberOfRows=\"";
770 outStr <<
m_OSInstance->instanceData->matrixProgramming->matrixConstraints->matrixCon[i]->numberOfRows <<
"\"";
771 outStr <<
" numberOfColumns=\"";
772 outStr <<
m_OSInstance->instanceData->matrixProgramming->matrixConstraints->matrixCon[i]->numberOfColumns <<
"\"";
774 if (
m_OSInstance->instanceData->matrixProgramming->matrixConstraints->matrixCon[i]->templateMatrixIdx >= 0)
776 outStr <<
" templateMatrixIdx=\"";
777 outStr <<
m_OSInstance->instanceData->matrixProgramming->matrixConstraints->matrixCon[i]->templateMatrixIdx <<
"\"";
780 if (
m_OSInstance->instanceData->matrixProgramming->matrixConstraints->matrixCon[i]->conReferenceMatrixIdx >= 0)
782 outStr <<
" conReferenceMatrixIdx=\"";
783 outStr <<
m_OSInstance->instanceData->matrixProgramming->matrixConstraints->matrixCon[i]->conReferenceMatrixIdx <<
"\"";
786 if (
m_OSInstance->instanceData->matrixProgramming->matrixConstraints->matrixCon[i]->lbMatrixIdx >= 0)
788 outStr <<
" lbMatrixIdx=\"";
789 outStr <<
m_OSInstance->instanceData->matrixProgramming->matrixConstraints->matrixCon[i]->lbMatrixIdx <<
"\"";
792 if (
m_OSInstance->instanceData->matrixProgramming->matrixConstraints->matrixCon[i]->lbConeIdx >= 0)
794 outStr <<
" lbConeIdx=\"";
795 outStr <<
m_OSInstance->instanceData->matrixProgramming->matrixConstraints->matrixCon[i]->lbConeIdx <<
"\"";
798 if (
m_OSInstance->instanceData->matrixProgramming->matrixConstraints->matrixCon[i]->ubMatrixIdx >= 0)
800 outStr <<
" ubMatrixIdx=\"";
801 outStr <<
m_OSInstance->instanceData->matrixProgramming->matrixConstraints->matrixCon[i]->ubMatrixIdx <<
"\"";
804 if (
m_OSInstance->instanceData->matrixProgramming->matrixConstraints->matrixCon[i]->ubConeIdx >= 0)
806 outStr <<
" ubConeIdx=\"";
807 outStr <<
m_OSInstance->instanceData->matrixProgramming->matrixConstraints->matrixCon[i]->ubConeIdx <<
"\"";
810 if (
m_OSInstance->instanceData->matrixProgramming->matrixConstraints->matrixCon[i]->name !=
"")
812 outStr <<
" name=\"";
813 outStr <<
m_OSInstance->instanceData->matrixProgramming->matrixConstraints->matrixCon[i]->name <<
"\"";
816 outStr <<
"/>" << endl;
818 outStr <<
"</matrixConstraints>" << endl;
821 if (
m_OSInstance->instanceData->matrixProgramming->matrixExpressions != NULL)
823 outStr <<
"<matrixExpressions";
824 outStr <<
" numberOfExpr=\"";
825 outStr <<
m_OSInstance->instanceData->matrixProgramming->matrixExpressions->numberOfExpr <<
"\">";
827 for (
int i=0; i <
m_OSInstance->instanceData->matrixProgramming->matrixExpressions->numberOfExpr; i++)
829 if (
m_OSInstance->instanceData->matrixProgramming->matrixExpressions->expr[i] != NULL)
835 outStr <<
m_OSInstance->instanceData->matrixProgramming->matrixExpressions->expr[i]->idx;
840 if (tempStr !=
"" && tempStr !=
"general");
842 outStr <<
" shape=\"" << tempStr <<
"\"";
846 if(
m_OSInstance->instanceData->matrixProgramming->matrixExpressions->expr[i]->matrixExpressionTree->m_treeRoot != NULL)
847 outStr <<
m_OSInstance->instanceData->matrixProgramming->matrixExpressions->expr[i]->matrixExpressionTree->m_treeRoot->getNonlinearExpressionInXML();
852 outStr <<
"</matrixExpressions>";
856 outStr <<
"</matrixProgramming>" << endl;
860 outStr <<
"</instanceData>";
861 outStr <<
"</osil>" ;