summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--help/en_US/cbcintlinprog.xml369
-rw-r--r--help/en_US/fgoalattain.xml486
-rw-r--r--help/en_US/fminbnd.xml194
-rw-r--r--help/en_US/fmincon.xml475
-rw-r--r--help/en_US/fminimax.xml385
-rw-r--r--help/en_US/fminunc.xml181
-rw-r--r--help/en_US/intfminbnd.xml242
-rw-r--r--help/en_US/intfmincon.xml509
-rw-r--r--help/en_US/intfminimax.xml511
-rw-r--r--help/en_US/intfminunc.xml242
-rw-r--r--help/en_US/intqpipopt.xml403
-rw-r--r--help/en_US/linprog.xml237
-rw-r--r--help/en_US/lsqlin.xml335
-rw-r--r--help/en_US/lsqnonlin.xml171
-rw-r--r--help/en_US/lsqnonneg.xml142
-rw-r--r--help/en_US/master_help.xml300
-rw-r--r--help/en_US/qpipopt.xml311
-rw-r--r--help/en_US/qpipoptmat.xml336
-rw-r--r--help/en_US/scilab_en_US_help/JavaHelpSearch/DOCSbin9489 -> 11411 bytes
-rw-r--r--help/en_US/scilab_en_US_help/JavaHelpSearch/DOCS.TABbin958 -> 1085 bytes
-rw-r--r--help/en_US/scilab_en_US_help/JavaHelpSearch/OFFSETSbin362 -> 423 bytes
-rw-r--r--help/en_US/scilab_en_US_help/JavaHelpSearch/POSITIONSbin60747 -> 91418 bytes
-rw-r--r--help/en_US/scilab_en_US_help/JavaHelpSearch/SCHEMA2
-rw-r--r--help/en_US/scilab_en_US_help/JavaHelpSearch/TMAPbin18432 -> 20480 bytes
-rw-r--r--help/en_US/scilab_en_US_help/ScilabCaution.pngbin513 -> 507 bytes
-rw-r--r--help/en_US/scilab_en_US_help/ScilabEdit.pngbin414 -> 413 bytes
-rw-r--r--help/en_US/scilab_en_US_help/ScilabImportant.pngbin637 -> 617 bytes
-rw-r--r--help/en_US/scilab_en_US_help/ScilabNote.pngbin687 -> 663 bytes
-rw-r--r--help/en_US/scilab_en_US_help/ScilabTip.pngbin687 -> 663 bytes
-rw-r--r--help/en_US/scilab_en_US_help/ScilabWarning.pngbin513 -> 507 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_cbcintlinprog.xml_1.pngbin0 -> 3675 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_cbcintlinprog.xml_2.pngbin0 -> 12221 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_cbcintlinprog.xml_3.pngbin0 -> 1893 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_cbcintlinprog.xml_4.pngbin0 -> 5815 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_cbcintlinprog.xml_5.pngbin0 -> 12275 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_cbcintlinprog.xml_6.pngbin0 -> 11353 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_1.pngbin4343 -> 170 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_10.pngbin0 -> 1185 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_2.pngbin0 -> 170 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_3.pngbin0 -> 4910 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_4.pngbin0 -> 9479 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_5.pngbin0 -> 1361 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_6.pngbin0 -> 742 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_7.pngbin0 -> 842 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_8.pngbin0 -> 1108 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_9.pngbin0 -> 1107 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_1.pngbin1792 -> 214 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_2.pngbin0 -> 268 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_3.pngbin0 -> 252 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_4.pngbin0 -> 251 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_5.pngbin0 -> 1955 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_6.pngbin0 -> 2414 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_7.pngbin0 -> 3922 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_8.pngbin0 -> 2734 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_1.pngbin3781 -> 3880 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_10.pngbin0 -> 3386 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_11.pngbin0 -> 3493 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_12.pngbin0 -> 2742 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_2.pngbin0 -> 3420 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_3.pngbin0 -> 742 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_4.pngbin0 -> 842 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_5.pngbin0 -> 898 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_6.pngbin0 -> 3386 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_7.pngbin0 -> 3493 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_8.pngbin0 -> 2742 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_9.pngbin0 -> 898 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_1.pngbin5367 -> 4880 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_2.pngbin1295 -> 1297 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_3.pngbin0 -> 4342 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_4.pngbin0 -> 1361 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_5.pngbin0 -> 742 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_6.pngbin0 -> 842 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_7.pngbin0 -> 898 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_8.pngbin0 -> 1107 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_9.pngbin0 -> 1185 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_fminunc.xml_1.pngbin714 -> 729 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_fminunc.xml_2.pngbin0 -> 983 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_fminunc.xml_3.pngbin0 -> 1486 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_fminunc.xml_4.pngbin0 -> 737 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_fminunc.xml_5.pngbin0 -> 1486 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_fminunc.xml_6.pngbin0 -> 737 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_intfminbnd.xml_1.pngbin0 -> 214 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_intfminbnd.xml_2.pngbin0 -> 268 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_intfminbnd.xml_3.pngbin0 -> 252 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_intfminbnd.xml_4.pngbin0 -> 251 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_intfminbnd.xml_5.pngbin0 -> 1954 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_intfminbnd.xml_6.pngbin0 -> 5787 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_intfminbnd.xml_7.pngbin0 -> 4291 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_intfmincon.xml_1.pngbin0 -> 4468 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_intfmincon.xml_2.pngbin0 -> 4960 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_intfmincon.xml_3.pngbin0 -> 742 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_intfmincon.xml_4.pngbin0 -> 842 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_intfmincon.xml_5.pngbin0 -> 4639 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_intfmincon.xml_6.pngbin0 -> 7448 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_intfmincon.xml_7.pngbin0 -> 4825 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_1.pngbin0 -> 5072 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_2.pngbin0 -> 1297 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_3.pngbin0 -> 5838 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_4.pngbin0 -> 1361 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_5.pngbin0 -> 742 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_6.pngbin0 -> 842 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_7.pngbin0 -> 898 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_8.pngbin0 -> 1107 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_9.pngbin0 -> 1185 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_intfminunc.xml_1.pngbin0 -> 1254 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_intfminunc.xml_2.pngbin0 -> 2392 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_intfminunc.xml_3.pngbin0 -> 3024 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_intfminunc.xml_4.pngbin0 -> 2222 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_intqpipopt.xml_1.pngbin0 -> 3972 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_intqpipopt.xml_2.pngbin0 -> 4786 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_intqpipopt.xml_3.pngbin0 -> 1662 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_intqpipopt.xml_4.pngbin0 -> 1901 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_intqpipopt.xml_5.pngbin0 -> 1865 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_intqpipopt.xml_6.pngbin0 -> 5127 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_intqpipopt.xml_7.pngbin0 -> 6590 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_linprog.xml_1.pngbin2509 -> 2750 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_linprog.xml_2.pngbin0 -> 4262 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_linprog.xml_3.pngbin0 -> 807 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_linprog.xml_4.pngbin0 -> 1097 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_linprog.xml_5.pngbin0 -> 4608 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_linprog.xml_6.pngbin0 -> 4223 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_lsqlin.xml_1.pngbin3046 -> 2557 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_lsqlin.xml_2.pngbin0 -> 6450 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_lsqlin.xml_3.pngbin0 -> 791 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_lsqlin.xml_4.pngbin0 -> 1240 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_lsqlin.xml_5.pngbin0 -> 2355 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_lsqnonlin.xml_1.pngbin1932 -> 1310 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_lsqnonlin.xml_2.pngbin0 -> 4006 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_lsqnonlin.xml_3.pngbin0 -> 878 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_lsqnonneg.xml_1.pngbin1456 -> 1190 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_lsqnonneg.xml_2.pngbin0 -> 4529 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_qpipopt.xml_1.pngbin3304 -> 3477 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_qpipopt.xml_2.pngbin0 -> 3701 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_qpipopt.xml_3.pngbin0 -> 3633 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_qpipopt.xml_4.pngbin0 -> 3633 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_qpipopt.xml_5.pngbin0 -> 3807 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_qpipopt.xml_6.pngbin0 -> 3748 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_qpipoptmat.xml_1.pngbin3148 -> 3602 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_qpipoptmat.xml_2.pngbin0 -> 3179 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_qpipoptmat.xml_3.pngbin0 -> 1420 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_qpipoptmat.xml_4.pngbin0 -> 1905 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_qpipoptmat.xml_5.pngbin0 -> 1865 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_qpipoptmat.xml_6.pngbin0 -> 2399 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_qpipoptmat.xml_7.pngbin0 -> 6590 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_symphony.xml_1.pngbin3383 -> 3519 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_symphony.xml_2.pngbin0 -> 12073 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_symphony.xml_3.pngbin0 -> 6509 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_symphonymat.xml_1.pngbin3140 -> 3205 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_symphonymat.xml_2.pngbin0 -> 12221 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_symphonymat.xml_3.pngbin0 -> 1893 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_symphonymat.xml_4.pngbin0 -> 5812 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_symphonymat.xml_5.pngbin0 -> 12275 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_symphonymat.xml_6.pngbin0 -> 11353 bytes
-rw-r--r--help/en_US/scilab_en_US_help/cbcintlinprog.html240
-rw-r--r--help/en_US/scilab_en_US_help/fgoalattain.html345
-rw-r--r--help/en_US/scilab_en_US_help/fminbnd.html139
-rw-r--r--help/en_US/scilab_en_US_help/fmincon.html331
-rw-r--r--help/en_US/scilab_en_US_help/fminimax.html279
-rw-r--r--help/en_US/scilab_en_US_help/fminunc.html142
-rw-r--r--help/en_US/scilab_en_US_help/index.html44
-rw-r--r--help/en_US/scilab_en_US_help/intfminbnd.html178
-rw-r--r--help/en_US/scilab_en_US_help/intfmincon.html339
-rw-r--r--help/en_US/scilab_en_US_help/intfminimax.html364
-rw-r--r--help/en_US/scilab_en_US_help/intfminunc.html173
-rw-r--r--help/en_US/scilab_en_US_help/intqpipopt.html267
-rw-r--r--help/en_US/scilab_en_US_help/jhelpmap.jhm10
-rw-r--r--help/en_US/scilab_en_US_help/jhelptoc.xml10
-rw-r--r--help/en_US/scilab_en_US_help/linprog.html138
-rw-r--r--help/en_US/scilab_en_US_help/lsqlin.html247
-rw-r--r--help/en_US/scilab_en_US_help/lsqnonlin.html125
-rw-r--r--help/en_US/scilab_en_US_help/lsqnonneg.html100
-rw-r--r--help/en_US/scilab_en_US_help/qpipopt.html201
-rw-r--r--help/en_US/scilab_en_US_help/qpipoptmat.html216
-rw-r--r--help/en_US/scilab_en_US_help/section_016165dcad2b2229387faee34442c3dd.html285
-rw-r--r--help/en_US/scilab_en_US_help/section_2122a46e06605359e022857633f38a15.html358
-rw-r--r--help/en_US/scilab_en_US_help/section_2f30ec7805b02b8760d8add3187208be.html85
-rw-r--r--help/en_US/scilab_en_US_help/section_44e1f57c5225357b5fe53cb5fad967e9.html394
-rw-r--r--help/en_US/scilab_en_US_help/section_5216548269879268a26b5bc137b91f5d.html85
-rw-r--r--help/en_US/scilab_en_US_help/section_5fc7ef02a133896efbd190355314d3fc.html285
-rw-r--r--help/en_US/scilab_en_US_help/section_6c2e5edddf1b5b09c56de3bdc2fc0d64.html285
-rw-r--r--help/en_US/scilab_en_US_help/section_7f9be39cf912aa1e283b946d86a6bd7c.html357
-rw-r--r--help/en_US/scilab_en_US_help/section_8b595dffcf2928adea151d3ba6836faa.html394
-rw-r--r--help/en_US/scilab_en_US_help/section_c78c9c5b46dbea583df3c010a77e5758.html285
-rw-r--r--help/en_US/scilab_en_US_help/sym_addConstr.html10
-rw-r--r--help/en_US/scilab_en_US_help/sym_addVar.html6
-rw-r--r--help/en_US/scilab_en_US_help/sym_close.html6
-rw-r--r--help/en_US/scilab_en_US_help/sym_deleteConstrs.html6
-rw-r--r--help/en_US/scilab_en_US_help/sym_deleteVars.html6
-rw-r--r--help/en_US/scilab_en_US_help/sym_getConstrActivity.html6
-rw-r--r--help/en_US/scilab_en_US_help/sym_getConstrLower.html6
-rw-r--r--help/en_US/scilab_en_US_help/sym_getConstrRange.html6
-rw-r--r--help/en_US/scilab_en_US_help/sym_getConstrSense.html6
-rw-r--r--help/en_US/scilab_en_US_help/sym_getConstrUpper.html6
-rw-r--r--help/en_US/scilab_en_US_help/sym_getDblParam.html6
-rw-r--r--help/en_US/scilab_en_US_help/sym_getInfinity.html6
-rw-r--r--help/en_US/scilab_en_US_help/sym_getIntParam.html6
-rw-r--r--help/en_US/scilab_en_US_help/sym_getIterCount.html6
-rw-r--r--help/en_US/scilab_en_US_help/sym_getMatrix.html6
-rw-r--r--help/en_US/scilab_en_US_help/sym_getNumConstr.html6
-rw-r--r--help/en_US/scilab_en_US_help/sym_getNumElements.html6
-rw-r--r--help/en_US/scilab_en_US_help/sym_getNumVar.html6
-rw-r--r--help/en_US/scilab_en_US_help/sym_getObjCoeff.html6
-rw-r--r--help/en_US/scilab_en_US_help/sym_getObjSense.html6
-rw-r--r--help/en_US/scilab_en_US_help/sym_getObjVal.html6
-rw-r--r--help/en_US/scilab_en_US_help/sym_getPrimalBound.html6
-rw-r--r--help/en_US/scilab_en_US_help/sym_getRhs.html6
-rw-r--r--help/en_US/scilab_en_US_help/sym_getStatus.html6
-rw-r--r--help/en_US/scilab_en_US_help/sym_getStrParam.html6
-rw-r--r--help/en_US/scilab_en_US_help/sym_getVarLower.html6
-rw-r--r--help/en_US/scilab_en_US_help/sym_getVarSoln.html6
-rw-r--r--help/en_US/scilab_en_US_help/sym_getVarUpper.html6
-rw-r--r--help/en_US/scilab_en_US_help/sym_isAbandoned.html6
-rw-r--r--help/en_US/scilab_en_US_help/sym_isBinary.html6
-rw-r--r--help/en_US/scilab_en_US_help/sym_isContinuous.html6
-rw-r--r--help/en_US/scilab_en_US_help/sym_isEnvActive.html6
-rw-r--r--help/en_US/scilab_en_US_help/sym_isInfeasible.html6
-rw-r--r--help/en_US/scilab_en_US_help/sym_isInteger.html6
-rw-r--r--help/en_US/scilab_en_US_help/sym_isIterLimitReached.html6
-rw-r--r--help/en_US/scilab_en_US_help/sym_isOptimal.html6
-rw-r--r--help/en_US/scilab_en_US_help/sym_isTargetGapAchieved.html6
-rw-r--r--help/en_US/scilab_en_US_help/sym_isTimeLimitReached.html6
-rw-r--r--help/en_US/scilab_en_US_help/sym_loadMPS.html6
-rw-r--r--help/en_US/scilab_en_US_help/sym_loadProblem.html6
-rw-r--r--help/en_US/scilab_en_US_help/sym_loadProblemBasic.html6
-rw-r--r--help/en_US/scilab_en_US_help/sym_open.html6
-rw-r--r--help/en_US/scilab_en_US_help/sym_resetParams.html6
-rw-r--r--help/en_US/scilab_en_US_help/sym_setConstrLower.html6
-rw-r--r--help/en_US/scilab_en_US_help/sym_setConstrType.html6
-rw-r--r--help/en_US/scilab_en_US_help/sym_setConstrUpper.html6
-rw-r--r--help/en_US/scilab_en_US_help/sym_setContinuous.html6
-rw-r--r--help/en_US/scilab_en_US_help/sym_setDblParam.html6
-rw-r--r--help/en_US/scilab_en_US_help/sym_setIntParam.html6
-rw-r--r--help/en_US/scilab_en_US_help/sym_setInteger.html6
-rw-r--r--help/en_US/scilab_en_US_help/sym_setObjCoeff.html6
-rw-r--r--help/en_US/scilab_en_US_help/sym_setObjSense.html6
-rw-r--r--help/en_US/scilab_en_US_help/sym_setPrimalBound.html6
-rw-r--r--help/en_US/scilab_en_US_help/sym_setStrParam.html6
-rw-r--r--help/en_US/scilab_en_US_help/sym_setVarLower.html6
-rw-r--r--help/en_US/scilab_en_US_help/sym_setVarSoln.html6
-rw-r--r--help/en_US/scilab_en_US_help/sym_setVarUpper.html6
-rw-r--r--help/en_US/scilab_en_US_help/sym_solve.html6
-rw-r--r--help/en_US/scilab_en_US_help/symphony.html116
-rw-r--r--help/en_US/scilab_en_US_help/symphonymat.html286
-rw-r--r--help/en_US/symphony.xml182
-rw-r--r--help/en_US/symphonymat.xml411
245 files changed, 11656 insertions, 2223 deletions
diff --git a/help/en_US/cbcintlinprog.xml b/help/en_US/cbcintlinprog.xml
new file mode 100644
index 0000000..e95f92d
--- /dev/null
+++ b/help/en_US/cbcintlinprog.xml
@@ -0,0 +1,369 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ *
+ * This help file was generated from cbcintlinprog.sci using help_from_sci().
+ *
+ -->
+
+<refentry version="5.0-subset Scilab" xml:id="cbcintlinprog" xml:lang="en"
+ xmlns="http://docbook.org/ns/docbook"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:ns3="http://www.w3.org/1999/xhtml"
+ xmlns:mml="http://www.w3.org/1998/Math/MathML"
+ xmlns:scilab="http://www.scilab.org"
+ xmlns:db="http://docbook.org/ns/docbook">
+
+ <refnamediv>
+ <refname>cbcintlinprog</refname>
+ <refpurpose>Solves a mixed integer linear programming constrained optimization problem in intlinprog format.</refpurpose>
+ </refnamediv>
+
+
+<refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>
+ xopt = cbcintlinprog(c,intcon,A,b)
+ xopt = cbcintlinprog(c,intcon,A,b,Aeq,beq)
+ xopt = cbcintlinprog(c,intcon,A,b,Aeq,beq,lb,ub)
+ xopt = cbcintlinprog(c,intcon,A,b,Aeq,beq,lb,ub,options)
+ xopt = cbcintlinprog('path_to_mps_file')
+ xopt = cbcintlinprog('path_to_mps_file',options)
+ [xopt,fopt,status,output] = cbcintlinprog( ... )
+
+ </synopsis>
+</refsynopsisdiv>
+
+<refsection>
+ <title>Input Parameters</title>
+ <variablelist>
+ <varlistentry><term>c :</term>
+ <listitem><para> a vector of double, contains coefficients of the variables in the objective</para></listitem></varlistentry>
+ <varlistentry><term>intcon :</term>
+ <listitem><para> Vector of integer constraints, specified as a vector of positive integers. The values in intcon indicate the components of the decision variable x that are integer-valued. intcon has values from 1 through number of variable.</para></listitem></varlistentry>
+ <varlistentry><term>A :</term>
+ <listitem><para> A matrix of doubles, containing the coefficients of linear inequality constraints of size (m X n) where 'm' is the number of linear inequality constraints.</para></listitem></varlistentry>
+ <varlistentry><term>b :</term>
+ <listitem><para> A vector of doubles, related to 'A' and containing the the Right hand side equation of the linear inequality constraints of size (m X 1).</para></listitem></varlistentry>
+ <varlistentry><term>Aeq :</term>
+ <listitem><para> A matrix of doubles, containing the coefficients of linear equality constraints of size (m1 X n) where 'm1' is the number of linear equality constraints.</para></listitem></varlistentry>
+ <varlistentry><term>beq :</term>
+ <listitem><para> A vector of doubles, related to 'Aeq' and containing the the Right hand side equation of the linear equality constraints of size (m1 X 1).</para></listitem></varlistentry>
+ <varlistentry><term>lb :</term>
+ <listitem><para> A vector of doubles, containing the lower bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables.</para></listitem></varlistentry>
+ <varlistentry><term>ub :</term>
+ <listitem><para> A vector of doubles, containing the upper bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables.</para></listitem></varlistentry>
+ <varlistentry><term>options :</term>
+ <listitem><para> A list, containing the option for user to specify. See below for details.</para></listitem></varlistentry>
+ </variablelist>
+</refsection>
+<refsection>
+<title> Outputs</title>
+ <variablelist>
+ <varlistentry><term>xopt :</term>
+ <listitem><para> A vector of doubles, containing the computed solution of the optimization problem.</para></listitem></varlistentry>
+ <varlistentry><term>fopt :</term>
+ <listitem><para> A double, containing the the function value at x.</para></listitem></varlistentry>
+ <varlistentry><term>status :</term>
+ <listitem><para> An integer, containing the flag which denotes the reason for termination of algorithm. See below for details.</para></listitem></varlistentry>
+ <varlistentry><term>output :</term>
+ <listitem><para> A structure, containing the information about the optimization. See below for details.</para></listitem></varlistentry>
+ </variablelist>
+</refsection>
+
+<refsection>
+ <title>Description</title>
+ <para>
+Search the minimum or maximum of a constrained mixed integer linear programming optimization problem specified by :
+ </para>
+ <para>
+<latex>
+\begin{eqnarray}
+&amp;\mbox{min}_{x}
+&amp; C^T⋅x \\
+&amp; \text{Subjected to:} &amp; A⋅x \leq b \\
+&amp; &amp; Aeq⋅x = beq \\
+&amp; &amp; lb \leq x \leq ub \\
+&amp; &amp; x_i \in \!\, \mathbb{Z}, i \in \!\, intcon\\
+\end{eqnarray}
+</latex>
+</para>
+ <para>
+CBC, an optimization library written in C++, is used for solving the linear programming problems.
+
+ </para>
+<para>
+<title>Options</title>
+The options allow the user to set various parameters of the Optimization problem. The syntax for the options is given by:
+ </para>
+ <para>
+options= list("IntegerTolerance", [---], "MaxNodes",[---], "MaxIter", [---], "AllowableGap",[---] "CpuTime", [---],"gradobj", "off", "hessian", "off" );
+<itemizedlist>
+<listitem>IntegerTolerance : A Scalar, a number with that value of an integer is considered integer.</listitem>
+<listitem>MaxNodes : A Scalar, containing the maximum number of nodes that the solver should search.</listitem>
+<listitem>MaxTime : A scalar, specifying the maximum amount of CPU Time in seconds that the solver should take.</listitem>
+<listitem>AllowableGap : A scalar, that specifies the gap between the computed solution and the the objective value of the best known solution stop, at which the tree search can be stopped.</listitem>
+</itemizedlist>
+ The default values for the various items are given as:
+ </para>
+ <para>
+ options = list('integertolerance',1d-06,'maxnodes',2147483647,'cputime',1d10,'allowablegap')
+ </para>
+<para>
+The exitflag allows the user to know the status of the optimization which is returned by OSI-CBC. The values it can take and what they indicate is described below:
+<itemizedlist>
+<listitem> 0 : Optimal Solution Found </listitem>
+<listitem> 1 : Converged to a point of primal infeasibility.</listitem>
+<listitem> 2 : Solution Limit is reached</listitem>
+<listitem> 3 : Node Limit is reached. Output may not be optimal.</listitem>
+<listitem> 4 : Numerical Difficulties.</listitem>
+<listitem> 5 : Maximum amount of CPU Time exceeded. </listitem>
+<listitem> 6 : Continuous Solution Unbounded.</listitem>
+<listitem> 7 : Converged to a point of dual infeasibility.</listitem>
+</itemizedlist>
+ </para>
+ <para>
+For more details on exitflag, see the Bonmin documentation which can be found on http://www.coin-or.org/Cbc
+ </para>
+ <para>
+</para>
+
+</refsection>
+
+<para>
+A few examples displaying the various functionalities of cbcintlinprog have been provided below. You will find a series of problems and the appropriate code snippets to solve them.
+ </para>
+
+<refsection>
+ <title>Example</title>
+ <para>
+ Here we solve a simple objective function, subjected to three linear inequality constraints.
+ </para>
+ <para>
+Find x in R^8 such that it minimizes:
+ </para>
+ <para>
+<latex>
+ \begin{eqnarray}
+\mbox{min}_{x}\ f(x) = 1750x_{1} + 990x_{2} + 1240x_{3} + 1680x_{4} + 500x_{5} + 450x_{6} + 400x_{7} + 100x_{8} \\
+\end{eqnarray}\\
+\text{Subjected to:}\\
+\begin{eqnarray}
+\hspace{70pt} &amp;6x_{1} + 4.25x_{2} + 5.5x_{3} + 7.75x_{4} + 3x_{5} + 3.25x_{6} + 3.5x_{7} + 3.75x_{8}&amp;\leq 100\\
+\hspace{70pt} &amp;1.25x_{1} + 1.37x_{2} + 1.7x_{3} + 1.93x_{4} + 2.08x_{5} + 2.32x_{6} + 2.56x_{7} + 2.78x_{8}&amp;\leq 205\\
+\hspace{70pt} &amp;1.15x_{1} + 1.34x_{2} + 1.66x_{3} + 1.99x_{4} + 2.06x_{5} + 2.32x_{6} + 2.58x_{7} + 2.84x_{8}&amp;\leq 409\\
+\end{eqnarray}\\
+\text{With integer constraints as: }
+\begin{eqnarray}
+\begin{array}{cccccc}
+[1 &amp; 2 &amp; 3 &amp; 4] \\
+\end{array}
+\end{eqnarray}
+ </latex>
+</para>
+ <programlisting role="example"><![CDATA[
+// Example 1:
+// Reference: Westerberg, Carl-Henrik, Bengt Bjorklund, and Eskil Hultman. "An application of mixed integer
+// programming in a Swedish steel mill." Interfaces 7, no. 2 (1977): 39-43. Modified acc. to requirements.
+c = [350*5,330*3,310*4,280*6,500,450,400,100]';
+A = [6,4.25, 5.5, 7.75, 3, 3.25, 3.5,3.75;
+ 1.25,1.37,1.7,1.93,2.08,2.32,2.56,2.78;
+ 1.15,1.34,1.66,1.99,2.06,2.32,2.58,2.84 ];
+b = [100 ,205, 249 ];
+//Defining the integer constraints
+intcon = [1 2 3 4];
+// Calling Symphony
+[x,f,status,output] = cbcintlinprog(c,intcon,A,b)
+// Press ENTER to continue
+
+ ]]></programlisting>
+</refsection>
+
+<refsection>
+ <title>Example</title>
+ <para>
+Here we build up on the previous example by adding upper and lower bounds to the variables.
+We add the following bounds to the problem specified above: </para>
+ <para>
+<latex>
+\begin{eqnarray}
+0 &amp;\leq x_{1} &amp;\leq 1\\
+0 &amp;\leq x_{2} &amp;\leq 1\\
+0 &amp;\leq x_{3} &amp;\leq 1\\
+0 &amp;\leq x_{4} &amp;\leq 1\\
+0 &amp;\leq x_{5} &amp;\leq \infty\\
+0 &amp;\leq x_{6} &amp;\leq \infty\\
+0 &amp;\leq x_{7} &amp;\leq \infty\\
+0 &amp;\leq x_{8} &amp;\leq \infty
+\end{eqnarray}
+ </latex>
+</para>
+ <programlisting role="example"><![CDATA[
+// Example 2:
+// Reference: Westerberg, Carl-Henrik, Bengt Bjorklund, and Eskil Hultman. "An application of mixed integer
+// programming in a Swedish steel mill." Interfaces 7, no. 2 (1977): 39-43. Modified acc. to requirements.
+ c = [350*5,330*3,310*4,280*6,500,450,400,100]';
+ //Inequality constraints
+ A = [6,4.25, 5.5, 7.75, 3, 3.25, 3.5,3.75;
+ 1.25,1.37,1.7,1.93,2.08,2.32,2.56,2.78;
+ 1.15,1.34,1.66,1.99,2.06,2.32,2.58,2.84 ];
+ b = [100 ,205, 249 ];
+
+ // Lower Bound of variable
+lb = repmat(0,1,8);
+// Upper Bound of variables
+ub = [repmat(1,1,4) repmat(%inf,1,4)];
+ //Integer Constraints
+ intcon = [1 2 3 4];
+ // Calling Symphony
+ [x,f,status,output] = cbcintlinprog(c,intcon,A,b,[],[],lb,ub)
+// Press ENTER to continue
+
+ ]]></programlisting>
+</refsection>
+
+<refsection>
+ <title>Example</title>
+ <para>
+In this example, we proceed to add the linear equality constraints to the objective function.
+ </para>
+
+ <para>
+<latex>
+\begin{eqnarray}
+&amp;5x_{1} + 3x_{2} + 4x_{3} + 6x_{4} + x_{5} + x_{6} + x_{7} + x_{8}&amp;= 25\\
+&amp;0.25x_{1} + 0.12x_{2} + 0.2x_{3} + 0.18x_{4} + 0.08x_{5} + 0.07x_{6} + 0.06x_{7} + 0.03x_{8}&amp;= 1.25\\
+&amp;0.15x_{1} + 0.09x_{2} + 0.16x_{3} + 0.24x_{4} + 0.06x_{5} + 0.07x_{6} + 0.08x_{7} + 0.09x_{8}&amp;= 1.25\\
+\end{eqnarray}
+ </latex>
+</para>
+ <programlisting role="example"><![CDATA[
+// Example 3:
+// Reference: Westerberg, Carl-Henrik, Bengt Bjorklund, and Eskil Hultman. "An application of mixed integer
+// programming in a Swedish steel mill." Interfaces 7, no. 2 (1977): 39-43. Modified acc. to requirements.
+c = [350*5,330*3,310*4,280*6,500,450,400,100]';
+//Inequality constraints
+A = [6,4.25, 5.5, 7.75, 3, 3.25, 3.5,3.75;
+ 1.25,1.37,1.7,1.93,2.08,2.32,2.56,2.78;
+ 1.15,1.34,1.66,1.99,2.06,2.32,2.58,2.84 ];
+b = [100 ,205, 249 ];
+// Lower Bound of variable
+lb = repmat(0,1,8);
+// Upper Bound of variables
+ub = [repmat(1,1,4) repmat(%inf,1,4)];
+// Equality Constraints
+Aeq = [5,3,4,6,1,1,1,1;
+5*0.05,3*0.04,4*0.05,6*0.03,0.08,0.07,0.06,0.03;
+5*0.03,3*0.03,4*0.04,6*0.04,0.06,0.07,0.08,0.09;]
+beq = [ 25, 1.25, 1.25];
+ //Integer Constraints
+intcon = [1 2 3 4];
+// Calling CBC
+[x,f,status,output] = cbcintlinprog(c,intcon,A,b,Aeq,beq,lb,ub)
+// Press ENTER to continue
+
+ ]]></programlisting>
+</refsection>
+
+<refsection>
+ <title>Example</title>
+ <para>
+Primal Infeasible Problems: Find x in R^8 such that it minimizes:
+ </para>
+ <para>
+Find x in R^8 such that it minimizes:
+ </para>
+ <para>
+<latex>
+ \begin{eqnarray}
+\mbox{min}_{x}\ f(x) = 1750x_{1} + 990x_{2} + 1240x_{3} + 1680x_{4} + 500x_{5} + 450x_{6} + 400x_{7} + 100x_{8} \\
+\end{eqnarray}\\
+\text{Subjected to:}\\
+\begin{eqnarray}
+\hspace{70pt} &amp;6x_{1} + 4.25x_{2} + 5.5x_{3} + 7.75x_{4} + 3x_{5} + 3.25x_{6} + 3.5x_{7} + 3.75x_{8}&amp;\leq 26.333\\
+\hspace{70pt} &amp;1.25x_{1} + 1.37x_{2} + 1.7x_{3} + 1.93x_{4} + 2.08x_{5} + 2.32x_{6} + 2.56x_{7} + 2.78x_{8}&amp;\leq 3.916\\
+\hspace{70pt} &amp;1.15x_{1} + 1.34x_{2} + 1.66x_{3} + 1.99x_{4} + 2.06x_{5} + 2.32x_{6} + 2.58x_{7} + 2.84x_{8}&amp;\leq 5.249\\
+\end{eqnarray}\\
+\text{With integer constraints as: }
+\begin{eqnarray}
+\begin{array}{cccc}
+[1 &amp; 2 &amp; 3 &amp; 4]
+\end{array}
+\end{eqnarray}
+ </latex>
+</para>
+ <programlisting role="example"><![CDATA[
+// Example 4:
+// Reference: Westerberg, Carl-Henrik, Bengt Bjorklund, and Eskil Hultman. "An application of mixed integer
+// programming in a Swedish steel mill." Interfaces 7, no. 2 (1977): 39-43. Modified acc. to requirements.
+c = [350*5,330*3,310*4,280*6,500,450,400,100]';
+//Inequality constraints
+A = [6,4.25, 5.5, 7.75, 3, 3.25, 3.5,3.75;
+ 1.25,1.37,1.7,1.93,2.08,2.32,2.56,2.78;
+ 1.15,1.34,1.66,1.99,2.06,2.32,2.58,2.84 ];
+b = [26.333 ,3.916 ,5.249 ];
+ //Integer Constraints
+intcon = [1 2 3 4];
+
+// Calling CBC
+
+[x,f,status,output] = cbcintlinprog(c,intcon,A,b)
+// Press ENTER to continue
+
+ ]]></programlisting>
+</refsection>
+
+<refsection>
+ <title>Example</title>
+ <para>
+Unbounded Problems. Find x in R^8 such that it minimizes:
+ </para>
+ <para>
+<latex>
+ \begin{eqnarray}
+\mbox{min}_{x}\ f(x) = 1750x_{1} + 990x_{2} + 1240x_{3} + 1680x_{4} + 500x_{5} + 450x_{6} + 400x_{7} + 100x_{8} \\
+\end{eqnarray}\\
+\text{Subjected to:}\\
+\begin{eqnarray}
+\hspace{70pt} &amp;5x_{1} + 3x_{2} + 4x_{3} + 6x_{4} + x_{5} + x_{6} + x_{7} + x_{8}&amp;= 25\\
+\hspace{70pt} &amp;0.25x_{1} + 0.12x_{2} + 0.2x_{3} + 0.18x_{4} + 0.08x_{5} + 0.07x_{6} + 0.06x_{7} + 0.03x_{8}&amp;= 1.25\\
+\hspace{70pt} &amp;0.15x_{1} + 0.09x_{2} + 0.16x_{3} + 0.24x_{4} + 0.06x_{5} + 0.07x_{6} + 0.08x_{7} + 0.09x_{8}&amp;= 1.25\\
+\end{eqnarray}\\
+\text{With integer constraints as: }
+\begin{eqnarray}
+\begin{array}{cccccc}
+[1 &amp; 2 &amp; 3 &amp; 4] \\
+\end{array}
+\end{eqnarray}
+ </latex>
+</para>
+ <programlisting role="example"><![CDATA[
+// Example 5:
+// Reference: Westerberg, Carl-Henrik, Bengt Bjorklund, and Eskil Hultman. "An application of mixed integer
+// programming in a Swedish steel mill." Interfaces 7, no. 2 (1977): 39-43. Modified acc. to requirements.
+c = [350*5,330*3,310*4,280*6,500,450,400,100]';
+//Inequality constraints
+A = [];
+b = [];
+// Equality Constraints
+Aeq = [5,3,4,6,1,1,1,1;
+5*0.05,3*0.04,4*0.05,6*0.03,0.08,0.07,0.06,0.03;
+5*0.03,3*0.03,4*0.04,6*0.04,0.06,0.07,0.08,0.09;]
+beq = [ 25, 1.25, 1.25];
+ //Integer Constraints
+intcon = [1 2 3 4];
+// Calling CBC
+[x,f,status,output] = cbcintlinprog(c,intcon,A,b,Aeq,beq)
+// Press ENTER to continue
+
+ ]]></programlisting>
+</refsection>
+
+<refsection>
+ <title>Authors</title>
+ <simplelist type="vert">
+ <member>Akshay Miterani and Pranav Deshpande</member>
+ </simplelist>
+</refsection>
+</refentry>
diff --git a/help/en_US/fgoalattain.xml b/help/en_US/fgoalattain.xml
index 3e69265..602e32f 100644
--- a/help/en_US/fgoalattain.xml
+++ b/help/en_US/fgoalattain.xml
@@ -40,152 +40,129 @@
</refsynopsisdiv>
<refsection>
- <title>Parameters</title>
+ <title>Input Parameters</title>
<variablelist>
<varlistentry><term>fun:</term>
- <listitem><para> a function that accepts a vector x and returns a vector F</para></listitem></varlistentry>
+ <listitem><para> A function that accepts a vector x as input and returns the value of objective function at x.</para></listitem></varlistentry>
<varlistentry><term>x0 :</term>
- <listitem><para> a vector of double, contains initial guess of variables.</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, containing the starting values of variables of size (1 X n) or (n X 1) where 'n' is the number of variables.</para></listitem></varlistentry>
+ <varlistentry><term>goal :</term>
+ <listitem><para> A vector of doubles, containing the goals, which are the values the objective functions are supposed to achieve.</para></listitem></varlistentry>
+ <varlistentry><term>weights:</term>
+ <listitem><para> A vector of doubles, containing the weights assigned to each objective function.</para></listitem></varlistentry>
<varlistentry><term>A :</term>
- <listitem><para> a matrix of double, represents the linear coefficients in the inequality constraints A⋅x ≤ b.</para></listitem></varlistentry>
+ <listitem><para> A matrix of doubles, containing the coefficients of linear inequality constraints of size (m X n) where 'm' is the number of linear inequality constraints.</para></listitem></varlistentry>
<varlistentry><term>b :</term>
- <listitem><para> a vector of double, represents the linear coefficients in the inequality constraints A⋅x ≤ b.</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, related to 'A' and represents the linear coefficients in the linear inequality constraints of size (m X 1).</para></listitem></varlistentry>
<varlistentry><term>Aeq :</term>
- <listitem><para> a matrix of double, represents the linear coefficients in the equality constraints Aeq⋅x = beq.</para></listitem></varlistentry>
+ <listitem><para> A matrix of doubles, containing the coefficients of linear equality constraints of size (m1 X n) where 'm1' is the number of linear equality constraints.</para></listitem></varlistentry>
<varlistentry><term>beq :</term>
- <listitem><para> a vector of double, represents the linear coefficients in the equality constraints Aeq⋅x = beq.</para></listitem></varlistentry>
+ <listitem><para>A vector of double, vector of doubles, related to 'Aeq' and represents the linear coefficients in the equality constraints of size (m1 X 1)</para></listitem></varlistentry>
<varlistentry><term>lb :</term>
- <listitem><para> a vector of double, contains lower bounds of the variables.</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, containing the lower bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables.</para></listitem></varlistentry>
<varlistentry><term>ub :</term>
- <listitem><para> a vector of double, contains upper bounds of the variables.</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, containing the upper bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables.</para></listitem></varlistentry>
<varlistentry><term>nonlcon:</term>
- <listitem><para> a function, the nonlinear constraints</para></listitem></varlistentry>
+ <listitem><para> A function, representing the Non-linear Constraints functions(both Equality and Inequality) of the problem. It is declared in such a way that non-linear inequality constraints (c), and the non-linear equality constraints (ceq) are defined as separate single row vectors.</para></listitem></varlistentry>
<varlistentry><term>options :</term>
- <listitem><para> a list, containing the option for user to specify. See below for details.</para></listitem></varlistentry>
+ <listitem><para> A list, containing the option for user to specify. See below for details.</para></listitem></varlistentry>
+ </variablelist>
+</refsection>
+<refsection>
+<title> Outputs</title>
+ <variablelist>
<varlistentry><term>xopt :</term>
- <listitem><para> a vector of double, the computed solution of the optimization problem.</para></listitem></varlistentry>
- <varlistentry><term>fopt :</term>
- <listitem><para> a double, the value of the function at x.</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, containing the computed solution of the optimization problem.</para></listitem></varlistentry>
+ <varlistentry><term>fval :</term>
+ <listitem><para> A vector of doubles, containing the values of the objective functions at the end of the optimization problem.</para></listitem></varlistentry>
<varlistentry><term>attainfactor:</term>
- <listitem><para> The amount of over- or underachievement of the goals,γ at the solution.</para></listitem></varlistentry>
+ <listitem><para> The amount of over or underachievement of the goals (<latex>\gamma</latex>) at the solution.</para></listitem></varlistentry>
<varlistentry><term>exitflag :</term>
- <listitem><para> The exit status. See below for details.</para></listitem></varlistentry>
+ <listitem><para> An integer, containing the flag which denotes the reason for termination of algorithm. See below for details.</para></listitem></varlistentry>
<varlistentry><term>output :</term>
- <listitem><para> The structure consist of statistics about the optimization. See below for details.</para></listitem></varlistentry>
+ <listitem><para> A structure, containing the information about the optimization. See below for details.</para></listitem></varlistentry>
<varlistentry><term>lambda :</term>
- <listitem><para> The structure consist of the Lagrange multipliers at the solution of problem. See below for details.</para></listitem></varlistentry>
+ <listitem><para> A structure, containing the Lagrange multipliers of lower bound, upper bound and constraints at the optimized point. See below for details.</para></listitem></varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
-fgoalattain solves the goal attainment problem, which is one formulation for minimizing a multiobjective optimization problem.
-Finds the minimum of a problem specified by:
-Minimise Y such that
+fgoalattain solves the goal attainment problem, which is a formulation for minimizing a multiobjective optimization problem. Find the minimum of a problem specified by:
+</para>
+ <para>
+Minimise <latex>\gamma</latex> such that:
</para>
<para>
<latex>
\begin{eqnarray}
-\mbox{min}_{x,\gamma} &amp; f(x)-weight \ast \gamma \leq goal \\
-\mbox{subject to} &amp; c(x) \leq 0 \\
-&amp; c_{eq}(x) = 0 \\
-&amp; Ax \leq b \\
-&amp; A_{eq} x = b_{eq} \\
-&amp; lb \leq x \leq ub
+&amp;\mbox{min}_{x,\gamma} x\\
+\end{eqnarray}
+\\&amp;\text{Subjected to:}\\
+\begin{eqnarray}
+&amp; &amp; F(x)-weight \boldsymbol{\cdot} \gamma \leq goal \\
+&amp; &amp; A\boldsymbol{\cdot} x \leq b \\
+&amp; &amp;A_{eq}\boldsymbol{\cdot} {x} = b_{eq}\\
+&amp; &amp;c(x) \leq 0\\
+&amp; &amp;c_{eq}(x) \ = 0\\
+&amp; &amp;lb \leq x \leq ub \\
\end{eqnarray}
</latex>
</para>
<para>
-The solver makes use of fmincon to find the minimum.
- </para>
- <para>
-The fgoalattain finds out the maximum value of Y for the objectives evaluated at the starting point and
-adds that as another variable to the vector x
-This is passed to the fmincon function to get the optimised value of Y
-Hence, the algorithm used mainly is "ipopt" to obtain the optimum solution
-The relations between f(x), Y, weights and goals are added as additional non-linear inequality constraints
- </para>
- <para>
-The options allows the user to set various parameters of the Optimization problem.
-It should be defined as type "list" and contains the following fields.
-<itemizedlist>
-<listitem>Syntax : options= list("MaxIter", [---], "CpuTime", [---], "GradObj", ---, "GradCon", ---);</listitem>
-<listitem>MaxIter : a Scalar, containing the Maximum Number of Iteration that the solver should take.</listitem>
-<listitem>CpuTime : a Scalar, containing the Maximum amount of CPU Time that the solver should take.</listitem>
-<listitem>GradObj : a function, representing the gradient function of the Objective in Vector Form.</listitem>
-<listitem>GradCon : a function, representing the gradient of the Non-Linear Constraints (both Equality and Inequality) of the problem. It is declared in such a way that gradient of non-linear inequality constraints are defined first as a separate Matrix (cg of size m2 X n or as an empty), followed by gradient of non-linear equality constraints as a separate Matrix (ceqg of size m2 X n or as an empty) where m2 &amp; m3 are number of non-linear inequality and equality constraints respectively.</listitem>
-<listitem>Default Values : options = list("MaxIter", [3000], "CpuTime", [600]);</listitem>
-</itemizedlist>
- </para>
- <para>
-By default, the gradient options for fminimax are turned off and and fmincon does the gradient opproximation of gattainObjfun. In case the GradObj option is off and GradConstr option is on, fminimax approximates gattainObjfun gradient using numderivative toolbox.
- </para>
- <para>
-If we can provide exact gradients, we should do so since it improves the convergence speed of the optimization algorithm.
- </para>
- <para>
-Furthermore, we must enable the "GradObj" option with the statement :
-<programlisting>
-minimaxOptions = list("GradObj",fGrad);
-</programlisting>
-This will let fminimax know that the exact gradient of the objective function is known, so that it can change the calling sequence to the objective function. Note that, fGrad should be mentioned in the form of N x n where n is the number of variables, N is the number of functions in objective function.
</para>
<para>
-The constraint function must have header :
-<programlisting>
-[c, ceq] = confun(x)
-</programlisting>
-where x is a n x 1 matrix of doubles, c is a 1 x nni matrix of doubles and ceq is a 1 x nne matrix of doubles (nni : number of nonlinear inequality constraints, nne : number of nonlinear equality constraints).
-On input, the variable x contains the current point and, on output, the variable c must contain the nonlinear inequality constraints and ceq must contain the nonlinear equality constraints.
+The solver makes use of fmincon, which uses the Ipopt solver, an optimization library written in C++, to solve the problem.
</para>
- <para>
-By default, the gradient options for fminimax are turned off and and fmincon does the gradient opproximation of confun. In case the GradObj option is on and GradCons option is off, fminimax approximates confun gradient using numderivative toolbox.
+<title>Options</title>
+<para>
+The options allow the user to set various parameters of the Optimization problem. The syntax for the options is given by:
</para>
<para>
-If we can provide exact gradients, we should do so since it improves the convergence speed of the optimization algorithm.
+options= list("MaxIter", [---], "CpuTime", [---], "GradObj", ---, "Hessian", ---, "GradCon", ---);
</para>
<para>
-Furthermore, we must enable the "GradCon" option with the statement :
-<programlisting>
-minimaxOptions = list("GradCon",confunGrad);
-</programlisting>
-This will let fminimax know that the exact gradient of the objective function is known, so that it can change the calling sequence to the objective function.
+The options should be defined as type "list" and consist of the following fields:
+<itemizedlist>
+<listitem>MaxIter : A Scalar, specifying the maximum number of iterations that the solver should take.</listitem>
+<listitem>CpuTime : A Scalar, specifying the maximum amount of CPU time in seconds that the solver should take.</listitem>
+<listitem>GradObj : A function, representing the gradient function of the Objective in Vector Form.</listitem>
+<listitem>GradCon : A function, representing the gradient of the Non-Linear Constraints (both Equality and Inequality) of the problem. It is declared in such a way that gradient of non-linear inequality constraints are defined first as a separate Matrix (cg of size m2 X n or as an empty), followed by gradient of non-linear equality constraints as a separate matrix (ceqg of size m2 X n or as an empty) where m2 &amp;amp; m3 are number of non-linear inequality and equality constraints respectively.</listitem>
+</itemizedlist>
+The default values for the various items are given as:
</para>
<para>
-The constraint derivative function must have header :
-<programlisting>
-[dc,dceq] = confungrad(x)
-</programlisting>
-where dc is a nni x n matrix of doubles and dceq is a nne x n matrix of doubles.
+options = list("MaxIter", [3000], "CpuTime", [600]);
</para>
- <para>
-The exitflag allows to know the status of the optimization which is given back by Ipopt.
+
+ <para>
+The exitflag allows the user to know the status of the optimization which is returned by Ipopt. The values it can take and what they indicate is described below:
<itemizedlist>
-<listitem>exitflag=0 : Optimal Solution Found </listitem>
-<listitem>exitflag=1 : Maximum Number of Iterations Exceeded. Output may not be optimal.</listitem>
-<listitem>exitflag=2 : Maximum amount of CPU Time exceeded. Output may not be optimal.</listitem>
-<listitem>exitflag=3 : Stop at Tiny Step.</listitem>
-<listitem>exitflag=4 : Solved To Acceptable Level.</listitem>
-<listitem>exitflag=5 : Converged to a point of local infeasibility.</listitem>
+<listitem> 0 : Optimal Solution Found </listitem>
+<listitem> 1 : Maximum Number of Iterations Exceeded. Output may not be optimal.</listitem>
+<listitem> 2 : Maximum amount of CPU Time exceeded. Output may not be optimal.</listitem>
+<listitem> 3 : Stop at Tiny Step.</listitem>
+<listitem> 4 : Solved To Acceptable Level.</listitem>
+<listitem> 5 : Converged to a point of local infeasibility.</listitem>
</itemizedlist>
</para>
<para>
-For more details on exitflag see the ipopt documentation, go to http://www.coin-or.org/Ipopt/documentation/
+For more details on exitflag, see the Ipopt documentation which can be found on http://www.coin-or.org/Ipopt/documentation/
</para>
<para>
-The output data structure contains detailed informations about the optimization process.
-It has type "struct" and contains the following fields.
+The output data structure contains detailed information about the optimization process.
+It is of type "struct" and contains the following fields.
<itemizedlist>
-<listitem>output.Iterations: The number of iterations performed during the search</listitem>
-<listitem>output.Cpu_Time: The total cpu-time spend during the search</listitem>
-<listitem>output.Objective_Evaluation: The number of Objective Evaluations performed during the search</listitem>
-<listitem>output.Dual_Infeasibility: The Dual Infeasiblity of the final soution</listitem>
+<listitem>output.Iterations: The number of iterations performed.</listitem>
+<listitem>output.Cpu_Time : The total cpu-time taken.</listitem>
+<listitem>output.Objective_Evaluation: The number of Objective Evaluations performed.</listitem>
+<listitem>output.Dual_Infeasibility : The Dual Infeasiblity of the final soution.</listitem>
+<listitem>output.Message: The output message for the problem.</listitem>
</itemizedlist>
</para>
- <para>
-The lambda data structure contains the Lagrange multipliers at the end
-of optimization. In the current version the values are returned only when the the solution is optimal.
+ <para>
+The lambda data structure contains the Lagrange multipliers at the end of optimization. In the current version the values are returned only when the the solution is optimal.
It has type "struct" and contains the following fields.
<itemizedlist>
<listitem>lambda.lower: The Lagrange multipliers for the lower bound constraints.</listitem>
@@ -200,9 +177,41 @@ It has type "struct" and contains the following fields.
</para>
</refsection>
+<para>
+A few examples displaying the various functionalities of fgoalattain have been provided below. You will find a series of problems and the appropriate code snippets to solve them.
+ </para>
<refsection>
- <title>Examples</title>
+ <title>Example</title>
+ Here we solve a simple objective function, subjected to no constraints.
+<para>
+<latex>
+\begin{eqnarray}
+\qquad \qquad \qquad \mbox{min}_{x,\gamma} \gamma
+\end{eqnarray}
+\\
+\text{Such that:}\\
+\begin{eqnarray}
+\qquad &amp; F(x)-weight \boldsymbol{\cdot} \gamma \leq goal \\
+\end{eqnarray}
+\\
+\text{Where F(x) = }\:\begin{cases}
+\begin{eqnarray}
+&amp;f_{1}(x) &amp;= 2 \boldsymbol{\cdot} x_{1}^{2} + x_{2}^{2} - 48x_{1} - 40x_{2} + 304\\
+&amp;f_{2}(x) &amp;= -x_{1}^{2} - 3x_{2}^{2}\\
+&amp;f_{3}(x) &amp;= x_{1} + 3x_{2} - 18\\
+&amp;f_{4}(x) &amp;= -x_{1} - x_{2}\\
+&amp;f_{5}(x) &amp;= x_{1} + x_{2} - 8
+\end{eqnarray}
+\end{cases}
+
+</latex>
+ </para>
+ <para>
+
+ </para>
<programlisting role="example"><![CDATA[
+//Example 1:
+// Objective function
function f1 = gattainObjfun(x)
f1(1)=2*x(1)*x(1)+x(2)*x(2)-48*x(1)-40*x(2)+304
f1(2)=-x(1)*x(1)-3*x(2)*x(2)
@@ -210,17 +219,294 @@ f1(3)=x(1)+3*x(2)-18
f1(4)=-x(1)-x(2)
f1(5)=x(1)+x(2)-8
endfunction
+// The initial guess
x0=[-1,1];
+//Specifying the goal and the weights
goal=[-5,-3,-2,-1,-4];
weight=abs(goal)
-//gval =[- 0.0000011 -63.999998 -2.0000002 -8 3.485D-08]
-//z = [4 3.99]
//Run fgoalattain
[x,fval,attainfactor,exitflag,output,lambda]=fgoalattain(gattainObjfun,x0,goal,weight)
]]></programlisting>
</refsection>
<refsection>
+ <title>Example</title>
+ We proceed to add simple linear inequality constraints.
+ <para>
+<latex>
+\begin{eqnarray}
+\hspace{70pt} &amp;x_{1} + x_{2}&amp;\leq 2\\
+\hspace{70pt} &amp;x_{1} + x_{2}/4&amp;\leq 1\\
+\hspace{70pt} &amp;-x_{1} + x_{2}&amp;\geq -1\\
+\end{eqnarray}
+</latex>
+</para>
+ <para>
+
+ </para>
+ <programlisting role="example"><![CDATA[
+//Example 2:
+// Objective function
+function f1 = gattainObjfun(x)
+f1(1)=2*x(1)*x(1)+x(2)*x(2)-48*x(1)-40*x(2)+304
+f1(2)=-x(1)*x(1)-3*x(2)*x(2)
+f1(3)=x(1)+3*x(2)-18
+f1(4)=-x(1)-x(2)
+f1(5)=x(1)+x(2)-8
+endfunction
+// The initial guess
+x0=[-1,1];
+//Specifying the goal and the weights
+goal=[-5,-3,-2,-1,-4];
+weight=abs(goal)
+//Linear Inequality constraints
+A=[1,1 ; 1,1/4 ; 1,-1];
+b=[2;1;1];
+//Run fgoalattain
+[x,fval,attainfactor,exitflag,output,lambda]=fgoalattain(gattainObjfun,x0,goal,weight,A,b)
+ ]]></programlisting>
+</refsection>
+
+<refsection>
+ <title>Example</title>
+Here we build up on the previous example by adding linear equality constraints.
+We add the following constraints to the problem specified above: <para>
+<latex>
+\begin{eqnarray}
+&amp;x_{1} - x_{2}&amp;= 1
+\\&amp;2x_{1} + x_{2}&amp;= 2
+\end{eqnarray}
+</latex>
+</para>
+ <para>
+
+ </para>
+ <programlisting role="example"><![CDATA[
+//Example 3:
+// Objective function
+function f1 = gattainObjfun(x)
+f1(1)=2*x(1)*x(1)+x(2)*x(2)-48*x(1)-40*x(2)+304
+f1(2)=-x(1)*x(1)-3*x(2)*x(2)
+f1(3)=x(1)+3*x(2)-18
+f1(4)=-x(1)-x(2)
+f1(5)=x(1)+x(2)-8
+endfunction
+// The initial guess
+x0=[-1,1];
+//Specifying the goal and the weights
+goal=[-5,-3,-2,-1,-4];
+weight=abs(goal)
+//Linear Inequality constraints
+A=[1,1 ; 1,1/4 ; 1,-1];
+b=[2;1;1];
+//We specify the linear equality constraints below.
+Aeq = [1,-1; 2, 1];
+beq = [1;2];
+//Run fgoalattain
+[x,fval,attainfactor,exitflag,output,lambda]=fgoalattain(gattainObjfun,x0,goal,weight,A,b,Aeq,beq)
+ ]]></programlisting>
+</refsection>
+
+<refsection>
+ <title>Example</title>
+In this example, we proceed to add the upper and lower bounds to the objective function.
+ <para>
+<latex>
+\begin{eqnarray}
+-1 &amp;\leq x_{1} &amp;\leq \infty\\
+-\infty &amp;\leq x_{2} &amp;\leq 1
+\end{eqnarray}
+</latex>
+</para>
+ <para>
+
+ </para>
+ <programlisting role="example"><![CDATA[
+//Example 4:
+// Objective function
+function f1 = gattainObjfun(x)
+f1(1)=2*x(1)*x(1)+x(2)*x(2)-48*x(1)-40*x(2)+304
+f1(2)=-x(1)*x(1)-3*x(2)*x(2)
+f1(3)=x(1)+3*x(2)-18
+f1(4)=-x(1)-x(2)
+f1(5)=x(1)+x(2)-8
+endfunction
+// The initial guess
+x0=[-1,1];
+//Specifying the goal and the weights
+goal=[-5,-3,-2,-1,-4];
+weight=abs(goal)
+//Linear Inequality constraints
+A=[1,1 ; 1,1/4 ; 1,-1];
+b=[2;1;1];
+//We specify the linear equality constraints below.
+Aeq = [1,-1; 2, 1];
+beq = [1;2];
+//The upper and lower bounds for the objective function are defined in simple vectors as shown below.
+lb = [-1;-%inf];
+ub = [%inf;1]; //
+//Run fgoalattain
+[x,fval,attainfactor,exitflag,output,lambda]=fgoalattain(gattainObjfun,x0,goal,weight,A,b,Aeq,beq,lb,ub)
+ ]]></programlisting>
+</refsection>
+
+
+<refsection>
+ <title>Example</title>
+Finally, we add the non-linear constraints to the problem. Note that there is a notable difference in the way this is done as compared to defining the linear constraints.
+ <para>
+<latex>
+\begin{eqnarray}
+x_{1}^2-5&amp;\leq 0\\
+x_{1}^2+x_{2}^{2}-8&amp;\leq 0\\
+\end{eqnarray}
+</latex>
+</para>
+ <para>
+
+ </para>
+ <programlisting role="example"><![CDATA[
+//Example 5:
+// Objective function
+function f1 = gattainObjfun(x)
+f1(1)=2*x(1)*x(1)+x(2)*x(2)-48*x(1)-40*x(2)+304
+f1(2)=-x(1)*x(1)-3*x(2)*x(2)
+f1(3)=x(1)+3*x(2)-18
+f1(4)=-x(1)-x(2)
+f1(5)=x(1)+x(2)-8
+endfunction
+// The initial guess
+x0=[-1,1];
+//Specifying the goal and the weights
+goal=[-5,-3,-2,-1,-4];
+weight=abs(goal)
+//Linear Inequality constraints
+A=[1,1 ; 1,1/4 ; 1,-1];
+b=[2;1;1];
+//We specify the linear equality constraints below.
+Aeq = [1,-1; 2, 1];
+beq = [1;2];
+//The upper and lower bounds for the objective function are defined in simple vectors as shown below.
+lb = [-1;-%inf];
+ub = [%inf;1]; //
+//Nonlinear constraints are required to be defined as a single function with the inequality and equality constraints in separate vectors.
+function [c,ceq]=nlc(x)
+c=[x(1)^2-5,x(1)^2+x(2)^2-8];
+ceq=[];
+endfunction
+//Run fgoalattain
+[x,fval,attainfactor,exitflag,output,lambda]=fgoalattain(gattainObjfun,x0,goal,weight,A,b,Aeq,beq,lb,ub,nlc)
+ ]]></programlisting>
+</refsection>
+
+
+<refsection>
+ <title>Example</title>
+ <para>
+We can further enhance the functionality of fgoalattain by setting input options. We can pre-define the gradient of the objective function and/or the hessian of the lagrange function and thereby improve the speed of computation. This is elaborated on in example 6. We take the following problem, specify the gradients, and the jacobian matrix of the constraints. We also set solver parameters using the options.
+</para>
+<para>
+<latex>
+\begin{eqnarray}
+1.5 + x_{1} \boldsymbol{\cdot} x_{2} - x_{1} - x_{2} &amp;\leq 0\\
+-x_{1}\boldsymbol{\cdot} x_{2} - 10 &amp;\leq 0
+\end{eqnarray}
+</latex>
+</para>
+ <para>
+
+ </para>
+ <programlisting role="example"><![CDATA[
+//Example 6: Using the available options
+function f1 = gattainObjfun(x)
+f1(1)=2*x(1)*x(1)+x(2)*x(2)-48*x(1)-40*x(2)+304
+f1(2)=-x(1)*x(1)-3*x(2)*x(2)
+f1(3)=x(1)+3*x(2)-18
+f1(4)=-x(1)-x(2)
+f1(5)=x(1)+x(2)-8
+endfunction
+// The initial guess
+x0=[-1,1];
+//Specifying the goal and the weights
+goal=[-5,-3,-2,-1,-4];
+weight=abs(goal)
+// Defining gradient of myfun
+function G = myfungrad(x)
+G = [ 4*x(1) - 48, -2*x(1), 1, -1, 1;
+2*x(2) - 40, -6*x(2), 3, -1, 1; ]'
+endfunction
+// The nonlinear constraints and the Jacobian
+// matrix of the constraints
+function [c,ceq] = confun(x)
+// Inequality constraints
+c = [1.5 + x(1)*x(2) - x(1) - x(2), -x(1)*x(2) - 10]
+// No nonlinear equality constraints
+ceq=[]
+endfunction
+// Defining gradient of confungrad
+function [DC,DCeq] = cgrad(x)
+// DC(:,i) = gradient of the i-th constraint
+// DC = [
+// Dc1/Dx1 Dc1/Dx2
+// Dc2/Dx1 Dc2/Dx2
+// ]
+DC= [
+x(2)-1, -x(2)
+x(1)-1, -x(1)
+]'
+DCeq = []'
+endfunction
+// Test with both gradient of objective and gradient of constraints
+Options = list("MaxIter", [3000], "CpuTime", [600],"GradObj",myfungrad,"GradCon",cgrad);
+// The initial guess
+
+// Run fgoalattain
+[x,fval,maxfval,exitflag,output] = fgoalattain(myfun,x0,goal,weight,[],[],[],[],[],[], confun, Options)
+ ]]></programlisting>
+</refsection>
+
+<refsection>
+ <title>Example</title>
+Infeasible Problems: Find x in R^2 such that it minimizes the objective function used above under the following constraints:
+<para>
+<latex>
+\begin{eqnarray}
+&amp;x_{1}/3 - 5x_{2}&amp;= 11
+\\&amp;2x_{1} + x_{2}&amp;= 8
+\\ \end{eqnarray}
+</latex>
+ </para>
+<para>
+</para>
+ <programlisting role="example"><![CDATA[
+//Example 7:
+//Objective function
+function f1 = gattainObjfun(x)
+f1(1)=2*x(1)*x(1)+x(2)*x(2)-48*x(1)-40*x(2)+304
+f1(2)=-x(1)*x(1)-3*x(2)*x(2)
+f1(3)=x(1)+3*x(2)-18
+f1(4)=-x(1)-x(2)
+f1(5)=x(1)+x(2)-8
+endfunction
+// The initial guess
+x0=[-1,1];
+//Specifying goals and weights
+goal=[-5,-3,-2,-1,-4];
+weight=abs(goal)
+//Linear Inequality constraints
+A=[1,1 ; 1,1/4 ; 1,-1];
+b=[2;1;1];
+//We specify the linear equality constraints below.
+Aeq = [1/3,-5; 2, 1];
+beq = [11;8];
+// Run fminimax
+[x,fval,maxfval,exitflag,output,lambda] = fgoalattain(gattainObjfun,x0,goal,weight,A,b,Aeq,beq)
+
+
+ ]]></programlisting>
+</refsection>
+
+<refsection>
<title>Authors</title>
<simplelist type="vert">
<member>Prajwala TM, Sheetal Shalini , 2015</member>
diff --git a/help/en_US/fminbnd.xml b/help/en_US/fminbnd.xml
index 99d21ea..b71d5cf 100644
--- a/help/en_US/fminbnd.xml
+++ b/help/en_US/fminbnd.xml
@@ -35,26 +35,31 @@
</refsynopsisdiv>
<refsection>
- <title>Parameters</title>
+ <title>Input Parameters</title>
<variablelist>
<varlistentry><term>f :</term>
- <listitem><para> a function, representing the objective function of the problem</para></listitem></varlistentry>
- <varlistentry><term>x1 :</term>
- <listitem><para> a vector, containing the lower bound of the variables of size (1 X n) or (n X 1) where 'n' is the number of Variables, where n is number of Variables</para></listitem></varlistentry>
- <varlistentry><term>x2 :</term>
- <listitem><para> a vector, containing the upper bound of the variables of size (1 X n) or (n X 1) or (0 X 0) where 'n' is the number of Variables. If x2 is empty it means upper bound is +infinity</para></listitem></varlistentry>
+ <listitem><para> A function, representing the objective function of the problem.</para></listitem></varlistentry>
+ <varlistentry><term><latex>x_{1}</latex> :</term>
+ <listitem><para> A vector, containing the lower bound of the variables of size (1 X n) or (n X 1) where n is number of variables. If it is empty it means that the lower bound is <latex>-\infty</latex>.</para></listitem></varlistentry>
+ <varlistentry><term><latex>x_{2}</latex> :</term>
+ <listitem><para> A vector, containing the upper bound of the variables of size (1 X n) or (n X 1) or (0 X 0) where n is the number of variables. If it is empty it means that the upper bound is <latex>\infty</latex>.</para></listitem></varlistentry>
<varlistentry><term>options :</term>
- <listitem><para> a list, containing the option for user to specify. See below for details.</para></listitem></varlistentry>
+ <listitem><para> A list, containing the options for user to specify. See below for details.</para></listitem></varlistentry>
+</variablelist>
+</refsection>
+ <refsection>
+<title> Outputs</title>
+ <variablelist>
<varlistentry><term>xopt :</term>
- <listitem><para> a vector of doubles, containing the the computed solution of the optimization problem.</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, containing the computed solution of the optimization problem.</para></listitem></varlistentry>
<varlistentry><term>fopt :</term>
- <listitem><para> a scalar of double, containing the the function value at x.</para></listitem></varlistentry>
+ <listitem><para> A double, containing the the function value at x.</para></listitem></varlistentry>
<varlistentry><term>exitflag :</term>
- <listitem><para> a scalar of integer, containing the flag which denotes the reason for termination of algorithm. See below for details.</para></listitem></varlistentry>
+ <listitem><para> An integer, containing the flag which denotes the reason for termination of algorithm. See below for details.</para></listitem></varlistentry>
<varlistentry><term>output :</term>
- <listitem><para> a structure, containing the information about the optimization. See below for details.</para></listitem></varlistentry>
+ <listitem><para> A structure, containing the information about the optimization. See below for details.</para></listitem></varlistentry>
<varlistentry><term>lambda :</term>
- <listitem><para> a structure, containing the Lagrange multipliers of lower bound and upper bound at the optimized point. See below for details.</para></listitem></varlistentry>
+ <listitem><para> A structure, containing the Lagrange multipliers of lower bound, upper bound and constraints at the optimized point. See below for details.</para></listitem></varlistentry>
</variablelist>
</refsection>
@@ -69,47 +74,58 @@ Find the minimum of f(x) such that
\begin{eqnarray}
&amp;\mbox{min}_{x}
&amp; f(x)\\
-&amp; \text{subject to} &amp; x1 \ &lt; x \ &lt; x2 \\
+&amp; \text{Subjected to:}\\
+&amp; x_{1} \leq x \leq x_{2} \\
\end{eqnarray}
</latex>
</para>
<para>
-The routine calls Ipopt for solving the Bounded Optimization problem, Ipopt is a library written in C++.
+fminbnd calls Ipopt which is an optimization library written in C++, to solve the bound optimization problem.
+ </para>
+
+<para>
+<title>Options</title>
+The options allow the user to set various parameters of the Optimization problem. The syntax for the options is given by:
+ </para>
+ <para>
+options= list("MaxIter", [---], "CpuTime", [---], "TolX", [---]);
</para>
<para>
-The options allows the user to set various parameters of the Optimization problem.
-It should be defined as type "list" and contains the following fields.
+The options should be defined as type "list" and consist of the following fields:
<itemizedlist>
-<listitem>Syntax : options= list("MaxIter", [---], "CpuTime", [---], TolX, [----]);</listitem>
-<listitem>MaxIter : a Scalar, containing the Maximum Number of Iteration that the solver should take.</listitem>
-<listitem>CpuTime : a Scalar, containing the Maximum amount of CPU Time that the solver should take.</listitem>
-<listitem>TolX : a Scalar, containing the Tolerance value that the solver should take.</listitem>
-<listitem>Default Values : options = list("MaxIter", [3000], "CpuTime", [600], TolX, [1e-4]);</listitem>
+<listitem>MaxIter : A scalar, specifying the maximum number of iterations that the solver should take.</listitem>
+<listitem>CpuTime : A scalar, specifying the maximum amount of CPU Time in seconds that the solver should take.</listitem>
+<listitem>TolX : A scalar, containing the tolerance value that the solver should take.</listitem>
</itemizedlist>
+The default values for the various items are given as:
</para>
<para>
-The exitflag allows to know the status of the optimization which is given back by Ipopt.
+options = list("MaxIter", [3000], "CpuTime", [600]);
+ </para>
+
+ <para>
+The exitflag allows the user to know the status of the optimization which is returned by Ipopt. The values it can take and what they indicate is described below:
<itemizedlist>
-<listitem>exitflag=0 : Optimal Solution Found </listitem>
-<listitem>exitflag=1 : Maximum Number of Iterations Exceeded. Output may not be optimal.</listitem>
-<listitem>exitflag=2 : Maximum CPU Time exceeded. Output may not be optimal.</listitem>
-<listitem>exitflag=3 : Stop at Tiny Step.</listitem>
-<listitem>exitflag=4 : Solved To Acceptable Level.</listitem>
-<listitem>exitflag=5 : Converged to a point of local infeasibility.</listitem>
+<listitem> 0 : Optimal Solution Found </listitem>
+<listitem> 1 : Maximum Number of Iterations Exceeded. Output may not be optimal.</listitem>
+<listitem> 2 : Maximum amount of CPU Time exceeded. Output may not be optimal.</listitem>
+<listitem> 3 : Stop at Tiny Step.</listitem>
+<listitem> 4 : Solved To Acceptable Level.</listitem>
+<listitem> 5 : Converged to a point of local infeasibility.</listitem>
</itemizedlist>
</para>
<para>
-For more details on exitflag see the ipopt documentation, go to http://www.coin-or.org/Ipopt/documentation/
+For more details on exitflag, see the ipopt documentation which can be found on http://www.coin-or.org/Ipopt/documentation/
</para>
<para>
The output data structure contains detailed informations about the optimization process.
-It has type "struct" and contains the following fields.
+It is of type "struct" and contains the following fields.
<itemizedlist>
-<listitem>output.Iterations: The number of iterations performed during the search</listitem>
-<listitem>output.Cpu_Time: The total cpu-time spend during the search</listitem>
-<listitem>output.Objective_Evaluation: The number of Objective Evaluations performed during the search</listitem>
-<listitem>output.Dual_Infeasibility: The Dual Infeasiblity of the final soution</listitem>
-<listitem>output.Message: The output message for the problem</listitem>
+<listitem>output.Iterations: The number of iterations performed.</listitem>
+<listitem>output.Cpu_Time : The total cpu-time taken.</listitem>
+<listitem>output.Objective_Evaluation: The number of Objective Evaluations performed.</listitem>
+<listitem>output.Dual_Infeasibility : The Dual Infeasiblity of the final soution.</listitem>
+<listitem>output.Message: The output message for the problem.</listitem>
</itemizedlist>
</para>
<para>
@@ -125,58 +141,108 @@ It has type "struct" and contains the following fields.
</para>
</refsection>
+ <para>
+A few examples displaying the various functionalities of fminbnd have been provided below. You will find a series of problems and the appropriate code snippets to solve them.
+ </para>
<refsection>
- <title>Examples</title>
+ <title>Example</title>
+<para>
+ Here we solve a simple non-linear objective function, bounded in the interval [0,1000].
+ </para>
+ <para>
+Find x in R such that it minimizes:
+ </para>
+ <para>
+<latex>
+\begin{eqnarray}
+\mbox{min}_{x}\ f(x) = \dfrac{1}{x^{2}}
+\end{eqnarray}
+\\\text{Subjected to:}\\
+\begin{eqnarray}
+\hspace{70pt} &amp;0 &amp;\leq x &amp;\leq 1000\\
+\end{eqnarray}
+</latex>
+ </para>
+ <para>
+</para>
<programlisting role="example"><![CDATA[
-//Find x in R^6 such that it minimizes:
-//f(x)= sin(x1) + sin(x2) + sin(x3) + sin(x4) + sin(x5) + sin(x6)
-//-2 <= x1,x2,x3,x4,x5,x6 <= 2
+Example 1: Minimizing a bound function in R.
//Objective function to be minimised
function y=f(x)
-y=0
-for i =1:6
-y=y+sin(x(i));
-end
+y=1/x^2
endfunction
//Variable bounds
-x1 = [-2, -2, -2, -2, -2, -2];
-x2 = [2, 2, 2, 2, 2, 2];
-//Options
-options=list("MaxIter",[1500],"CpuTime", [100],"TolX",[1e-6])
+x1 = [0];
+x2 = [1000];
//Calling Ipopt
-[x,fval] =fminbnd(f, x1, x2, options)
-// Press ENTER to continue
+[x,fval,exitflag,output,lambda] =fminbnd(f, x1, x2)
+
]]></programlisting>
</refsection>
+
<refsection>
- <title>Examples</title>
+ <title>Example</title>
+<para>
+Here we solve a bounded objective function in R^6. We use this function to illustrate how we can further enhance the functionality of fminbnd by setting input options. We can pre-define the gradient of the objective function and/or the hessian of the lagrange function and thereby improve the speed of computation. This is elaborated on in example 2. We also set solver parameters using the options.
+ </para>
+ <para>
+Find x in R^6 such that it minimizes:
+ </para>
+ <para>
+<latex>
+\begin{eqnarray}
+\mbox{min}_{x}\ f(x) = sin(x_{1}) + sin(x_{2}) + sin(x_{3}) + sin(x_{4}) + sin(x_{5}) + sin(x_{6})
+\end{eqnarray}
+\\\text{Subjected to:}\\
+\begin{eqnarray}
+\hspace{70pt} &amp;-2 &amp;\leq x{1}, x{2}, x{3}, x{4}, x{5}, x{6} &amp;\leq 2\\
+\end{eqnarray}
+</latex>
+ </para>
+<para>
+</para>
<programlisting role="example"><![CDATA[
-//Find x in R such that it minimizes:
-//f(x)= 1/x^2
-//0 <= x <= 1000
+//Example 2: Solving an objective function in R^6.
//Objective function to be minimised
function y=f(x)
-y=1/x^2
+y=0
+for i =1:6
+y=y+sin(x(i));
+end
endfunction
//Variable bounds
-x1 = [0];
-x2 = [1000];
+x1 = [-2, -2, -2, -2, -2, -2];
+x2 = [2, 2, 2, 2, 2, 2];
+//Options
+options=list("MaxIter",[1500],"CpuTime", [100],"TolX",[1e-6])
//Calling Ipopt
-[x,fval,exitflag,output,lambda] =fminbnd(f, x1, x2)
-// Press ENTER to continue
-
+[x,fval] =fminbnd(f, x1, x2, options)
]]></programlisting>
</refsection>
<refsection>
- <title>Examples</title>
+ <title>Example</title>
+<para>
+Unbounded Problems: Find x in R^2 such that it minimizes:
+</para>
+ <para>
+<latex>
+\begin{eqnarray}
+f(x) = -((x_{1}-1)^{2}+(x_{2}-1)^{2})
+\end{eqnarray}
+\\\text{Subjected to:}\\
+\begin{eqnarray}
+-\infty &amp;\leq x_{1} &amp;\leq \infty\\
+-\infty &amp;\leq x_{2} &amp;\leq \infty
+\end{eqnarray}
+</latex>
+ </para>
+ <para>
+ </para>
<programlisting role="example"><![CDATA[
-//The below problem is an unbounded problem:
-//Find x in R^2 such that it minimizes:
-//f(x)= -[(x1-1)^2 + (x2-1)^2]
-//-inf <= x1,x2 <= inf
+//Example 3: Unbounded objective function.
//Objective function to be minimised
function y=f(x)
y=-((x(1)-1)^2+(x(2)-1)^2);
diff --git a/help/en_US/fmincon.xml b/help/en_US/fmincon.xml
index 91569a2..a017135 100644
--- a/help/en_US/fmincon.xml
+++ b/help/en_US/fmincon.xml
@@ -17,7 +17,7 @@
<refnamediv>
<refname>fmincon</refname>
- <refpurpose>Solves a multi-variable constrainted optimization problem</refpurpose>
+ <refpurpose>Solves a multi-variable constrainted optimization problem.</refpurpose>
</refnamediv>
@@ -40,108 +40,122 @@
</refsynopsisdiv>
<refsection>
- <title>Parameters</title>
+ <title>Input Parameters</title>
<variablelist>
<varlistentry><term>f :</term>
- <listitem><para> a function, representing the objective function of the problem</para></listitem></varlistentry>
+ <listitem><para> A function, representing the objective function of the problem.</para></listitem></varlistentry>
<varlistentry><term>x0 :</term>
- <listitem><para> a vector of doubles, containing the starting values of variables of size (1 X n) or (n X 1) where 'n' is the number of Variables</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, containing the starting values of variables of size (1 X n) or (n X 1) where 'n' is the number of variables.</para></listitem></varlistentry>
<varlistentry><term>A :</term>
- <listitem><para> a matrix of doubles, containing the coefficients of linear inequality constraints of size (m X n) where 'm' is the number of linear inequality constraints</para></listitem></varlistentry>
+ <listitem><para> A matrix of doubles, containing the coefficients of linear inequality constraints of size (m X n) where 'm' is the number of linear inequality constraints.</para></listitem></varlistentry>
<varlistentry><term>b :</term>
- <listitem><para> a vector of doubles, related to 'A' and containing the the Right hand side equation of the linear inequality constraints of size (m X 1)</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, related to 'A' and represents the linear coefficients in the linear inequality constraints of size (m X 1).</para></listitem></varlistentry>
<varlistentry><term>Aeq :</term>
- <listitem><para> a matrix of doubles, containing the coefficients of linear equality constraints of size (m1 X n) where 'm1' is the number of linear equality constraints</para></listitem></varlistentry>
+ <listitem><para> A matrix of doubles, containing the coefficients of linear equality constraints of size (m1 X n) where 'm1' is the number of linear equality constraints.</para></listitem></varlistentry>
<varlistentry><term>beq :</term>
- <listitem><para> a vector of doubles, related to 'Aeq' and containing the the Right hand side equation of the linear equality constraints of size (m1 X 1)</para></listitem></varlistentry>
+ <listitem><para> A vector of double, vector of doubles, related to 'Aeq' and represents the linear coefficients in the equality constraints of size (m1 X 1).</para></listitem></varlistentry>
<varlistentry><term>lb :</term>
- <listitem><para> a vector of doubles, containing the lower bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of Variables</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, containing the lower bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables.</para></listitem></varlistentry>
<varlistentry><term>ub :</term>
- <listitem><para> a vector of doubles, containing the upper bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of Variables</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, containing the upper bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables.</para></listitem></varlistentry>
<varlistentry><term>nlc :</term>
- <listitem><para> a function, representing the Non-linear Constraints functions(both Equality and Inequality) of the problem. It is declared in such a way that non-linear inequality constraints are defined first as a single row vector (c), followed by non-linear equality constraints as another single row vector (ceq). Refer Example for definition of Constraint function.</para></listitem></varlistentry>
+ <listitem><para> A function, representing the Non-linear Constraints functions(both Equality and Inequality) of the problem. It is declared in such a way that non-linear inequality constraints (c), and the non-linear equality constraints (ceq) are defined as separate single row vectors.</para></listitem></varlistentry>
<varlistentry><term>options :</term>
- <listitem><para> a list, containing the option for user to specify. See below for details.</para></listitem></varlistentry>
+ <listitem><para> A list, containing the option for user to specify. See below for details.</para></listitem></varlistentry>
+ </variablelist>
+</refsection>
+<refsection>
+<title> Outputs</title>
+ <variablelist>
<varlistentry><term>xopt :</term>
- <listitem><para> a vector of doubles, cointating the computed solution of the optimization problem</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, containing the computed solution of the optimization problem.</para></listitem></varlistentry>
<varlistentry><term>fopt :</term>
- <listitem><para> a scalar of double, containing the the function value at x</para></listitem></varlistentry>
+ <listitem><para> A double, containing the value of the function at x.</para></listitem></varlistentry>
<varlistentry><term>exitflag :</term>
- <listitem><para> a scalar of integer, containing the flag which denotes the reason for termination of algorithm. See below for details.</para></listitem></varlistentry>
+ <listitem><para> An integer, containing the flag which denotes the reason for termination of algorithm. See below for details.</para></listitem></varlistentry>
<varlistentry><term>output :</term>
- <listitem><para> a structure, containing the information about the optimization. See below for details.</para></listitem></varlistentry>
+ <listitem><para> A structure, containing the information about the optimization. See below for details.</para></listitem></varlistentry>
<varlistentry><term>lambda :</term>
- <listitem><para> a structure, containing the Lagrange multipliers of lower bound, upper bound and constraints at the optimized point. See below for details.</para></listitem></varlistentry>
+ <listitem><para> A structure, containing the Lagrange multipliers of the lower bounds, upper bounds and constraints at the optimized point. See below for details.</para></listitem></varlistentry>
<varlistentry><term>gradient :</term>
- <listitem><para> a vector of doubles, containing the Objective's gradient of the solution.</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, containing the objective's gradient of the solution.</para></listitem></varlistentry>
<varlistentry><term>hessian :</term>
- <listitem><para> a matrix of doubles, containing the Lagrangian's hessian of the solution.</para></listitem></varlistentry>
+ <listitem><para> A matrix of doubles, containing the Lagrangian's hessian of the solution.</para></listitem></varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
-Search the minimum of a constrained optimization problem specified by :
+Search the minimum of a constrained optimization problem specified by:
+ </para>
+ <para>
Find the minimum of f(x) such that
</para>
<para>
<latex>
\begin{eqnarray}
-&amp;\mbox{min}_{x}
-&amp; f(x) \\
-&amp; \text{subject to} &amp; A*x \leq b \\
-&amp; &amp; Aeq*x \ = beq\\
-&amp; &amp; c(x) \leq 0\\
-&amp; &amp; ceq(x) \ = 0\\
-&amp; &amp; lb \leq x \leq ub \\
+&amp;\mbox{min}_{x}\ f(x) \\
+&amp; \text{Subjected to}\\
+&amp; &amp; A\boldsymbol{\cdot} x \leq b \\
+&amp; &amp;A_{eq}\boldsymbol{\cdot} {x} = b_{eq}\\
+&amp; &amp;c(x) \leq 0\\
+&amp; &amp;c_{eq}(x) \ = 0\\
+&amp; &amp;lb \leq x \leq ub \\
\end{eqnarray}
</latex>
</para>
<para>
-The routine calls Ipopt for solving the Constrained Optimization problem, Ipopt is a library written in C++.
+fmincon calls Ipopt, an optimization library written in C++, to solve the Constrained Optimization problem.
+ </para>
+ <para>
+<title>Options</title>
+The options allow the user to set various parameters of the Optimization problem. The syntax for the options is given by:
+ </para>
+ <para>
+options= list("MaxIter", [---], "CpuTime", [---], "GradObj", ---, "Hessian", ---, "GradCon", ---);
</para>
<para>
-The options allows the user to set various parameters of the Optimization problem.
-It should be defined as type "list" and contains the following fields.
+The options should be defined as type "list" and consist of the following fields:
<itemizedlist>
-<listitem>Syntax : options= list("MaxIter", [---], "CpuTime", [---], "GradObj", ---, "Hessian", ---, "GradCon", ---);</listitem>
-<listitem>MaxIter : a Scalar, containing the Maximum Number of Iteration that the solver should take.</listitem>
-<listitem>CpuTime : a Scalar, containing the Maximum amount of CPU Time that the solver should take.</listitem>
-<listitem>GradObj : a function, representing the gradient function of the Objective in Vector Form.</listitem>
-<listitem>Hessian : a function, representing the hessian function of the Lagrange in Symmetric Matrix Form with Input parameters x, Objective factor and Lambda. Refer Example for definition of Lagrangian Hessian function.</listitem>
-<listitem>GradCon : a function, representing the gradient of the Non-Linear Constraints (both Equality and Inequality) of the problem. It is declared in such a way that gradient of non-linear inequality constraints are defined first as a separate Matrix (cg of size m2 X n or as an empty), followed by gradient of non-linear equality constraints as a separate Matrix (ceqg of size m2 X n or as an empty) where m2 &amp; m3 are number of non-linear inequality and equality constraints respectively.</listitem>
-<listitem>Default Values : options = list("MaxIter", [3000], "CpuTime", [600]);</listitem>
+<listitem>MaxIter : A Scalar, specifying the maximum number of iterations that the solver should take.</listitem>
+<listitem>CpuTime : A Scalar, specifying the maximum amount of CPU time in seconds that the solver should take.</listitem>
+<listitem>GradObj : A function, representing the gradient function of the Objective in vector form.</listitem>
+<listitem>Hessian : A function, representing the hessian function of the Lagrange in the form of a Symmetric Matrix with Input parameters as x, Objective factor and Lambda. Refer to Example 5 for definition of Lagrangian Hessian function.</listitem>
+<listitem>GradCon : A function, representing the gradient of the Non-Linear Constraints (both Equality and Inequality) of the problem. It is declared in such a way that gradient of non-linear inequality constraints are defined first as a separate Matrix (cg of size m2 X n or as an empty), followed by gradient of non-linear equality constraints as a separate matrix (ceqg of size m2 X n or as an empty) where m2 &amp;amp; m3 are number of non-linear inequality and equality constraints respectively.</listitem>
</itemizedlist>
+The default values for the various items are given as:
+ </para>
+ <para>
+options = list("MaxIter", [3000], "CpuTime", [600]);
</para>
<para>
-The exitflag allows to know the status of the optimization which is given back by Ipopt.
+The exitflag allows the user to know the status of the optimization which is returned by Ipopt. The values it can take and what they indicate is described below:
<itemizedlist>
-<listitem>exitflag=0 : Optimal Solution Found </listitem>
-<listitem>exitflag=1 : Maximum Number of Iterations Exceeded. Output may not be optimal.</listitem>
-<listitem>exitflag=2 : Maximum amount of CPU Time exceeded. Output may not be optimal.</listitem>
-<listitem>exitflag=3 : Stop at Tiny Step.</listitem>
-<listitem>exitflag=4 : Solved To Acceptable Level.</listitem>
-<listitem>exitflag=5 : Converged to a point of local infeasibility.</listitem>
+<listitem> 0 : Optimal Solution Found </listitem>
+<listitem> 1 : Maximum Number of Iterations Exceeded. Output may not be optimal.</listitem>
+<listitem> 2 : Maximum amount of CPU Time exceeded. Output may not be optimal.</listitem>
+<listitem> 3 : Stop at Tiny Step.</listitem>
+<listitem> 4 : Solved To Acceptable Level.</listitem>
+<listitem> 5 : Converged to a point of local infeasibility.</listitem>
</itemizedlist>
</para>
<para>
-For more details on exitflag see the ipopt documentation, go to http://www.coin-or.org/Ipopt/documentation/
+For more details on exitflag, see the Ipopt documentation which can be found on http://www.coin-or.org/Ipopt/documentation/
</para>
<para>
-The output data structure contains detailed informations about the optimization process.
-It has type "struct" and contains the following fields.
+The output data structure contains detailed information about the optimization process.
+It is of type "struct" and contains the following fields.
<itemizedlist>
-<listitem>output.Iterations: The number of iterations performed during the search</listitem>
-<listitem>output.Cpu_Time: The total cpu-time spend during the search</listitem>
-<listitem>output.Objective_Evaluation: The number of Objective Evaluations performed during the search</listitem>
-<listitem>output.Dual_Infeasibility: The Dual Infeasiblity of the final soution</listitem>
-<listitem>output.Message: The output message for the problem</listitem>
+<listitem>output.Iterations: The number of iterations performed.</listitem>
+<listitem>output.Cpu_Time : The total cpu-time taken.</listitem>
+<listitem>output.Objective_Evaluation: The number of Objective Evaluations performed.</listitem>
+<listitem>output.Dual_Infeasibility : The Dual Infeasiblity of the final soution.</listitem>
+<listitem>output.Message: The output message for the problem.</listitem>
</itemizedlist>
</para>
<para>
-The lambda data structure contains the Lagrange multipliers at the end
-of optimization. In the current version the values are returned only when the the solution is optimal.
+The lambda data structure contains the Lagrange multipliers at the end of optimization. In the current version, the values are returned only when the the solution is optimal.
It has type "struct" and contains the following fields.
<itemizedlist>
<listitem>lambda.lower: The Lagrange multipliers for the lower bound constraints.</listitem>
@@ -153,60 +167,192 @@ It has type "struct" and contains the following fields.
</itemizedlist>
</para>
<para>
+A few examples displaying the various functionalities of fmincon have been provided below. You will find a series problems and the appropriate code snippets to solve them.
+ </para>
+
+</refsection>
+
+<refsection>
+ <title>Example</title>
+<para>
+ Here we solve a simple non-linear objective function, subjected to three linear inequality constraints.
+ </para>
+ <para>
+Find x in R^2 such that it minimizes:
+ </para>
+ <para>
+<latex>
+\begin{eqnarray}
+\mbox{min}_{x}\ f(x) = x_{1}^{2} - x_{1} \boldsymbol{\cdot} x_{2}/3 + x_{2}^{2}
+\end{eqnarray}
+\\\text{Subjected to:}\\
+\begin{eqnarray}
+\hspace{70pt} &amp;x_{1} + x_{2}&amp;\leq 2\\
+\hspace{70pt} &amp;x_{1} + x_{2}/4&amp;\leq 1\\
+\hspace{70pt} &amp;-x_{1} + x_{2}&amp;\geq -1\\
+\end{eqnarray}
+</latex>
+ </para>
+ <para>
+
+ </para>
+ <programlisting role="example"><![CDATA[
+//Example 1:
+//Objective function to be minimised
+function y=f(x)
+y=x(1)^2 - x(1)*x(2)/3 + x(2)^2;
+endfunction
+//Starting point, and linear constraints. Since we haven't added any eqaulity constraints or variable bounds, we need not specify them.
+x0=[0 , 0];
+A=[1,1 ; 1,1/4 ; 1,-1];
+b=[2;1;1];
+[x,fval,exitflag,output,lambda,grad,hessian] =fmincon(f, x0,A,b)
+
+ ]]></programlisting>
+</refsection>
+
+<refsection>
+ <title>Example</title>
+<para>
+Here we build up on the previous example by adding linear equality constraints.
+We add the following constraints to the problem specified above:
+ </para>
+ <para>
+<latex>
+\begin{eqnarray}
+&amp;x_{1} - x_{2}&amp;= 1
+\\&amp;2x_{1} + x_{2}&amp;= 2
+\\ \end{eqnarray}
+</latex>
+ </para>
+<para>
</para>
+ <programlisting role="example"><![CDATA[
+
+//Example 2:
+//Objective function to be minimised
+function y=f(x)
+y=x(1)^2 - x(1)*x(2)/3 + x(2)^2;
+endfunction
+//Starting point, and linear constraints.
+x0=[0 , 0];
+A=[1,1 ; 1,1/4 ; -1,1];
+b=[2;1;2];
+//We specify the linear equality constraints below.
+Aeq = [1,-1; 2, 1];
+beq = [1;2];
+[x,fval,exitflag,output,lambda,grad,hessian] =fmincon(f, x0,A,b,Aeq,beq);
+
+
+ ]]></programlisting>
</refsection>
<refsection>
- <title>Examples</title>
+ <title>Example</title>
+<para>
+In this example, we proceed to add the upper and lower bounds to the objective function.
+ </para>
+ <para>
+<latex>
+\begin{eqnarray}
+-1 &amp;\leq x_{1} &amp;\leq \infty\\
+-\infty &amp;\leq x_{2} &amp;\leq 1
+\end{eqnarray}
+</latex>
+ </para>
+<para>
+</para>
<programlisting role="example"><![CDATA[
-//Find x in R^2 such that it minimizes:
-//f(x)= -x1 -x2/3
-//x0=[0,0]
-//constraint-1 (c1): x1 + x2 <= 2
-//constraint-2 (c2): x1 + x2/4 <= 1
-//constraint-3 (c3): x1 - x2 <= 2
-//constraint-4 (c4): -x1/4 - x2 <= 1
-//constraint-5 (c5): -x1 - x2 <= -1
-//constraint-6 (c6): -x1 + x2 <= 2
-//constraint-7 (c7): x1 + x2 = 2
+//Example 3:
//Objective function to be minimised
function y=f(x)
-y=-x(1)-x(2)/3;
+y=x(1)^2 - x(1)*x(2)/3 + x(2)^2;
endfunction
-//Starting point, linear constraints and variable bounds
+//Starting point, and linear constraints.
x0=[0 , 0];
-A=[1,1 ; 1,1/4 ; 1,-1 ; -1/4,-1 ; -1,-1 ; -1,1];
-b=[2;1;2;1;-1;2];
-Aeq=[1,1];
-beq=[2];
-lb=[];
-ub=[];
-nlc=[];
-//Gradient of objective function
-function y= fGrad(x)
-y= [-1,-1/3];
+A=[1,1 ; 1,1/4 ; -1,1];
+b=[2;1;2];
+//We specify the linear equality constraints below.
+Aeq = [1,-1; 2, 1];
+beq = [1;2];
+//The upper and lower bounds for the objective function are defined in simple vectors as shown below.
+lb = [-1;-%inf];
+ub = [%inf;1]; //
+[x,fval,exitflag,output,lambda,grad,hessian] =fmincon(f, x0,A,b,Aeq,beq,lb,ub);
+//Press ENTER to continue
+
+ ]]></programlisting>
+</refsection>
+
+<refsection>
+ <title>Example</title>
+ <para>
+Finally, we add the non-linear constraints to the problem. Note that there is a notable difference in the way this is done as compared to defining the linear constraints.
+ </para>
+ <para>
+<latex>
+\begin{eqnarray}
+x_{1}^2-1&amp;\leq 0\\
+x_{1}^2+x_{2}^2-1&amp;\leq 0\\
+\end{eqnarray}
+</latex>
+</para>
+<para>
+</para>
+ <programlisting role="example"><![CDATA[
+//Example 4:
+//Objective function to be minimised
+function y=f(x)
+y=x(1)^2 - x(1)*x(2)/3 + x(2)^2;
endfunction
-//Hessian of lagrangian
-function y= lHess(x,obj,lambda)
-y= obj*[0,0;0,0]
+//Starting point, and linear constraints.
+x0=[0 , 0];
+A=[1,1 ; 1,1/4 ; -1,1];
+b=[2;1;2];
+//We specify the linear equality constraints below.
+Aeq = [1,-1; 2, 1];
+beq = [1;2];
+//The upper and lower bound for the objective function are specified below.
+lb = [-1;-%inf];
+ub = [%inf;1];
+//Nonlinear constraints are required to be defined as a single function with the inequality and equality constraints in separate vectors.
+function [c,ceq]=nlc(x)
+c=[x(1)^2-1,x(1)^2+x(2)^2-1];
+ceq=[];
endfunction
-//Options
-options=list("GradObj", fGrad, "Hessian", lHess);
-//Calling Ipopt
-[x,fval,exitflag,output,lambda,grad,hessian] =fmincon(f, x0,A,b,Aeq,beq,lb,ub,nlc,options)
-// Press ENTER to continue
+[x,fval,exitflag,output,lambda,grad,hessian] =fmincon(f, x0,A,b,Aeq,beq,lb,ub,nlc);
+//Press ENTER to continue
]]></programlisting>
</refsection>
<refsection>
- <title>Examples</title>
+<title>Example</title>
+ <para>
+Additional Functionality:
+ </para>
+ <para>
+We can further enhance the functionality of fmincon by setting input options. We can pre-define the gradient of the objective function and/or the hessian of the lagrange function and thereby improve the speed of computation. This is elaborated on in example 5. We take the following problem and add simple non-linear constraints, specify the gradients and the hessian of the Lagrange Function. We also set solver parameters using the options.
+ </para>
+
+ <para>
+ <latex>
+
+ \begin{eqnarray}
+ \mbox{min}_{x}\ f(x)= x_{1}*x_{2} + x_{2}*x_{3}
+ \end{eqnarray}
+ \\ \text{Subjected to:}\\
+ \begin{eqnarray}
+ \hspace{70pt} &amp;c_{1}: x_{1}^2 - x_{2}^2 + x_{3}^2&amp;\leq 2 \\
+ \hspace{70pt} &amp;c_{2}: x_{1}^2 + x_{2}^2 + x_{3}^2&amp;\leq 10
+ \end{eqnarray}
+
+ </latex>
+ </para>
+ <para>
+</para>
<programlisting role="example"><![CDATA[
-//Find x in R^3 such that it minimizes:
-//f(x)= x1*x2 + x2*x3
-//x0=[0.1 , 0.1 , 0.1]
-//constraint-1 (c1): x1^2 - x2^2 + x3^2 <= 2
-//constraint-2 (c2): x1^2 + x2^2 + x3^2 <= 10
+//Example 5:
//Objective function to be minimised
function y=f(x)
y=x(1)*x(2)+x(2)*x(3);
@@ -220,20 +366,20 @@ beq=[];
lb=[];
ub=[];
//Nonlinear constraints
-function [c,ceq]=nlc(x)
+function [c, ceq]=nlc(x)
c = [x(1)^2 - x(2)^2 + x(3)^2 - 2 , x(1)^2 + x(2)^2 + x(3)^2 - 10];
ceq = [];
endfunction
//Gradient of objective function
-function y= fGrad(x)
+function y=fGrad(x)
y= [x(2),x(1)+x(3),x(2)];
endfunction
-//Hessian of the Lagrange Function
-function y= lHess(x,obj,lambda)
+//Hessian of the Lagrange Function, which has been pre-defined to improve solver speed.
+function y=lHess(x, obj, lambda)
y= obj*[0,1,0;1,0,1;0,1,0] + lambda(1)*[2,0,0;0,-2,0;0,0,2] + lambda(2)*[2,0,0;0,2,0;0,0,2]
endfunction
//Gradient of Non-Linear Constraints
-function [cg,ceqg] = cGrad(x)
+function [cg, ceqg]=cGrad(x)
cg=[2*x(1) , -2*x(2) , 2*x(3) ; 2*x(1) , 2*x(2) , 2*x(3)];
ceqg=[];
endfunction
@@ -241,97 +387,82 @@ endfunction
options=list("MaxIter", [1500], "CpuTime", [500], "GradObj", fGrad, "Hessian", lHess,"GradCon", cGrad);
//Calling Ipopt
[x,fval,exitflag,output] =fmincon(f, x0,A,b,Aeq,beq,lb,ub,nlc,options)
-// Press ENTER to continue
-
+//Press ENTER to continue
]]></programlisting>
</refsection>
<refsection>
- <title>Examples</title>
+<title>Example</title>
+
+ <para>
+Infeasible Problems: Find x in R^2 such that it minimizes:
+ </para>
+ <para>
+<latex>
+\begin{eqnarray}
+f(x) = x_{1}^{2} - x_{1} \boldsymbol{\cdot} x_{2}/3 + x_{2}^{2}
+\end{eqnarray}
+\\\text{Subjected to:}\\
+\begin{eqnarray}
+\hspace{70pt} &amp;x_{1} + x_{2}&amp;\leq 2\\
+\hspace{70pt} &amp;x_{1} + x_{2}/4&amp;\leq 1\\
+\hspace{70pt} &amp;-x_{1} + x_{2}&amp;\geq -1\\
+\hspace{70pt} &amp;x_{1} + x_{2}&amp;= 2
+\end{eqnarray}
+</latex>
+ </para>
+ <para>
+ </para>
<programlisting role="example"><![CDATA[
-//The below problem is an unbounded problem:
-//Find x in R^3 such that it minimizes:
-//f(x)= -(x1^2 + x2^2 + x3^2)
-//x0=[0.1 , 0.1 , 0.1]
-// x1 <= 0
-// x2 <= 0
-// x3 <= 0
-//Objective function to be minimised
+//Example 6:
+//Infeasible objective function.
function y=f(x)
-y=-(x(1)^2+x(2)^2+x(3)^2);
+y=x(1)^2 - x(1)*x(2)/3 + x(2)^2;
endfunction
-//Starting point, linear constraints and variable bounds
-x0=[0.1 , 0.1 , 0.1];
-A=[];
-b=[];
-Aeq=[];
-beq=[];
-lb=[];
-ub=[0,0,0];
-//Options
-options=list("MaxIter", [1500], "CpuTime", [500]);
-//Calling Ipopt
-[x,fval,exitflag,output,lambda,grad,hessian] =fmincon(f, x0,A,b,Aeq,beq,lb,ub,[],options)
-// Press ENTER to continue
+x0=[0 , 0];
+A=[1,1 ; 1,1/4 ; 1,-1];
+b=[2;1;1];
+Aeq = [1,1];
+beq = 3;
+[x,fval,exitflag,output,lambda,grad,hessian] =fmincon(f, x0,A,b,Aeq,beq)
]]></programlisting>
-</refsection>
+ </refsection>
<refsection>
- <title>Examples</title>
- <programlisting role="example"><![CDATA[
-//The below problem is an infeasible problem:
-//Find x in R^3 such that in minimizes:
-//f(x)=x1*x2 + x2*x3
-//x0=[1,1,1]
-//constraint-1 (c1): x1^2 <= 1
-//constraint-2 (c2): x1^2 + x2^2 <= 1
-//constraint-3 (c3): x3^2 <= 1
-//constraint-4 (c4): x1^3 = 0.5
-//constraint-5 (c5): x2^2 + x3^2 = 0.75
-// 0 <= x1 <=0.6
-// 0.2 <= x2 <= inf
-// -inf <= x3 <= 1
-//Objective function to be minimised
+<title>Example</title>
+<para>
+Unbounded Problems: Find x in R^2 such that it minimizes:
+</para>
+ <para>
+<latex>
+\begin{eqnarray}
+f(x) = x_{1} \boldsymbol{\cdot} x_{2}/3 - x_{1}^{2} - x_{2}^{2}
+\end{eqnarray}
+\\\text{Subjected to:}\\
+\begin{eqnarray}
+\hspace{70pt} &amp;x_{1} + x_{2}&amp;\geq 2\\
+\hspace{70pt} &amp;x_{1} + x_{2}&amp;\geq -1
+\\\end{eqnarray}
+</latex>
+ </para>
+ <para>
+ </para>
+<programlisting role="example"><![CDATA[
+//Example 7: Unbounded objective function.
function y=f(x)
-y=x(1)*x(2)+x(2)*x(3);
+y=-(x(1)^2 - x(1)*x(2)/3 + x(2)^2);
endfunction
-//Starting point, linear constraints and variable bounds
-x0=[1,1,1];
-A=[];
-b=[];
-Aeq=[];
-beq=[];
-lb=[0 0.2,-%inf];
-ub=[0.6 %inf,1];
-//Nonlinear constraints
-function [c,ceq]=nlc(x)
-c=[x(1)^2-1,x(1)^2+x(2)^2-1,x(3)^2-1];
-ceq=[x(1)^3-0.5,x(2)^2+x(3)^2-0.75];
-endfunction
-//Gradient of objective function
-function y= fGrad(x)
-y= [x(2),x(1)+x(3),x(2)];
-endfunction
-//Hessian of the Lagrange Function
-function y= lHess(x,obj,lambda)
-y= obj*[0,1,0;1,0,1;0,1,0] + lambda(1)*[2,0,0;0,0,0;0,0,0] + ..
-lambda(2)*[2,0,0;0,2,0;0,0,0] +lambda(3)*[0,0,0;0,0,0;0,0,2] + ..
-lambda(4)*[6*x(1),0,0;0,0,0;0,0,0] + lambda(5)*[0,0,0;0,2,0;0,0,2];
-endfunction
-//Gradient of Non-Linear Constraints
-function [cg,ceqg] = cGrad(x)
-cg = [2*x(1),0,0;2*x(1),2*x(2),0;0,0,2*x(3)];
-ceqg = [3*x(1)^2,0,0;0,2*x(2),2*x(3)];
-endfunction
-//Options
-options=list("MaxIter", [1500], "CpuTime", [500], "GradObj", fGrad, "Hessian", lHess,"GradCon", cGrad);
-//Calling Ipopt
-[x,fval,exitflag,output,lambda,grad,hessian] =fmincon(f, x0,A,b,Aeq,beq,lb,ub,nlc,options)
-// Press ENTER to continue
- ]]></programlisting>
+x0=[0 , 0];
+A=[-1,-1 ; 1,1];
+b=[-2;1];
+[x,fval,exitflag,output,lambda,grad,hessian] =fmincon(f, x0,A,b);
+
+]]></programlisting>
+
</refsection>
+
<refsection>
<title>Authors</title>
<simplelist type="vert">
diff --git a/help/en_US/fminimax.xml b/help/en_US/fminimax.xml
index e733a3d..84ed5be 100644
--- a/help/en_US/fminimax.xml
+++ b/help/en_US/fminimax.xml
@@ -40,49 +40,57 @@
</refsynopsisdiv>
<refsection>
- <title>Parameters</title>
+ <title>Input Parameters</title>
<variablelist>
<varlistentry><term>fun:</term>
- <listitem><para> The function to be minimized. fun is a function that accepts a vector x and returns a vector F, the objective functions evaluated at x.</para></listitem></varlistentry>
+ <listitem><para> The function to be minimized. fun is a function that has a vector x as an input argument, and contains the objective functions evaluated at x.</para></listitem></varlistentry>
<varlistentry><term>x0 :</term>
- <listitem><para> a vector of double, contains initial guess of variables.</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, containing the starting values of variables of size (1 X n) or (n X 1) where 'n' is the number of Variables.</para></listitem></varlistentry>
<varlistentry><term>A :</term>
- <listitem><para> a matrix of double, represents the linear coefficients in the inequality constraints A⋅x ≤ b.</para></listitem></varlistentry>
+ <listitem><para> A matrix of doubles, containing the coefficients of linear inequality constraints of size (m X n) where 'm' is the number of linear inequality constraints.</para></listitem></varlistentry>
<varlistentry><term>b :</term>
- <listitem><para> a vector of double, represents the linear coefficients in the inequality constraints A⋅x ≤ b.</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, related to 'A' and represents the linear coefficients in the linear inequality constraints of size (m X 1).</para></listitem></varlistentry>
<varlistentry><term>Aeq :</term>
- <listitem><para> a matrix of double, represents the linear coefficients in the equality constraints Aeq⋅x = beq.</para></listitem></varlistentry>
+ <listitem><para> A matrix of doubles, containing the coefficients of linear equality constraints of size (m1 X n) where 'm1' is the number of linear equality constraints.</para></listitem></varlistentry>
<varlistentry><term>beq :</term>
- <listitem><para> a vector of double, represents the linear coefficients in the equality constraints Aeq⋅x = beq.</para></listitem></varlistentry>
+ <listitem><para> A vector of double, vector of doubles, related to 'Aeq' and represents the linear coefficients in the equality constraints of size (m1 X 1).</para></listitem></varlistentry>
<varlistentry><term>lb :</term>
- <listitem><para> a vector of double, contains lower bounds of the variables.</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, containing the lower bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables.</para></listitem></varlistentry>
<varlistentry><term>ub :</term>
- <listitem><para> a vector of double, contains upper bounds of the variables.</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, containing the upper bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables.</para></listitem></varlistentry>
<varlistentry><term>nonlinfun:</term>
- <listitem><para> function that computes the nonlinear inequality constraints c⋅x ≤ 0 and nonlinear equality constraints c⋅x = 0.</para></listitem></varlistentry>
+ <listitem><para> A function, representing the Non-linear Constraints functions(both Equality and Inequality) of the problem. It is declared in such a way that non-linear inequality constraints (c), and the non-linear equality constraints (ceq) are defined as separate single row vectors.</para></listitem></varlistentry>
+ <varlistentry><term>options :</term>
+ <listitem><para> A list, containing the option for user to specify. See below for details.</para></listitem></varlistentry>
+ </variablelist>
+</refsection>
+<refsection>
+<title> Outputs</title>
+ <variablelist>
<varlistentry><term>xopt :</term>
- <listitem><para> a vector of double, the computed solution of the optimization problem.</para></listitem></varlistentry>
- <varlistentry><term>fopt :</term>
- <listitem><para> a double, the value of the function at x.</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, containing the computed solution of the optimization problem.</para></listitem></varlistentry>
+ <varlistentry><term>fval :</term>
+ <listitem><para> A vector of doubles, containing the values of the objective functions at the end of the optimization problem.</para></listitem></varlistentry>
<varlistentry><term>maxfval:</term>
- <listitem><para> a 1x1 matrix of doubles, the maximum value in vector fval</para></listitem></varlistentry>
+ <listitem><para> A double, representing the maximum value in the vector fval.</para></listitem></varlistentry>
<varlistentry><term>exitflag :</term>
- <listitem><para> The exit status. See below for details.</para></listitem></varlistentry>
+ <listitem><para> An integer, containing the flag which denotes the reason for termination of algorithm. See below for details.</para></listitem></varlistentry>
<varlistentry><term>output :</term>
- <listitem><para> The structure consist of statistics about the optimization. See below for details.</para></listitem></varlistentry>
+ <listitem><para> A structure, containing the information about the optimization. See below for details.</para></listitem></varlistentry>
<varlistentry><term>lambda :</term>
- <listitem><para> The structure consist of the Lagrange multipliers at the solution of problem. See below for details.</para></listitem></varlistentry>
+ <listitem><para> A structure, containing the Lagrange multipliers of lower bound, upper bound and constraints at the optimized point. See below for details.</para></listitem></varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
-fminimax minimizes the worst-case (largest) value of a set of multivariable functions, starting at an initial estimate. This is generally referred to as the minimax problem.
+fminimax minimizes the worst-case (largest) value of a set of multivariable functions, starting at an initial estimate, a problem generally referred to as the minimax problem.
</para>
<para>
<latex>
-\min_{x} \max_{i} F_{i}(x)\: \textrm{such that} \:\begin{cases}
+\min_{x} \max_{i} F_{i}(x)\\
+ \textrm{Such that} \:\begin{cases}
&amp; c(x) \leq 0 \\
&amp; ceq(x) = 0 \\
&amp; A.x \leq b \\
@@ -92,7 +100,7 @@ fminimax minimizes the worst-case (largest) value of a set of multivariable func
</latex>
</para>
<para>
-Currently, fminimax calls fmincon which uses the ip-opt algorithm.
+Currently, fminimax calls fmincon which uses the Ipopt solver.
</para>
<para>
max-min problems can also be solved with fminimax, using the identity
@@ -102,20 +110,29 @@ max-min problems can also be solved with fminimax, using the identity
\max_{x} \min_{i} F_{i}(x) = -\min_{x} \max_{i} \left( -F_{i}(x) \right)
</latex>
</para>
+
+ <para>
+<title>Options</title>
+The options allow the user to set various parameters of the Optimization problem. The syntax for the options is given by:
+ </para>
+ <para>
+options= list("MaxIter", [---], "CpuTime", [---], "GradObj", ---, "GradCon", ---);
+ </para>
<para>
-The options allows the user to set various parameters of the Optimization problem.
-It should be defined as type "list" and contains the following fields.
<itemizedlist>
-<listitem>Syntax : options= list("MaxIter", [---], "CpuTime", [---], "GradObj", ---, "GradCon", ---);</listitem>
-<listitem>MaxIter : a Scalar, containing the Maximum Number of Iteration that the solver should take.</listitem>
-<listitem>CpuTime : a Scalar, containing the Maximum amount of CPU Time that the solver should take.</listitem>
-<listitem>GradObj : a function, representing the gradient function of the Objective in Vector Form.</listitem>
-<listitem>GradCon : a function, representing the gradient of the Non-Linear Constraints (both Equality and Inequality) of the problem. It is declared in such a way that gradient of non-linear inequality constraints are defined first as a separate Matrix (cg of size m2 X n or as an empty), followed by gradient of non-linear equality constraints as a separate Matrix (ceqg of size m2 X n or as an empty) where m2 &amp; m3 are number of non-linear inequality and equality constraints respectively.</listitem>
+<listitem>MaxIter : A Scalar, specifying the Maximum Number of iterations that the solver should take.</listitem>
+<listitem>CpuTime : A Scalar, specifying the Maximum amount of CPU Time in seconds that the solver should take.</listitem>
+<listitem>GradObj : A function, representing the gradient function of the Objective in Vector Form.</listitem>
+<listitem>GradCon : A function, representing the gradient of the Non-Linear Constraints (both Equality and Inequality) of the problem. It is declared in such a way that gradient of non-linear inequality constraints are defined first as a separate Matrix (cg of size m2 X n or as an empty), followed by gradient of non-linear equality constraints as a separate matrix (ceqg of size m2 X n or as an empty) where m2 &amp;amp; m3 are number of non-linear inequality and equality constraints respectively.</listitem>
<listitem>Default Values : options = list("MaxIter", [3000], "CpuTime", [600]);</listitem>
</itemizedlist>
+The default values for the various items are given as:
</para>
<para>
-The objective function must have header :
+options = list("MaxIter", [3000], "CpuTime", [600]);
+ </para>
+ <para>
+The objective function must have a header :
<programlisting>
F = fun(x)
</programlisting>
@@ -123,24 +140,28 @@ where x is a n x 1 matrix of doubles and F is a m x 1 matrix of doubles where m
On input, the variable x contains the current point and, on output, the variable F must contain the objective function values.
</para>
<para>
-By default, the gradient options for fminimax are turned off and and fmincon does the gradient opproximation of minmaxObjfun. In case the GradObj option is off and GradConstr option is on, fminimax approximates minmaxObjfun gradient using numderivative toolbox.
+By default, the gradient options for fminimax are turned off and and fmincon does the gradient opproximation of minmaxObjfun. In case the GradObj option is off and GradCon option is on, fminimax approximates minmaxObjfun gradient using the numderivative toolbox.
+ </para>
+<title>Syntax</title>
+<para>
+Some syntactic details about fminimax, including the syntax for the gradient, defining the non-linear constraints, and the constraint derivative function have been provided below:
</para>
<para>
-If we can provide exact gradients, we should do so since it improves the convergence speed of the optimization algorithm.
+If the user can provide exact gradients, it should be done, since it improves the convergence speed of the optimization algorithm.
</para>
<para>
-Furthermore, we must enable the "GradObj" option with the statement :
+Furthermore, we can enable the "GradObj" option with the statement :
<programlisting>
minimaxOptions = list("GradObj",fGrad);
</programlisting>
This will let fminimax know that the exact gradient of the objective function is known, so that it can change the calling sequence to the objective function. Note that, fGrad should be mentioned in the form of N x n where n is the number of variables, N is the number of functions in objective function.
</para>
<para>
-The constraint function must have header :
+The constraint function must have header:
<programlisting>
[c, ceq] = confun(x)
</programlisting>
-where x is a n x 1 matrix of dominmaxUbles, c is a 1 x nni matrix of doubles and ceq is a 1 x nne matrix of doubles (nni : number of nonlinear inequality constraints, nne : number of nonlinear equality constraints).
+Where x is a n x 1 matrix of minimax doubles, c is a 1 x nni matrix of doubles and ceq is a 1 x nne matrix of doubles (nni : number of nonlinear inequality constraints, nne : number of nonlinear equality constraints).
On input, the variable x contains the current point and, on output, the variable c must contain the nonlinear inequality constraints and ceq must contain the nonlinear equality constraints.
</para>
<para>
@@ -164,32 +185,32 @@ The constraint derivative function must have header :
where dc is a nni x n matrix of doubles and dceq is a nne x n matrix of doubles.
</para>
<para>
-The exitflag allows to know the status of the optimization which is given back by Ipopt.
+The exitflag allows the user to know the status of the optimization which is returned by Ipopt. The values it can take and what they indicate is described below:
<itemizedlist>
-<listitem>exitflag=0 : Optimal Solution Found </listitem>
-<listitem>exitflag=1 : Maximum Number of Iterations Exceeded. Output may not be optimal.</listitem>
-<listitem>exitflag=2 : Maximum amount of CPU Time exceeded. Output may not be optimal.</listitem>
-<listitem>exitflag=3 : Stop at Tiny Step.</listitem>
-<listitem>exitflag=4 : Solved To Acceptable Level.</listitem>
-<listitem>exitflag=5 : Converged to a point of local infeasibility.</listitem>
+<listitem> 0 : Optimal Solution Found </listitem>
+<listitem> 1 : Maximum Number of Iterations Exceeded. Output may not be optimal.</listitem>
+<listitem> 2 : Maximum amount of CPU Time exceeded. Output may not be optimal.</listitem>
+<listitem> 3 : Stop at Tiny Step.</listitem>
+<listitem> 4 : Solved To Acceptable Level.</listitem>
+<listitem> 5 : Converged to a point of local infeasibility.</listitem>
</itemizedlist>
</para>
<para>
-For more details on exitflag see the ipopt documentation, go to http://www.coin-or.org/Ipopt/documentation/
+For more details on exitflag, see the ipopt documentation which can be found on http://www.coin-or.org/Ipopt/documentation/
</para>
<para>
-The output data structure contains detailed informations about the optimization process.
-It has type "struct" and contains the following fields.
+The output data structure contains detailed information about the optimization process.
+It is of type "struct" and contains the following fields.
<itemizedlist>
-<listitem>output.Iterations: The number of iterations performed during the search</listitem>
-<listitem>output.Cpu_Time: The total cpu-time spend during the search</listitem>
-<listitem>output.Objective_Evaluation: The number of Objective Evaluations performed during the search</listitem>
-<listitem>output.Dual_Infeasibility: The Dual Infeasiblity of the final soution</listitem>
+<listitem>output.Iterations: The number of iterations performed.</listitem>
+<listitem>output.Cpu_Time : The total cpu-time taken.</listitem>
+<listitem>output.Objective_Evaluation: The number of Objective Evaluations performed.</listitem>
+<listitem>output.Dual_Infeasibility : The Dual Infeasiblity of the final soution.</listitem>
+<listitem>output.Message: The output message for the problem.</listitem>
</itemizedlist>
</para>
- <para>
-The lambda data structure contains the Lagrange multipliers at the end
-of optimization. In the current version the values are returned only when the the solution is optimal.
+ <para>
+The lambda data structure contains the Lagrange multipliers at the end of optimization. In the current version the values are returned only when the the solution is optimal.
It has type "struct" and contains the following fields.
<itemizedlist>
<listitem>lambda.lower: The Lagrange multipliers for the lower bound constraints.</listitem>
@@ -200,16 +221,70 @@ It has type "struct" and contains the following fields.
<listitem>lambda.ineqnonlin: The Lagrange multipliers for the non-linear inequality constraints.</listitem>
</itemizedlist>
</para>
+
+</refsection>
+<para>
+A few examples displaying the various functionalities of fminimax have been provided below. You will find a series of problems and the appropriate code snippets to solve them.
+ </para>
+<refsection>
+ <title>Example</title>
+ Here we solve a simple objective function, subjected to no constraints.
+<para>
+<latex>
+\begin{eqnarray}
+\mbox\min_{x} \max_{i}\ f_{i}(x)\\
+\end{eqnarray}
+\\
+\begin{eqnarray}
+&amp;f_{1}(x) &amp;= 2 \boldsymbol{\cdot} x_{1}^{2} + x_{2}^{2} - 48x_{1} - 40x_{2} + 304\\
+&amp;f_{2}(x) &amp;= -x_{1}^{2} - 3x_{2}^{2}\\
+&amp;f_{3}(x) &amp;= x_{1} + 3x_{2} - 18\\
+&amp;f_{4}(x) &amp;= -x_{1} - x_{2}\\
+&amp;f_{5}(x) &amp;= x_{1} + x_{2} - 8
+\end{eqnarray}
+</latex>
+ </para>
<para>
-</para>
+
+ </para>
+ <programlisting role="example"><![CDATA[
+//Example 1:
+// Objective function
+function f = myfun(x)
+f(1)= 2*x(1)^2 + x(2)^2 - 48*x(1) - 40*x(2) + 304; //Objectives
+f(2)= -x(1)^2 - 3*x(2)^2;
+f(3)= x(1) + 3*x(2) -18;
+f(4)= -x(1) - x(2);
+f(5)= x(1) + x(2) - 8;
+endfunction
+// The initial guess
+x0 = [0.1,0.1];
+// Run fminimax
+[x,fval,maxfval,exitflag,output,lambda] = fminimax(myfun, x0)
+
+
+ ]]></programlisting>
</refsection>
<refsection>
- <title>Examples</title>
+ <title>Example</title>
+ We proceed to add simple linear inequality constraints.
+
+<para>
+<latex>
+\begin{eqnarray}
+\hspace{70pt} &amp;x_{1} + x_{2}&amp;\leq 2\\
+\hspace{70pt} &amp;x_{1} + x_{2}/4&amp;\leq 1\\
+\hspace{70pt} &amp;-x_{1} + x_{2}&amp;\geq -1\\
+\end{eqnarray}
+</latex>
+ </para>
+ <para>
+
+ </para>
<programlisting role="example"><![CDATA[
-// A basic case :
-// we provide only the objective function and the nonlinear constraint
-// function
+//Example 2:
+//Objective function
function f = myfun(x)
f(1)= 2*x(1)^2 + x(2)^2 - 48*x(1) - 40*x(2) + 304; //Objectives
f(2)= -x(1)^2 - 3*x(2)^2;
@@ -219,23 +294,164 @@ f(5)= x(1) + x(2) - 8;
endfunction
// The initial guess
x0 = [0.1,0.1];
-// The expected solution : only 4 digits are guaranteed
-xopt = [4 4]
-fopt = [0 -64 -2 -8 0]
-maxfopt = 0
+//Linear Inequality constraints
+A=[1,1 ; 1,1/4 ; 1,-1];
+b=[2;1;1];
// Run fminimax
-[x,fval,maxfval,exitflag,output,lambda] = fminimax(myfun, x0)
-// Press ENTER to continue
+[x,fval,maxfval,exitflag,output,lambda] = fminimax(myfun, x0,A,b)
+
+
+ ]]></programlisting>
+</refsection>
+
+<refsection>
+ <title>Example</title>
+Here we build up on the previous example by adding linear equality constraints.
+We add the following constraints to the problem specified above:
+<para>
+<latex>
+\begin{eqnarray}
+&amp;x_{1} - x_{2}&amp;= 1
+\\&amp;2x_{1} + x_{2}&amp;= 2
+\end{eqnarray}
+</latex>
+ </para>
+ <para>
+
+ </para>
+ <programlisting role="example"><![CDATA[
+//Example 3:
+//Objective function
+function f = myfun(x)
+f(1)= 2*x(1)^2 + x(2)^2 - 48*x(1) - 40*x(2) + 304; //Objectives
+f(2)= -x(1)^2 - 3*x(2)^2;
+f(3)= x(1) + 3*x(2) -18;
+f(4)= -x(1) - x(2);
+f(5)= x(1) + x(2) - 8;
+endfunction
+// The initial guess
+x0 = [0.1,0.1];
+//Linear Inequality constraints
+A=[1,1 ; 1,1/4 ; 1,-1];
+b=[2;1;1];
+//We specify the linear equality constraints below.
+Aeq = [1,-1; 2, 1];
+beq = [1;2];
+// Run fminimax
+[x,fval,maxfval,exitflag,output,lambda] = fminimax(myfun, x0,A,b,Aeq,beq)
+
+
+ ]]></programlisting>
+</refsection>
+
+<refsection>
+ <title>Example</title>
+In this example, we proceed to add the upper and lower bounds to the objective function.
+<para>
+<latex>
+\begin{eqnarray}
+-1 &amp;\leq x_{1} &amp;\leq \infty\\
+-\infty &amp;\leq x_{2} &amp;\leq 1
+\end{eqnarray}
+</latex>
+ </para>
+ <para>
+
+ </para>
+ <programlisting role="example"><![CDATA[
+//Example 4:
+//Objective function
+function f = myfun(x)
+f(1)= 2*x(1)^2 + x(2)^2 - 48*x(1) - 40*x(2) + 304; //Objectives
+f(2)= -x(1)^2 - 3*x(2)^2;
+f(3)= x(1) + 3*x(2) -18;
+f(4)= -x(1) - x(2);
+f(5)= x(1) + x(2) - 8;
+endfunction
+// The initial guess
+x0 = [0.1,0.1];
+//Linear Inequality constraints
+A=[1,1 ; 1,1/4 ; 1,-1];
+b=[2;1;1];
+//We specify the linear equality constraints below.
+Aeq = [1,-1; 2, 1];
+beq = [1;2];
+//The upper and lower bounds for the objective function are defined in simple vectors as shown below.
+lb = [-1;-%inf];
+ub = [%inf;1]; //
+// Run fminimax
+[x,fval,maxfval,exitflag,output,lambda] = fminimax(myfun, x0,A,b,Aeq,beq,lb,ub)
+
]]></programlisting>
</refsection>
+
<refsection>
- <title>Examples</title>
+ <title>Example</title>
+Finally, we add the non-linear constraints to the problem. Note that there is a notable difference in the way this is done as compared to defining the linear constraints.
+ <para>
+<latex>
+\begin{eqnarray}
+x_{1}^2-1&amp;\leq 0\\
+x_{1}^2+x_{2}^{2}-1&amp;\leq 0\\
+\end{eqnarray}
+</latex>
+</para>
+ <para>
+
+ </para>
<programlisting role="example"><![CDATA[
-// A case where we provide the gradient of the objective
-// functions and the Jacobian matrix of the constraints.
-// The objective function and its gradient
+//Example 5:
+//Objective function
+function f = myfun(x)
+f(1)= 2*x(1)^2 + x(2)^2 - 48*x(1) - 40*x(2) + 304; //Objectives
+f(2)= -x(1)^2 - 3*x(2)^2;
+f(3)= x(1) + 3*x(2) -18;
+f(4)= -x(1) - x(2);
+f(5)= x(1) + x(2) - 8;
+endfunction
+// The initial guess
+x0 = [0.1,0.1];
+//Linear Inequality constraints
+A=[1,1 ; 1,1/4 ; 1,-1];
+b=[2;1;1];
+//We specify the linear equality constraints below.
+Aeq = [1,-1; 2, 1];
+beq = [1;2];
+//The upper and lower bounds for the objective function are defined in simple vectors as shown below.
+lb = [-1;-%inf];
+ub = [%inf;1]; //
+//Nonlinear constraints are required to be defined as a single function with the inequality and equality constraints in separate vectors.
+function [c,ceq]=nlc(x)
+c=[x(1)^2-1,x(1)^2+x(2)^2-1];
+ceq=[];
+endfunction
+// Run fminimax
+[x,fval,maxfval,exitflag,output,lambda] = fminimax(myfun, x0,A,b,Aeq,beq,lb,ub)
+
+
+ ]]></programlisting>
+</refsection>
+
+<refsection>
+ <title>Example</title>
+<para>
+We can further enhance the functionality of fminimax by setting input options. We can pre-define the gradient of the objective function and/or the hessian of the lagrange function and thereby improve the speed of computation. This is elaborated on in example 6. We take the following problem, specify the gradients, and the jacobian matrix of the constraints. We also set solver parameters using the options.
+</para>
+<para>
+<latex>
+\begin{eqnarray}
+1.5 + x_{1} \boldsymbol{\cdot} x_{2} - x_{1} - x_{2} &amp;\leq 0\\
+-x_{1}\boldsymbol{\cdot} x_{2} - 10 &amp;\leq 0
+\end{eqnarray}
+</latex>
+</para>
+ <para>
+
+ </para>
+ <programlisting role="example"><![CDATA[
+//Example 6: Using the available options
function f = myfun(x)
f(1)= 2*x(1)^2 + x(2)^2 - 48*x(1) - 40*x(2) + 304;
f(2)= -x(1)^2 - 3*x(2)^2;
@@ -243,6 +459,7 @@ f(3)= x(1) + 3*x(2) -18;
f(4)= -x(1) - x(2);
f(5)= x(1) + x(2) - 8;
endfunction
+
// Defining gradient of myfun
function G = myfungrad(x)
G = [ 4*x(1) - 48, -2*x(1), 1, -1, 1;
@@ -270,7 +487,7 @@ x(1)-1, -x(1)
DCeq = []'
endfunction
// Test with both gradient of objective and gradient of constraints
-minimaxOptions = list("GradObj",myfungrad,"GradCon",cgrad);
+minimaxOptions = list("MaxIter", [3000], "CpuTime", [600],"GradObj",myfungrad,"GradCon",cgrad);
// The initial guess
x0 = [0,10];
// The expected solution : only 4 digits are guaranteed
@@ -283,6 +500,42 @@ maxfopt = 6.73443
</refsection>
<refsection>
+ <title>Example</title>
+Infeasible Problems: Find x in R^2 such that it minimizes the objective function used above under the following constraints:
+<para>
+<latex>
+\begin{eqnarray}
+&amp;x_{1}/3 - 5x_{2}&amp;= 11
+\\&amp;2x_{1} + x_{2}&amp;= 8
+\\ \end{eqnarray}
+</latex>
+ </para>
+<para>
+</para>
+ <programlisting role="example"><![CDATA[
+//Example 7:
+//Objective function
+function f = myfun(x)
+f(1)= 2*x(1)^2 + x(2)^2 - 48*x(1) - 40*x(2) + 304; //Objectives
+f(2)= -x(1)^2 - 3*x(2)^2;
+f(3)= x(1) + 3*x(2) -18;
+f(4)= -x(1) - x(2);
+f(5)= x(1) + x(2) - 8;
+endfunction
+// The initial guess
+x0 = [0.1,0.1];
+//Linear Inequality constraints
+A=[1,1 ; 1,1/4 ; 1,-1];
+b=[2;1;1];
+//We specify the linear equality constraints below.
+Aeq = [1/3,-5; 2, 1];
+beq = [11;8];
+// Run fminimax
+[x,fval,maxfval,exitflag,output,lambda] = fminimax(myfun, x0,A,b,Aeq,beq)
+ ]]></programlisting>
+</refsection>
+
+<refsection>
<title>Authors</title>
<simplelist type="vert">
<member>Animesh Baranawal</member>
diff --git a/help/en_US/fminunc.xml b/help/en_US/fminunc.xml
index e5a46c3..30fc9eb 100644
--- a/help/en_US/fminunc.xml
+++ b/help/en_US/fminunc.xml
@@ -36,26 +36,31 @@
</refsynopsisdiv>
<refsection>
- <title>Parameters</title>
+ <title>Input Parameters</title>
<variablelist>
<varlistentry><term>f :</term>
- <listitem><para> a function, representing the objective function of the problem</para></listitem></varlistentry>
+ <listitem><para> A function, representing the objective function of the problem.</para></listitem></varlistentry>
<varlistentry><term>x0 :</term>
- <listitem><para> a vector of doubles, containing the starting of variables.</para></listitem></varlistentry>
- <varlistentry><term>options:</term>
- <listitem><para> a list, containing the option for user to specify. See below for details.</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, containing the starting values of variables of size (1 X n) or (n X 1) where 'n' is the number of Variables.</para></listitem></varlistentry>
+ <varlistentry><term>options :</term>
+ <listitem><para> A list, containing the options for user to specify. See below for details.</para></listitem></varlistentry>
+ </variablelist>
+</refsection>
+ <refsection>
+<title> Outputs</title>
+ <variablelist>
<varlistentry><term>xopt :</term>
- <listitem><para> a vector of doubles, the computed solution of the optimization problem.</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, containing the computed solution of the optimization problem.</para></listitem></varlistentry>
<varlistentry><term>fopt :</term>
- <listitem><para> a scalar of double, the function value at x.</para></listitem></varlistentry>
+ <listitem><para> A double, containing the the function value at x.</para></listitem></varlistentry>
<varlistentry><term>exitflag :</term>
- <listitem><para> a scalar of integer, containing the flag which denotes the reason for termination of algorithm. See below for details.</para></listitem></varlistentry>
- <varlistentry><term>output :</term>
- <listitem><para> a structure, containing the information about the optimization. See below for details.</para></listitem></varlistentry>
+ <listitem><para> An integer, containing the flag which denotes the reason for termination of algorithm. See below for details.</para></listitem></varlistentry>
+ <varlistentry><term>output :</term>
+ <listitem><para> A structure, containing the information about the optimization. See below for details.</para></listitem></varlistentry>
<varlistentry><term>gradient :</term>
- <listitem><para> a vector of doubles, containing the the gradient of the solution.</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, containing the objective's gradient of the solution.</para></listitem></varlistentry>
<varlistentry><term>hessian :</term>
- <listitem><para> a matrix of doubles, containing the the hessian of the solution.</para></listitem></varlistentry>
+ <listitem><para> A matrix of doubles, containing the lagrangian's hessian of the solution.</para></listitem></varlistentry>
</variablelist>
</refsection>
@@ -63,6 +68,8 @@
<title>Description</title>
<para>
Search the minimum of an unconstrained optimization problem specified by :
+</para>
+ <para>
Find the minimum of f(x) such that
</para>
<para>
@@ -74,101 +81,149 @@ Find the minimum of f(x) such that
</latex>
</para>
<para>
-The routine calls Ipopt for solving the Un-constrained Optimization problem, Ipopt is a library written in C++.
+Fminunc calls Ipopt which is an optimization library written in C++, to solve the unconstrained optimization problem.
+ </para>
+ <para>
+ <title>Options</title>
+The options allow the user to set various parameters of the optimization problem. The syntax for the options is given by:
+ </para>
+ <para>
+options= list("MaxIter", [---], "CpuTime", [---], "GradObj", ---, "Hessian", ---, "GradCon", ---);
</para>
<para>
-The options allows the user to set various parameters of the Optimization problem.
-It should be defined as type "list" and contains the following fields.
<itemizedlist>
-<listitem>Syntax : options= list("MaxIter", [---], "CpuTime", [---], "Gradient", ---, "Hessian", ---);</listitem>
-<listitem>MaxIter : a Scalar, containing the Maximum Number of Iteration that the solver should take.</listitem>
-<listitem>CpuTime : a Scalar, containing the Maximum amount of CPU Time that the solver should take.</listitem>
-<listitem>Gradient : a function, representing the gradient function of the Objective in Vector Form.</listitem>
-<listitem>Hessian : a function, representing the hessian function of the Objective in Symmetric Matrix Form.</listitem>
-<listitem>Default Values : options = list("MaxIter", [3000], "CpuTime", [600]);</listitem>
+<listitem>MaxIter : A Scalar, specifying the Maximum Number of Iterations that the solver should take.</listitem>
+<listitem>CpuTime : A Scalar, specifying the Maximum amount of CPU Time in seconds that the solver should take.</listitem>
+<listitem>Gradient: A function, representing the gradient function of the objective in Vector Form.</listitem>
+<listitem>Hessian : A function, representing the hessian function of the lagrange in the form of a Symmetric Matrix with input parameters as x, objective factor and lambda. Refer to Example 5 for definition of lagrangian hessian function.</listitem>
</itemizedlist>
+The default values for the various items are given as:
</para>
<para>
-The exitflag allows to know the status of the optimization which is given back by Ipopt.
+options = list("MaxIter", [3000], "CpuTime", [600]);
+ </para>
+ <para>
+The exitflag allows the user to know the status of the optimization which is returned by Ipopt. The values it can take and what they indicate is described below:
<itemizedlist>
-<listitem>exitflag=0 : Optimal Solution Found </listitem>
-<listitem>exitflag=1 : Maximum Number of Iterations Exceeded. Output may not be optimal.</listitem>
-<listitem>exitflag=2 : Maximum CPU Time exceeded. Output may not be optimal.</listitem>
-<listitem>exitflag=3 : Stop at Tiny Step.</listitem>
-<listitem>exitflag=4 : Solved To Acceptable Level.</listitem>
-<listitem>exitflag=5 : Converged to a point of local infeasibility.</listitem>
+<listitem> 0 : Optimal Solution Found </listitem>
+<listitem> 1 : Maximum Number of Iterations Exceeded. Output may not be optimal.</listitem>
+<listitem> 2 : Maximum amount of CPU Time exceeded. Output may not be optimal.</listitem>
+<listitem> 3 : Stop at Tiny Step.</listitem>
+<listitem> 4 : Solved To Acceptable Level.</listitem>
+<listitem> 5 : Converged to a point of local infeasibility.</listitem>
</itemizedlist>
</para>
<para>
-For more details on exitflag see the ipopt documentation, go to http://www.coin-or.org/Ipopt/documentation/
+For more details on exitflag, see the Ipopt documentation which can be found on http://www.coin-or.org/Ipopt/documentation/
</para>
<para>
-The output data structure contains detailed informations about the optimization process.
-It has type "struct" and contains the following fields.
+The output data structure contains detailed information about the optimization process.
+It is of type "struct" and contains the following fields.
<itemizedlist>
-<listitem>output.Iterations: The number of iterations performed during the search</listitem>
-<listitem>output.Cpu_Time: The total cpu-time spend during the search</listitem>
-<listitem>output.Objective_Evaluation: The number of Objective Evaluations performed during the search</listitem>
-<listitem>output.Dual_Infeasibility: The Dual Infeasiblity of the final soution</listitem>
-<listitem>output.Message: The output message for the problem</listitem>
+<listitem>output.Iterations: The number of iterations performed.</listitem>
+<listitem>output.Cpu_Time : The total cpu-time taken.</listitem>
+<listitem>output.Objective_Evaluation: The number of objective evaluations performed.</listitem>
+<listitem>output.Dual_Infeasibility : The Dual Infeasiblity of the final soution.</listitem>
+<listitem>output.Message: The output message for the problem.</listitem>
</itemizedlist>
</para>
<para>
</para>
</refsection>
+ <para>
+A few examples displaying the various functionalities of fminunc have been provided below. You will find a series of problems and the appropriate code snippets to solve them.
+ </para>
+
<refsection>
- <title>Examples</title>
+ <title>Example</title>
+<para>
+We begin with the minimization of a simple non-linear function.
+</para>
+ <para>
+Find x in R^2 such that it minimizes:
+ </para>
+ <para>
+<latex>
+\begin{eqnarray}
+\mbox{min}_{x}\ f(x) = x_{1}^{2} + x_{2}^{2}
+\end{eqnarray}
+</latex>
+ </para>
+ <para>
+
+</para>
<programlisting role="example"><![CDATA[
-//Find x in R^2 such that it minimizes the Rosenbrock function
-//f = 100*(x2 - x1^2)^2 + (1-x1)^2
+//Example 1: Simple non-linear function.
//Objective function to be minimised
function y= f(x)
-y= 100*(x(2) - x(1)^2)^2 + (1-x(1))^2;
+y= x(1)^2 + x(2)^2;
endfunction
//Starting point
-x0=[-1,2];
-//Gradient of objective function
-function y= fGrad(x)
-y= [-400*x(1)*x(2) + 400*x(1)^3 + 2*x(1)-2, 200*(x(2)-x(1)^2)];
-endfunction
-//Hessian of Objective Function
-function y= fHess(x)
-y= [1200*x(1)^2- 400*x(2) + 2, -400*x(1);-400*x(1), 200 ];
-endfunction
-//Options
-options=list("MaxIter", [1500], "CpuTime", [500], "Gradient", fGrad, "Hessian", fHess);
+x0=[2,1];
//Calling Ipopt
-[xopt,fopt,exitflag,output,gradient,hessian]=fminunc(f,x0,options)
+[xopt,fopt]=fminunc(f,x0)
// Press ENTER to continue
]]></programlisting>
</refsection>
<refsection>
- <title>Examples</title>
+ <title>Example</title>
+<para>
+We now look at the Rosenbrock function, a non-convex performance test problem for optimization routines. We use this example to illustrate how we can enhance the functionality of fminunc by setting input options. We can pre-define the gradient of the objective function and/or the hessian of the lagrange function and thereby improve the speed of computation. This is elaborated on in example 2. We also set solver parameters using the options.
+</para>
+ <para>
+<latex>
+\begin{eqnarray}
+\mbox{min}_{x}\ f(x) = 100\boldsymbol{\cdot} (x_{2} - x_{1}^{2})^{2} + (1-x_{1})^{2}
+\end{eqnarray}
+</latex>
+ </para>
+ <para>
+
+</para>
<programlisting role="example"><![CDATA[
-//Find x in R^2 such that the below function is minimum
-//f = x1^2 + x2^2
+//Example 2: The Rosenbrock function.
//Objective function to be minimised
function y= f(x)
-y= x(1)^2 + x(2)^2;
+y= 100*(x(2) - x(1)^2)^2 + (1-x(1))^2;
endfunction
//Starting point
-x0=[2,1];
+x0=[-1,2];
+//Gradient of objective function
+function y= fGrad(x)
+y= [-400*x(1)*x(2) + 400*x(1)^3 + 2*x(1)-2, 200*(x(2)-x(1)^2)];
+endfunction
+//Hessian of Objective Function
+function y= fHess(x)
+y= [1200*x(1)^2- 400*x(2) + 2, -400*x(1);-400*x(1), 200 ];
+endfunction
+//Options
+options=list("MaxIter", [1500], "CpuTime", [500], "GradObj", fGrad, "Hessian", fHess);
//Calling Ipopt
-[xopt,fopt]=fminunc(f,x0)
+[xopt,fopt,exitflag,output,gradient,hessian]=fminunc(f,x0,options)
// Press ENTER to continue
]]></programlisting>
</refsection>
<refsection>
- <title>Examples</title>
+ <title>Example</title>
+<para>
+Unbounded Problems: Find x in R^2 such that it minimizes:
+</para>
+ <para>
+<latex>
+\begin{eqnarray}
+f(x) = -x_{1}^{2} - x_{2}^{2}
+\end{eqnarray}
+</latex>
+ </para>
+ <para>
+ </para>
<programlisting role="example"><![CDATA[
-//The below problem is an unbounded problem:
-//Find x in R^2 such that the below function is minimum
-//f = - x1^2 - x2^2
+//Example 3: Unbounded objective function.
//Objective function to be minimised
function y= f(x)
y= -x(1)^2 - x(2)^2;
@@ -184,7 +239,7 @@ function y= fHess(x)
y= [-2,0;0,-2];
endfunction
//Options
-options=list("MaxIter", [1500], "CpuTime", [500], "Gradient", fGrad, "Hessian", fHess);
+options=list("MaxIter", [1500], "CpuTime", [500], "GradObj", fGrad, "Hessian", fHess);
//Calling Ipopt
[xopt,fopt,exitflag,output,gradient,hessian]=fminunc(f,x0,options)
]]></programlisting>
diff --git a/help/en_US/intfminbnd.xml b/help/en_US/intfminbnd.xml
new file mode 100644
index 0000000..dbc8fa9
--- /dev/null
+++ b/help/en_US/intfminbnd.xml
@@ -0,0 +1,242 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ *
+ * This help file was generated from intfminbnd.sci using help_from_sci().
+ *
+ -->
+
+<refentry version="5.0-subset Scilab" xml:id="intfminbnd" xml:lang="en"
+ xmlns="http://docbook.org/ns/docbook"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:ns3="http://www.w3.org/1999/xhtml"
+ xmlns:mml="http://www.w3.org/1998/Math/MathML"
+ xmlns:scilab="http://www.scilab.org"
+ xmlns:db="http://docbook.org/ns/docbook">
+
+ <refnamediv>
+ <refname>intfminbnd</refname>
+ <refpurpose>Solves a multi-variable optimization problem on a bounded interval</refpurpose>
+ </refnamediv>
+
+
+<refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>
+ xopt = intfminbnd(f,intcon,x1,x2)
+ xopt = intfminbnd(f,intcon,x1,x2,options)
+ [xopt,fopt] = intfminbnd(.....)
+ [xopt,fopt,exitflag]= intfminbnd(.....)
+ [xopt,fopt,exitflag,output]=intfminbnd(.....)
+ [xopt,fopt,exitflag,gradient,hessian]=intfminbnd(.....)
+
+ </synopsis>
+</refsynopsisdiv>
+
+<refsection>
+ <title>Input Parameters</title>
+ <variablelist>
+ <varlistentry><term>f :</term>
+ <listitem><para> A function, representing the objective function of the problem.</para></listitem></varlistentry>
+ <varlistentry><term><latex>x_{1}</latex> :</term>
+ <listitem><para> A vector, containing the lower bound of the variables of size (1 X n) or (n X 1) where n is number of variables. If it is empty it means that the lower bound is <latex>-\infty</latex>.</para></listitem></varlistentry>
+ <varlistentry><term><latex>x_{2}</latex> :</term>
+ <listitem><para> A vector, containing the upper bound of the variables of size (1 X n) or (n X 1) or (0 X 0) where n is the number of variables. If it is empty it means that the upper bound is <latex>\infty</latex>.</para></listitem></varlistentry>
+ <varlistentry><term>intcon :</term>
+ <listitem><para> A vector of integers, representing the variables that are constrained to be integers.</para></listitem></varlistentry>
+ <varlistentry><term>options :</term>
+ <listitem><para> A list, containing the options for user to specify. See below for details.</para></listitem></varlistentry>
+ </variablelist>
+</refsection>
+ <refsection>
+<title> Outputs</title>
+ <variablelist>
+ <varlistentry><term>xopt :</term>
+ <listitem><para> A vector of doubles, containing the computed solution of the optimization problem.</para></listitem></varlistentry>
+ <varlistentry><term>fopt :</term>
+ <listitem><para> A double, containing the the function value at x.</para></listitem></varlistentry>
+ <varlistentry><term>exitflag :</term>
+ <listitem><para> An integer, containing the flag which denotes the reason for termination of algorithm. See below for details.</para></listitem></varlistentry>
+ <varlistentry><term>gradient :</term>
+ <listitem><para> A vector of doubles, containing the objective's gradient of the solution.</para></listitem></varlistentry>
+ <varlistentry><term>hessian :</term>
+ <listitem><para>A matrix of doubles, containing the Lagrangian's hessian of the solution.</para></listitem></varlistentry>
+ </variablelist>
+</refsection>
+
+<refsection>
+ <title>Description</title>
+ <para>
+Search the minimum of a multi-variable function on bounded interval specified by :
+Find the minimum of f(x) such that
+ </para>
+ <para>
+<latex>
+\begin{eqnarray}
+&amp;\mbox{min}_{x}
+&amp; f(x)\\
+&amp; \text{Subjected to:}\\ &amp; x_{1} \ &lt; x \ &lt; x_{2} \\
+\end{eqnarray}
+</latex>
+ </para>
+ <para>
+intfminbnd calls Bonmin, which is an optimization library written in C++, to solve the bound optimization problem.
+ </para>
+ <para>
+<title>Options</title>
+The options allow the user to set various parameters of the Optimization problem. The syntax for the options is given by:
+ </para>
+ <para>
+options= list("IntegerTolerance", [---], "MaxNodes",[---], "MaxIter", [---], "AllowableGap",[---] "CpuTime", [---],"gradobj", "off", "hessian", "off" );
+<itemizedlist>
+<listitem>IntegerTolerance : A Scalar, a number with that value of an integer is considered integer.</listitem>
+<listitem>MaxNodes : A Scalar, containing the maximum number of nodes that the solver should search.</listitem>
+<listitem>CpuTime : A scalar, specifying the maximum amount of CPU Time in seconds that the solver should take.</listitem>
+<listitem>AllowableGap : A scalar, that specifies the gap between the computed solution and the the objective value of the best known solution stop, at which the tree search can be stopped.</listitem>
+<listitem>MaxIter : A scalar, specifying the maximum number of iterations that the solver should take.</listitem>
+<listitem>gradobj : A string, to turn on or off the user supplied objective gradient.</listitem>
+<listitem>hessian : A scalar, to turn on or off the user supplied objective hessian.</listitem>
+</itemizedlist>
+ The default values for the various items are given as:
+ </para>
+ <para>
+ options = list('integertolerance',1d-06,'maxnodes',2147483647,'cputime',1d10,'allowablegap',0,'maxiter',2147483647,'gradobj',"off",'hessian',"off")
+ </para>
+
+ <para>
+The exitflag allows the user to know the status of the optimization which is returned by Bonmin. The values it can take and what they indicate is described below:
+<itemizedlist>
+<listitem> 0 : Optimal Solution Found </listitem>
+<listitem> 1 : Maximum Number of Iterations Exceeded. Output may not be optimal.</listitem>
+<listitem> 2 : Maximum amount of CPU Time exceeded. Output may not be optimal.</listitem>
+<listitem> 3 : Stop at Tiny Step.</listitem>
+<listitem> 4 : Solved To Acceptable Level.</listitem>
+<listitem> 5 : Converged to a point of local infeasibility.</listitem>
+</itemizedlist>
+ </para>
+ <para>
+For more details on exitflag, see the Bonmin documentation which can be found on http://www.coin-or.org/Bonmin
+ </para>
+ <para>
+</para>
+</refsection>
+<para>
+A few examples displaying the various functionalities of intfminbnd have been provided below. You will find a series of problems and the appropriate code snippets to solve them.
+ </para>
+<refsection>
+ <title>Example</title>
+ <para>
+We start with a simple objective function. Find x in R^6 such that it minimizes:
+ </para>
+ <para>
+<latex>
+\begin{eqnarray}
+\mbox{min}_{x}\ f(x) = sin(x_{1}) + sin(x_{2}) + sin(x_{3}) + sin(x_{4}) + sin(x_{5}) + sin(x_{6})
+\end{eqnarray}
+\\\text{Subjected to:}\\
+\begin{eqnarray}
+\hspace{70pt} &amp;-2 &amp;\leq x{1}, x{2}, x{3}, x{4}, x{5}, x{6} &amp;\leq 2\\
+\end{eqnarray}\\
+\text{With integer constraints as: }\\
+\begin{eqnarray}
+\begin{array}{ccc}
+[2 &amp; 3 &amp; 4] \\
+\end{array}
+\end{eqnarray}
+</latex>
+ </para>
+<para>
+</para>
+ <programlisting role="example"><![CDATA[
+//Example 1:
+//Objective function to be minimised
+function y=f(x)
+y=0
+for i =1:6
+y=y+sin(x(i));
+end
+endfunction
+//Variable bounds
+x1 = [-2, -2, -2, -2, -2, -2];
+x2 = [2, 2, 2, 2, 2, 2];
+intcon = [2 3 4]
+[x,fval] =intfminbnd(f ,intcon, x1, x2)
+// Press ENTER to continue
+
+ ]]></programlisting>
+</refsection>
+
+<refsection>
+ <title>Example</title>
+ Here we solve a bounded objective function in R^6. We use this function to illustrate how we can further enhance the functionality of fminbnd by setting input options. We can pre-define the gradient of the objective function and/or the hessian of the lagrange function and thereby improve the speed of computation. This is elaborated on in example 2. We also set solver parameters using the options.
+ <programlisting role="example"><![CDATA[
+//Example 2:
+//Objective function to be minimised
+function y=f(x)
+y=0
+for i =1:6
+y=y+sin(x(i));
+end
+endfunction
+//Variable bounds
+x1 = [-2, -2, -2, -2, -2, -2];
+x2 = [2, 2, 2, 2, 2, 2];
+intcon = [2 3 4]
+//Options
+options=list("MaxIter",[1500],"CpuTime", [100])
+[x,fval] =intfminbnd(f ,intcon, x1, x2, options)
+// Press ENTER to continue
+
+ ]]></programlisting>
+</refsection>
+
+
+<refsection>
+ <title>Example</title>
+ <para>
+ Unbounded Problems: Find x in R^2 such that it minimizes:
+ </para>
+ <para>
+ <latex>
+ \begin{eqnarray}
+f(x) = -((x_{1}-1)^{2}+(x_{2}-1)^{2})
+\end{eqnarray}
+\\\text{Subjected to:}\\
+\begin{eqnarray}
+-\infty &amp;\leq x_{1} &amp;\leq \infty\\
+-\infty &amp;\leq x_{2} &amp;\leq \infty
+\end{eqnarray}\\
+\text{With integer constraints as: } \\
+\begin{eqnarray}
+\begin{array}{cccccc}
+[1 &amp; 2] \\
+\end{array}
+\end{eqnarray}
+</latex>
+</para>
+<para>
+</para>
+ <programlisting role="example"><![CDATA[
+///Example 3: Unbounded problem:
+//Objective function to be minimised
+function y=f(x)
+y=-((x(1)-1)^2+(x(2)-1)^2);
+endfunction
+//Variable bounds
+x1 = [-%inf , -%inf];
+x2 = [ %inf , %inf];
+//Options
+options=list("MaxIter",[1500],"CpuTime", [100]);
+intcon = [1 2];
+[x,fval,exitflag,output,lambda] =intfminbnd(f,intcon, x1, x2, options)
+ ]]></programlisting>
+</refsection>
+
+<refsection>
+ <title>Authors</title>
+ <simplelist type="vert">
+ <member>Harpreet Singh</member>
+ </simplelist>
+</refsection>
+</refentry>
diff --git a/help/en_US/intfmincon.xml b/help/en_US/intfmincon.xml
new file mode 100644
index 0000000..782978e
--- /dev/null
+++ b/help/en_US/intfmincon.xml
@@ -0,0 +1,509 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ *
+ * This help file was generated from intfmincon.sci using help_from_sci().
+ *
+ -->
+
+<refentry version="5.0-subset Scilab" xml:id="intfmincon" xml:lang="en"
+ xmlns="http://docbook.org/ns/docbook"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:ns3="http://www.w3.org/1999/xhtml"
+ xmlns:mml="http://www.w3.org/1998/Math/MathML"
+ xmlns:scilab="http://www.scilab.org"
+ xmlns:db="http://docbook.org/ns/docbook">
+
+ <refnamediv>
+ <refname>intfmincon</refname>
+ <refpurpose>Solves a constrainted multi-variable mixed integer non linear programming problem</refpurpose>
+ </refnamediv>
+
+
+<refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>
+ xopt = intfmincon(f,x0,intcon,A,b)
+ xopt = intfmincon(f,x0,intcon,A,b,Aeq,beq)
+ xopt = intfmincon(f,x0,intcon,A,b,Aeq,beq,lb,ub)
+ xopt = intfmincon(f,x0,intcon,A,b,Aeq,beq,lb,ub,nlc)
+ xopt = intfmincon(f,x0,intcon,A,b,Aeq,beq,lb,ub,nlc,options)
+ [xopt,fopt] = intfmincon(.....)
+ [xopt,fopt,exitflag]= intfmincon(.....)
+ [xopt,fopt,exitflag,gradient]=intfmincon(.....)
+ [xopt,fopt,exitflag,gradient,hessian]=intfmincon(.....)
+
+ </synopsis>
+</refsynopsisdiv>
+
+<refsection>
+ <title>Input Parameters</title>
+ <variablelist>
+ <varlistentry><term>f :</term>
+ <listitem><para> A function, representing the objective function of the problem.</para></listitem></varlistentry>
+ <varlistentry><term>x0 :</term>
+ <listitem><para> A vector of doubles, containing the starting values of variables of size (1 X n) or (n X 1) where 'n' is the number of variables.</para></listitem></varlistentry>
+ <varlistentry><term>intcon :</term>
+ <listitem><para> A vector of integers, representing the variables that are constrained to be integers.</para></listitem></varlistentry>
+ <varlistentry><term>A :</term>
+ <listitem><para> A matrix of doubles, containing the coefficients of linear inequality constraints of size (m X n) where 'm' is the number of linear inequality constraints.</para></listitem></varlistentry>
+ <varlistentry><term>b :</term>
+ <listitem><para> A vector of doubles, related to 'A' and represents the linear coefficients in the linear inequality constraints of size (m X 1).</para></listitem></varlistentry>
+ <varlistentry><term>Aeq :</term>
+ <listitem><para> A matrix of doubles, containing the coefficients of linear equality constraints of size (m1 X n) where 'm1' is the number of linear equality constraints.</para></listitem></varlistentry>
+ <varlistentry><term>beq :</term>
+ <listitem><para> A vector of double, vector of doubles, related to 'Aeq' and represents the linear coefficients in the equality constraints of size (m1 X 1).</para></listitem></varlistentry>
+ <varlistentry><term>lb :</term>
+ <listitem><para> A vector of doubles, containing the lower bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables.</para></listitem></varlistentry>
+ <varlistentry><term>ub :</term>
+ <listitem><para> A vector of doubles, containing the upper bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables.</para></listitem></varlistentry>
+ <varlistentry><term>nlc :</term>
+ <listitem><para> A function, representing the Non-linear Constraints functions(both Equality and Inequality) of the problem. It is declared in such a way that non-linear inequality constraints (c), and the non-linear equality constraints (ceq) are defined as separate single row vectors.</para></listitem></varlistentry>
+ <varlistentry><term>options :</term>
+ <listitem><para> A list, containing the option for user to specify. See below for details.</para></listitem></varlistentry>
+ </variablelist>
+</refsection>
+<refsection>
+<title> Outputs</title>
+ <variablelist>
+ <varlistentry><term>xopt :</term>
+ <listitem><para> A vector of doubles, containing the the computed solution of the optimization problem.</para></listitem></varlistentry>
+ <varlistentry><term>fopt :</term>
+ <listitem><para> A double, containing the value of the function at xopt.</para></listitem></varlistentry>
+ <varlistentry><term>exitflag :</term>
+ <listitem><para> An integer, containing the flag which denotes the reason for termination of algorithm. See below for details.</para></listitem></varlistentry>
+ <varlistentry><term>gradient :</term>
+ <listitem><para> a vector of doubles, containing the Objective's gradient of the solution.</para></listitem></varlistentry>
+ <varlistentry><term>hessian :</term>
+ <listitem><para> a matrix of doubles, containing the Objective's hessian of the solution.</para></listitem></varlistentry>
+ </variablelist>
+</refsection>
+
+<refsection>
+ <title>Description</title>
+ <para>
+Search the minimum of a mixed integer constrained optimization problem specified by :
+Find the minimum of f(x) such that
+ </para>
+ <para>
+<latex>
+\begin{eqnarray}
+&amp;\mbox{min}_{x}
+&amp; f(x) \\
+&amp; \text{Subjected to:} &amp; A \boldsymbol{\cdot} x \leq b \\
+&amp; &amp; Aeq \boldsymbol{\cdot} x \ = beq\\
+&amp; &amp; c(x) \leq 0\\
+&amp; &amp; ceq(x) \ = 0\\
+&amp; &amp; lb \leq x \leq ub \\
+&amp; &amp; x_{i} \in \!\, \mathbb{Z}, i \in \!\, I
+\end{eqnarray}
+</latex>
+ </para>
+ <para>
+intfmincon calls Bonmin, an optimization library written in C++, to solve the Constrained Optimization problem.
+ </para>
+ <para>
+<title>Options</title>
+The options allow the user to set various parameters of the Optimization problem. The syntax for the options is given by:
+ </para>
+ <para>
+options= list("IntegerTolerance", [---], "MaxNodes",[---], "MaxIter", [---], "AllowableGap",[---] "CpuTime", [---],"gradobj", "off", "hessian", "off" );
+<itemizedlist>
+<listitem>IntegerTolerance : A Scalar, a number with that value of an integer is considered integer.</listitem>
+<listitem>MaxNodes : A Scalar, containing the maximum number of nodes that the solver should search.</listitem>
+<listitem>CpuTime : A scalar, specifying the maximum amount of CPU Time in seconds that the solver should take.</listitem>
+<listitem>AllowableGap : A scalar, that specifies the gap between the computed solution and the the objective value of the best known solution stop, at which the tree search can be stopped.</listitem>
+<listitem>MaxIter : A scalar, specifying the maximum number of iterations that the solver should take.</listitem>
+<listitem>gradobj : A string, to turn on or off the user supplied objective gradient.</listitem>
+<listitem>hessian : A scalar, to turn on or off the user supplied objective hessian.</listitem>
+</itemizedlist>
+ The default values for the various items are given as:
+ </para>
+ <para>
+ options = list('integertolerance',1d-06,'maxnodes',2147483647,'cputime',1d10,'allowablegap',0,'maxiter',2147483647,'gradobj',"off",'hessian',"off")
+ </para>
+ <para>
+ </para>
+ <para>
+The exitflag allows to know the status of the optimization which is given back by Ipopt.
+<itemizedlist>
+<listitem>0 : Optimal Solution Found </listitem>
+<listitem>1 : InFeasible Solution.</listitem>
+<listitem>2 : Objective Function is Continuous Unbounded.</listitem>
+<listitem>3 : Limit Exceeded.</listitem>
+<listitem>4 : User Interrupt.</listitem>
+<listitem>5 : MINLP Error.</listitem>
+</itemizedlist>
+ </para>
+ <para>
+For more details on exitflag, see the Bonmin documentation which can be found on http://www.coin-or.org/Bonmin
+ </para>
+ <para>
+</para>
+</refsection>
+<para>
+A few examples displaying the various functionalities of intfmincon have been provided below. You will find a series of problems and the appropriate code snippets to solve them.
+ </para>
+<refsection>
+ <title>Example</title>
+ <para>
+ Here we solve a simple objective function, subjected to three linear inequality constraints.
+ </para>
+ <para>
+Find x in R^2 such that it minimizes:
+ </para>
+ <para>
+<latex>
+\begin{eqnarray}
+\mbox{min}_{x}\ f(x) = x_{1}^{2} - x_{1} \boldsymbol{\cdot} x_{2}/3 + x_{2}^{2}
+\end{eqnarray}
+\\\text{Subjected to:}\\
+\begin{eqnarray}
+\hspace{70pt} &amp;x_{1} + x_{2}&amp;\leq 2\\
+\hspace{70pt} &amp;x_{1} + \dfrac{x_{2}}{4}&amp;\leq 1\\
+\hspace{70pt} &amp;-x_{1} + x_{2}&amp;\geq -2\\
+\end{eqnarray}\\
+\text{With integer constraints as: } \\
+\begin{eqnarray}
+\begin{array}{c}
+[1] \\
+\end{array}
+\end{eqnarray}
+</latex>
+ </para>
+ <para>
+
+ </para>
+ <programlisting role="example"><![CDATA[
+//Example 1:
+//Objective function to be minimised
+function [y,dy]=f(x)
+y=-x(1)-x(2)/3;
+dy= [-1,-1/3];
+endfunction
+//Starting point
+x0=[0 , 0];
+//Integer constraints
+intcon = [1];
+//Initializing the linear inequality constraints
+A=[1,1 ; 1,1/4 ; 1,-1 ;];
+b=[2;1;2];
+//Calling Bonmin
+[x,fval,exitflag,grad,hessian] =intfmincon(f, x0,intcon,A,b)
+// Press ENTER to continue
+
+ ]]></programlisting>
+</refsection>
+
+<refsection>
+ <title>Example</title>
+ <para>
+Here we build up on the previous example by adding linear equality constraints.
+We add the following constraints to the problem specified above:
+</para>
+ <para>
+<latex>
+\begin{eqnarray}
+&amp;x_{1} - x_{2}&amp;= 1
+\\&amp;2x_{1} + x_{2}&amp;= 2
+\\\end{eqnarray}
+</latex>
+ </para>
+ <para>
+ </para>
+ <programlisting role="example"><![CDATA[
+//Example 2:
+//Objective function to be minimised
+function [y,dy]=f(x)
+y=-x(1)-x(2)/3;
+dy= [-1,-1/3];
+endfunction
+//Starting point
+x0=[0 , 0];
+//Integer constraints
+intcon = [1];
+//Initializing the linear inequality constraints
+A=[1,1 ; 1,1/4 ; 1,-1 ;];
+b=[2;1;2];
+//Linear equality constraints
+Aeq=[1,-1;2,1];
+beq=[1,2];
+//Calling Bonmin
+[x,fval,exitflag,grad,hessian] =intfmincon(f, x0,intcon,A,b,Aeq,beq)
+// Press ENTER to continue
+
+ ]]></programlisting>
+</refsection>
+
+<refsection>
+ <title>Example</title>
+ <para>
+In this example, we proceed to add the upper and lower bounds to the objective function.
+ </para>
+ <para>
+Find x in R^2 such that it minimizes:
+ </para>
+ <para>
+<latex>
+\begin{eqnarray}
+-1 &amp;\leq x_{1} &amp;\leq \infty\\
+-\infty &amp;\leq x_{2} &amp;\leq 1
+\end{eqnarray}
+</latex>
+ </para>
+ <para>
+
+ </para>
+ <programlisting role="example"><![CDATA[
+//Example 3:
+//Objective function to be minimised
+function [y,dy]=f(x)
+y=-x(1)-x(2)/3;
+dy= [-1,-1/3];
+endfunction
+//Starting point
+x0=[0 , 0];
+//Integer constraints
+intcon = [1];
+//Initializing the linear inequality constraints
+A=[1,1 ; 1,1/4 ; 1,-1 ;];
+b=[2;1;2];
+//Linear equality constraints
+Aeq=[1,-1;2,1];
+beq=[1,2];
+//Adding the variable bounds
+lb=[-1, -%inf];
+ub=[%inf, 1];
+//Calling Bonmin
+[x,fval,exitflag,grad,hessian] =intfmincon(f, x0,intcon,A,b,Aeq,beq,lb,ub)
+// Press ENTER to continue
+
+ ]]></programlisting>
+</refsection>
+
+<refsection>
+ <title>Example</title>
+ <para>
+ Finally, we add the non-linear constraints to the problem. Note that there is a notable difference in the way this is done as compared to defining the linear constraints.
+ </para>
+ <para>
+<latex>
+\begin{eqnarray}
+\mbox{min}_{x}\ f(x) = x_{1} \boldsymbol{\cdot} x_{2} + x_{2} \boldsymbol{\cdot} x_{3}
+\end{eqnarray}
+\\\text{Subjected to:}\\
+\begin{eqnarray}
+\hspace{70pt} &amp;x_{1}^{2} - x_{2}^{2} + x_{3}^{2}&amp;\leq 2\\
+\hspace{70pt} &amp;x_{1}^{2} + x_{2}^{2} + x_{3}^{2}&amp;\leq 10\\
+\end{eqnarray}\\
+\text{With integer constraints as: }\\
+\begin{eqnarray}
+\begin{array}{c}
+[2] \\
+\end{array}
+\end{eqnarray}
+</latex>
+ </para>
+ <para>
+ </para>
+ <programlisting role="example"><![CDATA[
+//Example 4:
+//Objective function to be minimised
+function [y,dy]=f(x)
+y=x(1)*x(2)+x(2)*x(3);
+dy= [x(2),x(1)+x(3),x(2)];
+endfunction
+//Starting point, linear constraints and variable bounds
+x0=[0.1 , 0.1 , 0.1];
+intcon = [2]
+A=[];
+b=[];
+Aeq=[];
+beq=[];
+lb=[];
+ub=[];
+//Nonlinear constraints
+function [c,ceq,cg,cgeq]=nlc(x)
+c = [x(1)^2 - x(2)^2 + x(3)^2 - 2 , x(1)^2 + x(2)^2 + x(3)^2 - 10];
+ceq = [];
+cg=[2*x(1) , -2*x(2) , 2*x(3) ; 2*x(1) , 2*x(2) , 2*x(3)];
+cgeq=[];
+endfunction
+//Options
+options=list("MaxIter", [1500], "CpuTime", [500], "GradObj", "on","GradCon", "on");
+//Calling Ipopt
+[x,fval,exitflag,output] =intfmincon(f, x0,intcon,A,b,Aeq,beq,lb,ub,nlc,options)
+// Press ENTER to continue
+
+ ]]></programlisting>
+</refsection>
+
+<refsection>
+ <title>Example</title>
+ <para>
+We can further enhance the functionality of intfmincon by setting input options. We can pre-define the gradient of the objective function and/or the hessian of the lagrange function and thereby improve the speed of computation. This is elaborated on in example 5. We take the following problem and add simple non-linear constraints, specify the gradients and the hessian of the Lagrange Function. We also set solver parameters using the options.
+ </para>
+ <para>
+ </para>
+ <programlisting role="example"><![CDATA[
+//Example 5:
+//Objective function to be minimised
+function [y,dy]=f(x)
+y=x(1)*x(2)+x(2)*x(3);
+dy= [x(2),x(1)+x(3),x(2)];
+endfunction
+//Starting point, linear constraints and variable bounds
+x0=[0.1 , 0.1 , 0.1];
+intcon = [2]
+A=[];
+b=[];
+Aeq=[];
+beq=[];
+lb=[];
+ub=[];
+//Nonlinear constraints
+function [c,ceq,cg,cgeq]=nlc(x)
+c = [x(1)^2 - x(2)^2 + x(3)^2 - 2 , x(1)^2 + x(2)^2 + x(3)^2 - 10];
+ceq = [];
+cg=[2*x(1) , -2*x(2) , 2*x(3) ; 2*x(1) , 2*x(2) , 2*x(3)];
+cgeq=[];
+endfunction
+//Options
+options=list("MaxIter", [1500], "CpuTime", [500], "GradObj", "on","GradCon", "on");
+//Calling Ipopt
+[x,fval,exitflag,output] =intfmincon(f, x0,intcon,A,b,Aeq,beq,lb,ub,nlc,options)
+// Press ENTER to continue
+
+ ]]></programlisting>
+</refsection>
+
+<refsection>
+ <title>Example</title>
+ <para>
+Infeasible Problems: Find x in R^3 such that it minimizes:
+ </para>
+ <para>
+<latex>
+\begin{eqnarray}
+f(x) = x_{1} \boldsymbol{\cdot} x_{2} + x_{2} \boldsymbol{\cdot} x_{3}
+\end{eqnarray}
+\\\text{Subjected to:}\\
+\begin{eqnarray}
+\hspace{70pt} &amp;x_{1}^{2} &amp;\leq 1\\
+\hspace{70pt} &amp;x_{1}^{2} + x_{2}^{2}&amp;\leq 1\\
+\hspace{70pt} &amp;x_{3}^{2}&amp;\leq 1\\
+\hspace{70pt} &amp;x_{1}^{3}&amp;\leq 0.5\\
+\hspace{70pt} &amp;x_{2}^{2} + x_{3}^{2}&amp;\leq 0.75\\
+\end{eqnarray}\\
+\text{With variable bounds as: }\\
+\begin{eqnarray}
+\hspace{70pt} 0 &amp;\leq x_{1} &amp;\leq 0.6\\
+\hspace{70pt} 0.2 &amp;\leq x_{2} &amp;\leq \infty\\
+\end{eqnarray}\\
+\text{With integer constraints as: } \\
+\begin{eqnarray}
+\begin{array}{c}
+[2] \\
+\end{array}
+\end{eqnarray}
+</latex>
+ </para>
+ <para>
+ </para>
+ <programlisting role="example"><![CDATA[
+//Example 6:
+//Objective function to be minimised
+function [y,dy]=f(x)
+y=x(1)*x(2)+x(2)*x(3);
+dy= [x(2),x(1)+x(3),x(2)];
+endfunction
+//Starting point, linear constraints and variable bounds
+x0=[1,1,1];
+intcon = [2]
+A=[];
+b=[];
+Aeq=[];
+beq=[];
+lb=[0 0.2,-%inf];
+ub=[0.6 %inf,1];
+//Nonlinear constraints
+function [c,ceq,cg,cgeq]=nlc(x)
+c=[x(1)^2-1,x(1)^2+x(2)^2-1,x(3)^2-1];
+ceq=[x(1)^3-0.5,x(2)^2+x(3)^2-0.75];
+cg = [2*x(1),0,0;2*x(1),2*x(2),0;0,0,2*x(3)];
+cgeq = [3*x(1)^2,0,0;0,2*x(2),2*x(3)];
+endfunction
+//Options
+options=list("MaxIter", [1500], "CpuTime", [500], "GradObj", "on","GradCon", "on");
+//Calling Bonmin
+[x,fval,exitflag,grad,hessian] =intfmincon(f, x0,intcon,A,b,Aeq,beq,lb,ub,nlc,options)
+// Press ENTER to continue
+ ]]></programlisting>
+</refsection>
+
+<refsection>
+ <title>Example</title>
+<para>
+Unbounded Problems: Find x in R^3 such that it minimizes:
+</para>
+ <para>
+<latex>
+\begin{eqnarray}
+\mbox{min}_{x}\ f(x) = x_{1}^{2} + x_{2}^{2} + x_{3}^{2}\\
+\end{eqnarray}\\
+\text{With variable bounds as: }\\
+\begin{eqnarray}
+-\infty &amp;\leq x_{1} &amp;\leq 0\\
+-\infty &amp;\leq x_{2} &amp;\leq 0\\
+-\infty &amp;\leq x_{3} &amp;\leq 0\\
+\end{eqnarray}\\
+\text{With integer constraints as: } \\
+\begin{eqnarray}
+\begin{array}{c}
+[3] \\
+\end{array}
+\end{eqnarray}
+</latex>
+ </para>
+ <para>
+ </para>
+ <programlisting role="example"><![CDATA[
+//Example 7:
+//The below problem is an unbounded problem:
+//Find x in R^3 such that it minimizes:
+//f(x)= -(x1^2 + x2^2 + x3^2)
+//x0=[0.1 , 0.1 , 0.1]
+// x1 <= 0
+// x2 <= 0
+// x3 <= 0
+//Objective function to be minimised
+function y=f(x)
+y=-(x(1)^2+x(2)^2+x(3)^2);
+endfunction
+//Starting point, linear constraints and variable bounds
+x0=[0.1 , 0.1 , 0.1];
+intcon = [3]
+A=[];
+b=[];
+Aeq=[];
+beq=[];
+lb=[];
+ub=[0,0,0];
+//Options
+options=list("MaxIter", [1500], "CpuTime", [500]);
+//Calling Bonmin
+[x,fval,exitflag,grad,hessian] =intfmincon(f, x0,intcon,A,b,Aeq,beq,lb,ub,[],options)
+// Press ENTER to continue
+
+ ]]></programlisting>
+</refsection>
+
+
+<refsection>
+ <title>Authors</title>
+ <simplelist type="vert">
+ <member>Harpreet Singh</member>
+ </simplelist>
+</refsection>
+</refentry>
diff --git a/help/en_US/intfminimax.xml b/help/en_US/intfminimax.xml
new file mode 100644
index 0000000..1630ea3
--- /dev/null
+++ b/help/en_US/intfminimax.xml
@@ -0,0 +1,511 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ *
+ * This help file was generated from intfminimax.sci using help_from_sci().
+ *
+ -->
+
+<refentry version="5.0-subset Scilab" xml:id="intfminimax" xml:lang="en"
+ xmlns="http://docbook.org/ns/docbook"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:ns3="http://www.w3.org/1999/xhtml"
+ xmlns:mml="http://www.w3.org/1998/Math/MathML"
+ xmlns:scilab="http://www.scilab.org"
+ xmlns:db="http://docbook.org/ns/docbook">
+
+ <refnamediv>
+ <refname>intfminimax</refname>
+ <refpurpose>Solves minimax constraint problem</refpurpose>
+ </refnamediv>
+
+
+<refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>
+ xopt = intfminimax(fun,x0,intcon)
+ xopt = intfminimax(fun,x0,intcon,A,b)
+ xopt = intfminimax(fun,x0,intcon,A,b,Aeq,beq)
+ xopt = intfminimax(fun,x0,intcon,A,b,Aeq,beq,lb,ub)
+ xopt = intfminimax(fun,x0,intcon,A,b,Aeq,beq,lb,ub,nonlinfun)
+ xopt = intfminimax(fun,x0,intcon,A,b,Aeq,beq,lb,ub,nonlinfun,options)
+ [xopt, fval] = intfminimax(.....)
+ [xopt, fval, maxfval]= intfminimax(.....)
+ [xopt, fval, maxfval, exitflag]= intfminimax(.....)
+
+ </synopsis>
+</refsynopsisdiv>
+
+<refsection>
+ <title>Input Parameters</title>
+ <variablelist>
+ <varlistentry><term>fun:</term>
+ <listitem><para> The function to be minimized. fun is a function that has a vector x as an input argument, and contains the objective functions evaluated at x.</para></listitem></varlistentry>
+ <varlistentry><term>x0 :</term>
+ <listitem><para> A vector of doubles, containing the starting values of variables of size (1 X n) or (n X 1) where 'n' is the number of Variables.</para></listitem></varlistentry>
+ <varlistentry><term>A :</term>
+ <listitem><para> A matrix of doubles, containing the coefficients of linear inequality constraints of size (m X n) where 'm' is the number of linear inequality constraints.</para></listitem></varlistentry>
+ <varlistentry><term>b :</term>
+ <listitem><para> A vector of doubles, related to 'A' and represents the linear coefficients in the linear inequality constraints of size (m X 1).</para></listitem></varlistentry>
+ <varlistentry><term>Aeq :</term>
+ <listitem><para> A matrix of doubles, containing the coefficients of linear equality constraints of size (m1 X n) where 'm1' is the number of linear equality constraints.</para></listitem></varlistentry>
+ <varlistentry><term>beq :</term>
+ <listitem><para> A vector of double, vector of doubles, related to 'Aeq' and represents the linear coefficients in the equality constraints of size (m1 X 1).</para></listitem></varlistentry>
+ <varlistentry><term>intcon :</term>
+ <listitem><para> A vector of integers, representing the variables that are constrained to be integers.</para></listitem></varlistentry>
+ <varlistentry><term>lb :</term>
+ <listitem><para> A vector of doubles, containing the lower bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables.</para></listitem></varlistentry>
+ <varlistentry><term>ub :</term>
+ <listitem><para> A vector of doubles, containing the upper bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables.</para></listitem></varlistentry>
+ <varlistentry><term>nonlinfun:</term>
+ <listitem><para> A function, representing the Non-linear Constraints functions(both Equality and Inequality) of the problem. It is declared in such a way that non-linear inequality constraints (c), and the non-linear equality constraints (ceq) are defined as separate single row vectors.</para></listitem></varlistentry>
+ <varlistentry><term>options :</term>
+ <listitem><para> A list, containing the option for user to specify. See below for details.</para></listitem></varlistentry>
+ </variablelist>
+</refsection>
+<refsection>
+<title> Outputs</title>
+ <variablelist>
+ <varlistentry><term>xopt :</term>
+ <listitem><para> A vector of doubles, containing the computed solution of the optimization problem.</para></listitem></varlistentry>
+ <varlistentry><term>fopt :</term>
+ <listitem><para> A vector of doubles, containing the values of the objective functions at the end of the optimization problem.</para></listitem></varlistentry>
+ <varlistentry><term>maxfval:</term>
+ <listitem><para> A double, representing the maximum value in the vector fval.</para></listitem></varlistentry>
+ <varlistentry><term>exitflag :</term>
+ <listitem><para> An integer, containing the flag which denotes the reason for termination of algorithm. See below for details.</para></listitem></varlistentry>
+ <varlistentry><term>output :</term>
+ <listitem><para> A structure, containing the information about the optimization. See below for details.</para></listitem></varlistentry>
+ <varlistentry><term>lambda :</term>
+ <listitem><para> A structure, containing the Lagrange multipliers of lower bound, upper bound and constraints at the optimized point. See below for details.</para></listitem></varlistentry>
+ </variablelist>
+</refsection>
+
+<refsection>
+ <title>Description</title>
+ <para>
+intfminimax minimizes the worst-case (largest) value of a set of multivariable functions, starting at an initial estimate. This is generally referred to as the minimax problem.
+ </para>
+ <para>
+<latex>
+\min_{x} \max_{i} F_{i}(x)\: \textrm{such that} \:\begin{cases}
+&amp; c(x) \leq 0 \\
+&amp; ceq(x) = 0 \\
+&amp; A.x \leq b \\
+&amp; Aeq.x = beq \\
+&amp; lb \leq x \leq ub
+&amp; x_i \in \!\, \mathbb{Z}, i \in \!\, I
+\end{cases}
+</latex>
+ </para>
+ <para>
+max-min problems can also be solved with intfminimax, using the identity
+ </para>
+ <para>
+<latex>
+\max_{x} \min_{i} F_{i}(x) = -\min_{x} \max_{i} \left( -F_{i}(x) \right)
+</latex>
+ </para>
+ <para>
+Currently, intfminimax calls intfmincon, which uses the bonmin algorithm, an optimization library in C++.
+ </para>
+
+<title>Options</title>
+ <para>
+The options allow the user to set various parameters of the Optimization problem. The syntax for the options is given by:
+ </para>
+ <para>
+options= list("IntegerTolerance", [---], "MaxNodes",[---], "MaxIter", [---], "AllowableGap",[---] "CpuTime", [---],"gradobj", "off", "hessian", "off" );
+<itemizedlist>
+<listitem>IntegerTolerance : A Scalar, a number with that value of an integer is considered integer.</listitem>
+<listitem>MaxNodes : A Scalar, containing the maximum number of nodes that the solver should search.</listitem>
+<listitem>CpuTime : A scalar, specifying the maximum amount of CPU Time in seconds that the solver should take.</listitem>
+<listitem>AllowableGap : A scalar, that specifies the gap between the computed solution and the the objective value of the best known solution stop, at which the tree search can be stopped.</listitem>
+<listitem>MaxIter : A scalar, specifying the maximum number of iterations that the solver should take.</listitem>
+<listitem>gradobj : A string, to turn on or off the user supplied objective gradient.</listitem>
+<listitem>hessian : A scalar, to turn on or off the user supplied objective hessian.</listitem>
+</itemizedlist>
+ The default values for the various items are given as:
+ </para>
+ <para>
+ options = list('integertolerance',1d-06,'maxnodes',2147483647,'cputime',1d10,'allowablegap',0,'maxiter',2147483647,'gradobj',"off",'hessian',"off")
+ </para>
+ <para>
+
+The objective function must have header :
+<programlisting>
+F = fun(x)
+</programlisting>
+where x is a n x 1 matrix of doubles and F is a m x 1 matrix of doubles where m is the total number of objective functions inside F.
+On input, the variable x contains the current point and, on output, the variable F must contain the objective function values.
+ </para>
+ <para>
+By default, the gradient options for intfminimax are turned off and and fmincon does the gradient opproximation of minmaxObjfun. In case the GradObj option is off and GradCon option is on, intfminimax approximates minmaxObjfun gradient using the numderivative toolbox.
+ </para>
+ <para>
+If we can provide exact gradients, we should do so since it improves the convergence speed of the optimization algorithm.
+ </para>
+ <para>
+ </para>
+ <para>
+The exitflag allows to know the status of the optimization which is given back by Bonmin.
+<itemizedlist>
+<listitem>0 : Optimal Solution Found </listitem>
+<listitem>1 : InFeasible Solution.</listitem>
+<listitem>2 : Objective Function is Continuous Unbounded.</listitem>
+<listitem>3 : Limit Exceeded.</listitem>
+<listitem>4 : User Interrupt.</listitem>
+<listitem>5 : MINLP Error.</listitem>
+</itemizedlist>
+ </para>
+ <para>
+For more details on exitflag, see the Bonmin documentation which can be found on http://www.coin-or.org/Bonmin
+ </para>
+ <para>
+</para>
+</refsection>
+<para>
+A few examples displaying the various functionalities of intfminimax have been provided below. You will find a series of problems and the appropriate code snippets to solve them.
+ </para>
+<refsection>
+ <title>Example</title>
+ Here we solve a simple objective function, subjected to no constraints.
+<para>
+<latex>
+\begin{eqnarray}
+\mbox\min_{x} \max_{i}\ f_{i}(x)\\
+\end{eqnarray}
+\\
+\begin{eqnarray}
+&amp;f_{1}(x) &amp;= 2 \boldsymbol{\cdot} x_{1}^{2} + x_{2}^{2} - 48x_{1} - 40x_{2} + 304\\
+&amp;f_{2}(x) &amp;= -x_{1}^{2} - 3x_{2}^{2}\\
+&amp;f_{3}(x) &amp;= x_{1} + 3x_{2} - 18\\
+&amp;f_{4}(x) &amp;= -x_{1} - x_{2}\\
+&amp;f_{5}(x) &amp;= x_{1} + x_{2} - 8
+\end{eqnarray}\\
+\text{With integer constraints as: } \\
+\begin{eqnarray}
+\begin{array}{cccccc}
+[1] \\
+\end{array}
+\end{eqnarray}
+</latex>
+ </para>
+ <para>
+
+ </para>
+ <programlisting role="example"><![CDATA[
+// Example 1:
+//Objective function
+function f = myfun(x)
+f(1)= 2*x(1)^2 + x(2)^2 - 48*x(1) - 40*x(2) + 304;
+f(2)= -x(1)^2 - 3*x(2)^2;
+f(3)= x(1) + 3*x(2) -18;
+f(4)= -x(1) - x(2);
+f(5)= x(1) + x(2) - 8;
+endfunction
+// The initial guess
+x0 = [0.1,0.1];
+// The expected solution : only 4 digits are guaranteed
+xopt = [4 4]
+fopt = [0 -64 -2 -8 0]
+intcon = [1]
+maxfopt = 0
+// Run intfminimax
+[x,fval,maxfval,exitflag] = intfminimax(myfun, x0,intcon)
+// Press ENTER to continue
+
+ ]]></programlisting>
+</refsection>
+
+<refsection>
+ <title>Example</title>
+ We proceed to add simple linear inequality constraints.
+
+<para>
+<latex>
+\begin{eqnarray}
+\hspace{70pt} &amp;x_{1} + x_{2}&amp;\leq 2\\
+\hspace{70pt} &amp;x_{1} + x_{2}/4&amp;\leq 1\\
+\hspace{70pt} &amp;-x_{1} + x_{2}&amp;\geq -1\\
+\end{eqnarray}
+</latex>
+ </para>
+ <para>
+
+ </para>
+ <programlisting role="example"><![CDATA[
+//Example 2:
+//Objective function
+function f = myfun(x)
+f(1)= 2*x(1)^2 + x(2)^2 - 48*x(1) - 40*x(2) + 304; //Objectives
+f(2)= -x(1)^2 - 3*x(2)^2;
+f(3)= x(1) + 3*x(2) -18;
+f(4)= -x(1) - x(2);
+f(5)= x(1) + x(2) - 8;
+endfunction
+// The initial guess
+x0 = [0.1,0.1];
+//Linear Inequality constraints
+A=[1,1 ; 1,1/4 ; 1,-1];
+b=[2;1;1];
+////Integer constraints
+intcon = [1];
+// Run intfminimax
+[x,fval,maxfval,exitflag,output,lambda] = intfminimax(myfun, intcon,x0,A,b)
+
+
+ ]]></programlisting>
+</refsection>
+
+<refsection>
+ <title>Example</title>
+Here we build up on the previous example by adding linear equality constraints.
+We add the following constraints to the problem specified above:
+<para>
+<latex>
+\begin{eqnarray}
+&amp;x_{1} - x_{2}&amp;= 1
+\\&amp;2x_{1} + x_{2}&amp;= 2
+\end{eqnarray}
+</latex>
+ </para>
+ <para>
+
+ </para>
+ <programlisting role="example"><![CDATA[
+//Example 3:
+//Objective function
+function f = myfun(x)
+f(1)= 2*x(1)^2 + x(2)^2 - 48*x(1) - 40*x(2) + 304; //Objectives
+f(2)= -x(1)^2 - 3*x(2)^2;
+f(3)= x(1) + 3*x(2) -18;
+f(4)= -x(1) - x(2);
+f(5)= x(1) + x(2) - 8;
+endfunction
+// The initial guess
+x0 = [0.1,0.1];
+//Linear Inequality constraints
+A=[1,1 ; 1,1/4 ; 1,-1];
+b=[2;1;1];
+//We specify the linear equality constraints below.
+Aeq = [1,-1; 2, 1];
+beq = [1;2];
+//Integer constraints
+intcon = [1];
+// Run intfminimax
+[x,fval,maxfval,exitflag,output,lambda] = intfminimax(myfun, intcon,x0,A,b,Aeq,beq)
+
+
+ ]]></programlisting>
+</refsection>
+
+<refsection>
+ <title>Example</title>
+In this example, we proceed to add the upper and lower bounds to the objective function.
+<para>
+<latex>
+\begin{eqnarray}
+-1 &amp;\leq x_{1} &amp;\leq \infty\\
+-\infty &amp;\leq x_{2} &amp;\leq 1
+\end{eqnarray}
+</latex>
+ </para>
+ <para>
+
+ </para>
+ <programlisting role="example"><![CDATA[
+//Example 4:
+//Objective function
+function f = myfun(x)
+f(1)= 2*x(1)^2 + x(2)^2 - 48*x(1) - 40*x(2) + 304; //Objectives
+f(2)= -x(1)^2 - 3*x(2)^2;
+f(3)= x(1) + 3*x(2) -18;
+f(4)= -x(1) - x(2);
+f(5)= x(1) + x(2) - 8;
+endfunction
+// The initial guess
+x0 = [0.1,0.1];
+//Linear Inequality constraints
+A=[1,1 ; 1,1/4 ; 1,-1];
+b=[2;1;1];
+//We specify the linear equality constraints below.
+Aeq = [1,-1; 2, 1];
+beq = [1;2];
+//The upper and lower bounds for the objective function are defined in simple vectors as shown below.
+lb = [-1;-%inf];
+ub = [%inf;1];
+//Integer constraints
+intcon = [1];
+// Run intfminimax
+[x,fval,maxfval,exitflag,output,lambda] = intfminimax(myfun, intcon,x0,A,b,Aeq,beq,lb,ub)
+
+
+ ]]></programlisting>
+</refsection>
+
+
+<refsection>
+ <title>Example</title>
+Finally, we add the non-linear constraints to the problem. Note that there is a notable difference in the way this is done as compared to defining the linear constraints.
+ <para>
+<latex>
+\begin{eqnarray}
+x_{1}^2-1&amp;\leq 0\\
+x_{1}^2+x_{2}^{2}-1&amp;\leq 0\\
+\end{eqnarray}
+</latex>
+</para>
+ <para>
+
+ </para>
+ <programlisting role="example"><![CDATA[
+//Example 5:
+//Objective function
+function f = myfun(x)
+f(1)= 2*x(1)^2 + x(2)^2 - 48*x(1) - 40*x(2) + 304; //Objectives
+f(2)= -x(1)^2 - 3*x(2)^2;
+f(3)= x(1) + 3*x(2) -18;
+f(4)= -x(1) - x(2);
+f(5)= x(1) + x(2) - 8;
+endfunction
+// The initial guess
+x0 = [0.1,0.1];
+//Linear Inequality constraints
+A=[1,1 ; 1,1/4 ; 1,-1];
+b=[2;1;1];
+//We specify the linear equality constraints below.
+Aeq = [1,-1; 2, 1];
+beq = [1;2];
+//The upper and lower bounds for the objective function are defined in simple vectors as shown below.
+lb = [-1;-%inf];
+ub = [%inf;1]; //
+//Nonlinear constraints are required to be defined as a single function with the inequality and equality constraints in separate vectors.
+function [c,ceq]=nlc(x)
+c=[x(1)^2-1,x(1)^2+x(2)^2-1];
+ceq=[];
+endfunction
+intcon = [1];
+// Run intfminimax
+[x,fval,maxfval,exitflag,output,lambda] = intfminimax(myfun, intcon,x0,A,b,Aeq,beq,lb,ub)
+
+
+ ]]></programlisting>
+</refsection>
+
+<refsection>
+ <title>Example</title>
+<para>
+We can further enhance the functionality of fminimax by setting input options. We can pre-define the gradient of the objective function and/or the hessian of the lagrange function and thereby improve the speed of computation. This is elaborated on in example 6. We take the following problem, specify the gradients, and the jacobian matrix of the constraints. We also set solver parameters using the options.
+</para>
+<para>
+<latex>
+\begin{eqnarray}
+1.5 + x_{1} \boldsymbol{\cdot} x_{2} - x_{1} - x_{2} &amp;\leq 0\\
+-x_{1}\boldsymbol{\cdot} x_{2} - 10 &amp;\leq 0
+\end{eqnarray}
+</latex>
+</para>
+ <para>
+
+ </para>
+ <programlisting role="example"><![CDATA[
+//Example 6: Using the available options
+function f = myfun(x)
+f(1)= 2*x(1)^2 + x(2)^2 - 48*x(1) - 40*x(2) + 304;
+f(2)= -x(1)^2 - 3*x(2)^2;
+f(3)= x(1) + 3*x(2) -18;
+f(4)= -x(1) - x(2);
+f(5)= x(1) + x(2) - 8;
+endfunction
+
+// Defining gradient of myfun
+function G = myfungrad(x)
+G = [ 4*x(1) - 48, -2*x(1), 1, -1, 1;
+2*x(2) - 40, -6*x(2), 3, -1, 1; ]'
+endfunction
+// The nonlinear constraints and the Jacobian
+// matrix of the constraints
+function [c,ceq] = confun(x)
+// Inequality constraints
+c = [1.5 + x(1)*x(2) - x(1) - x(2), -x(1)*x(2) - 10]
+// No nonlinear equality constraints
+ceq=[]
+endfunction
+// Defining gradient of confungrad
+function [DC,DCeq] = cgrad(x)
+// DC(:,i) = gradient of the i-th constraint
+// DC = [
+// Dc1/Dx1 Dc1/Dx2
+// Dc2/Dx1 Dc2/Dx2
+// ]
+DC= [
+x(2)-1, -x(2)
+x(1)-1, -x(1)
+]'
+DCeq = []'
+endfunction
+// Test with both gradient of objective and gradient of constraints
+Options = list("MaxIter", [3000], "CpuTime", [600],"GradObj",myfungrad,"GradCon",cgrad);
+// The initial guess
+x0 = [0,10];
+// The expected solution : only 4 digits are guaranteed
+xopt = [0.92791 7.93551]
+fopt = [6.73443 -189.778 6.73443 -8.86342 0.86342]
+maxfopt = 6.73443
+//integer constraints
+intcon = [1];
+// Run intfminimax
+[x,fval,maxfval,exitflag,output] = intfminimax(myfun,intcon,x0,[],[],[],[],[],[], confun, Options)
+ ]]></programlisting>
+</refsection>
+
+<refsection>
+ <title>Example</title>
+Infeasible Problems: Find x in R^2 such that it minimizes the objective function used above under the following constraints:
+<para>
+<latex>
+\begin{eqnarray}
+&amp;x_{1}/3 - 5x_{2}&amp;= 11
+\\&amp;2x_{1} + x_{2}&amp;= 8
+\\ \end{eqnarray}
+</latex>
+ </para>
+<para>
+</para>
+ <programlisting role="example"><![CDATA[
+//Example 7:
+//Objective function
+function f = myfun(x)
+f(1)= 2*x(1)^2 + x(2)^2 - 48*x(1) - 40*x(2) + 304; //Objectives
+f(2)= -x(1)^2 - 3*x(2)^2;
+f(3)= x(1) + 3*x(2) -18;
+f(4)= -x(1) - x(2);
+f(5)= x(1) + x(2) - 8;
+endfunction
+// The initial guess
+x0 = [0.1,0.1];
+//Linear Inequality constraints
+A=[1,1 ; 1,1/4 ; 1,-1];
+b=[2;1;1];
+//We specify the linear equality constraints below.
+Aeq = [1/3,-5; 2, 1];
+beq = [11;8];
+//integer constraints
+intcon = [1];
+// Run intfminimax
+[x,fval,maxfval,exitflag,output,lambda] = intfminimax(myfun,intcon, x0,A,b,Aeq,beq)
+
+
+ ]]></programlisting>
+</refsection>
+
+
+<refsection>
+ <title>Authors</title>
+ <simplelist type="vert">
+ <member>Harpreet Singh</member>
+ </simplelist>
+</refsection>
+</refentry>
diff --git a/help/en_US/intfminunc.xml b/help/en_US/intfminunc.xml
new file mode 100644
index 0000000..df2cdda
--- /dev/null
+++ b/help/en_US/intfminunc.xml
@@ -0,0 +1,242 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ *
+ * This help file was generated from intfminunc.sci using help_from_sci().
+ *
+ -->
+
+<refentry version="5.0-subset Scilab" xml:id="intfminunc" xml:lang="en"
+ xmlns="http://docbook.org/ns/docbook"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:ns3="http://www.w3.org/1999/xhtml"
+ xmlns:mml="http://www.w3.org/1998/Math/MathML"
+ xmlns:scilab="http://www.scilab.org"
+ xmlns:db="http://docbook.org/ns/docbook">
+
+ <refnamediv>
+ <refname>intfminunc</refname>
+ <refpurpose>Solves an unconstrainted multi-variable mixed integer non linear programming optimization problem</refpurpose>
+ </refnamediv>
+
+
+<refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>
+ xopt = intfminunc(f,x0)
+ xopt = intfminunc(f,x0,intcon)
+ xopt = intfminunc(f,x0,intcon,options)
+ [xopt,fopt] = intfminunc(.....)
+ [xopt,fopt,exitflag]= intfminunc(.....)
+ [xopt,fopt,exitflag,gradient,hessian]= intfminunc(.....)
+
+ </synopsis>
+</refsynopsisdiv>
+
+<refsection>
+ <title>Input Parameters</title>
+ <variablelist>
+ <varlistentry><term>f :</term>
+ <listitem><para> A function, representing the objective function of the problem.</para></listitem></varlistentry>
+ <varlistentry><term>x0 :</term>
+ <listitem><para> A vector of doubles, containing the starting values of variables of size (1 X n) or (n X 1) where 'n' is the number of Variables.</para></listitem></varlistentry>
+ <varlistentry><term>intcon :</term>
+ <listitem><para> A vector of integers, representing the variables that are constrained to be integers.</para></listitem></varlistentry>
+ <varlistentry><term>options :</term>
+ <listitem><para> A list, containing the option for user to specify. See below for details.</para></listitem></varlistentry>
+ </variablelist>
+</refsection>
+<refsection>
+<title> Outputs</title>
+ <variablelist>
+ <varlistentry><term>xopt :</term>
+ <listitem><para> A vector of doubles, containing the computed solution of the optimization problem.</para></listitem></varlistentry>
+ <varlistentry><term>fopt :</term>
+ <listitem><para> A double, containing the the function value at x.</para></listitem></varlistentry>
+ <varlistentry><term>exitflag :</term>
+ <listitem><para> An integer, containing the flag which denotes the reason for termination of algorithm. See below for details.</para></listitem></varlistentry>
+ <varlistentry><term>gradient :</term>
+ <listitem><para> A vector of doubles, containing the objective's gradient of the solution.</para></listitem></varlistentry>
+ <varlistentry><term>hessian :</term>
+ <listitem><para> A matrix of doubles, containing the Lagrangian's hessian of the solution.</para></listitem></varlistentry>
+ </variablelist>
+</refsection>
+
+<refsection>
+ <title>Description</title>
+ <para>
+Search the minimum of a multi-variable mixed integer non linear programming unconstrained optimization problem specified by :
+Find the minimum of f(x) such that
+ </para>
+ <para>
+<latex>
+\begin{eqnarray}
+&amp;\mbox{min}_{x}
+&amp; f(x)
+&amp; x_{i} \in \!\, \mathbb{Z}, i \in \!\, I
+\end{eqnarray}
+</latex>
+ </para>
+ <para>
+intfminunc calls Bonmin, which is an optimization library written in C++, to solve the bound optimization problem.
+ </para>
+ <para>
+<title>Options</title>
+The options allow the user to set various parameters of the Optimization problem. The syntax for the options is given by:
+ </para>
+ <para>
+options= list("IntegerTolerance", [---], "MaxNodes",[---], "MaxIter", [---], "AllowableGap",[---] "CpuTime", [---],"gradobj", "off", "hessian", "off" );
+<itemizedlist>
+<listitem>IntegerTolerance : A Scalar, a number with that value of an integer is considered integer.</listitem>
+<listitem>MaxNodes : A Scalar, containing the maximum number of nodes that the solver should search.</listitem>
+<listitem>CpuTime : A scalar, specifying the maximum amount of CPU Time in seconds that the solver should take.</listitem>
+<listitem>AllowableGap : A scalar, that specifies the gap between the computed solution and the the objective value of the best known solution stop, at which the tree search can be stopped.</listitem>
+<listitem>MaxIter : A scalar, specifying the maximum number of iterations that the solver should take.</listitem>
+<listitem>gradobj : A string, to turn on or off the user supplied objective gradient.</listitem>
+<listitem>hessian : A scalar, to turn on or off the user supplied objective hessian.</listitem>
+</itemizedlist>
+ The default values for the various items are given as:
+ </para>
+ <para>
+ options = list('integertolerance',1d-06,'maxnodes',2147483647,'cputime',1d10,'allowablegap',0,'maxiter',2147483647,'gradobj',"off",'hessian',"off")
+ </para>
+ <para>
+ </para>
+ <para>
+The exitflag allows to know the status of the optimization which is given back by Ipopt.
+<itemizedlist>
+<listitem>0 : Optimal Solution Found </listitem>
+<listitem>1 : InFeasible Solution.</listitem>
+<listitem>2 : Objective Function is Continuous Unbounded.</listitem>
+<listitem>3 : Limit Exceeded.</listitem>
+<listitem>4 : User Interrupt.</listitem>
+<listitem>5 : MINLP Error.</listitem>
+</itemizedlist>
+ </para>
+ <para>
+For more details on exitflag, see the Bonmin documentation which can be found on http://www.coin-or.org/Bonmin
+ </para>
+ <para>
+</para>
+</refsection>
+<para>
+A few examples displaying the various functionalities of intfminunc have been provided below. You will find a series of problems and the appropriate code snippets to solve them.
+ </para>
+
+<refsection>
+ <title>Example</title>
+<para>
+We begin with the minimization of a simple non-linear function.
+</para>
+ <para>
+Find x in R^2 such that it minimizes:
+ </para>
+ <para>
+<latex>
+\begin{eqnarray}
+\mbox{min}_{x}\ f(x) = x_{1}^{2} + x_{2}^{2}
+\end{eqnarray}\\
+\text{With integer constraints as: } \\
+\begin{eqnarray}
+\begin{array}{c}
+[1] \\
+\end{array}
+\end{eqnarray}
+</latex>
+ </para>
+ <para>
+ </para>
+ <programlisting role="example"><![CDATA[
+//Example 1:
+//Objective function to be minimised
+function y= f(x)
+y= x(1)^2 + x(2)^2;
+endfunction
+//Starting point
+x0=[2,1];
+intcon = [1];
+[xopt,fopt]=intfminunc(f,x0,intcon)
+// Press ENTER to continue
+
+ ]]></programlisting>
+</refsection>
+
+<refsection>
+ <title>Example</title>
+ <para>
+We now look at the Rosenbrock function, a non-convex performance test problem for optimization routines. We use this example to illustrate how we can enhance the functionality of intfminunc by setting input options. We can pre-define the gradient of the objective function and/or the hessian of the lagrange function and thereby improve the speed of computation. This is elaborated on in example 2. We also set solver parameters using the options.
+</para>
+ <para>
+<latex>
+\begin{eqnarray}
+\mbox{min}_{x}\ f(x) = 100\boldsymbol{\cdot} (x_{2} - x_{1}^{2})^{2} + (1-x_{1})^{2}
+\end{eqnarray}\\
+\text{With integer constraints as: } \\
+\begin{eqnarray}
+\begin{array}{c}
+[2] \\
+\end{array}
+\end{eqnarray}
+</latex>
+ </para>
+ <para>
+ </para>
+ <programlisting role="example"><![CDATA[
+///Example 2:
+//Objective function to be minimised
+function y= f(x)
+y= 100*(x(2) - x(1)^2)^2 + (1-x(1))^2;
+endfunction
+//Starting point
+x0=[-1,2];
+intcon = [2]
+//Options
+options=list("MaxIter", [1500], "CpuTime", [500]);
+//Calling
+[xopt,fopt,exitflag,gradient,hessian]=intfminunc(f,x0,intcon,options)
+// Press ENTER to continue
+
+ ]]></programlisting>
+</refsection>
+
+
+
+<refsection>
+ <title>Example</title>
+ <para>
+Unbounded Problems: Find x in R^2 such that it minimizes:
+</para>
+ <para>
+<latex>
+\begin{eqnarray}
+f(x) = -x_{1}^{2} - x_{2}^{2}
+\end{eqnarray}\\
+\text{With integer constraints as: } \\
+\begin{eqnarray}
+\begin{array}{c}
+[1] \\
+\end{array}
+\end{eqnarray}
+</latex>
+ </para>
+ <para>
+ </para>
+ <programlisting role="example"><![CDATA[
+//The below problem is an unbounded problem:
+//Find x in R^2 such that the below function is minimum
+//f = - x1^2 - x2^2
+//Objective function to be minimised
+function [y,g,h] = f(x)
+y = -x(1)^2 - x(2)^2;
+g = [-2*x(1),-2*x(2)];
+h = [-2,0;0,-2];
+endfunction
+//Starting point
+x0=[2,1];
+intcon = [1]
+options = list("gradobj","ON","hessian","on");
+[xopt,fopt,exitflag,gradient,hessian]=intfminunc(f,x0,intcon,options)
+ ]]></programlisting>
+</refsection>
+</refentry>
diff --git a/help/en_US/intqpipopt.xml b/help/en_US/intqpipopt.xml
new file mode 100644
index 0000000..2859568
--- /dev/null
+++ b/help/en_US/intqpipopt.xml
@@ -0,0 +1,403 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ *
+ * This help file was generated from intqpipopt.sci using help_from_sci().
+ *
+ -->
+
+<refentry version="5.0-subset Scilab" xml:id="intqpipopt" xml:lang="en"
+ xmlns="http://docbook.org/ns/docbook"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:ns3="http://www.w3.org/1999/xhtml"
+ xmlns:mml="http://www.w3.org/1998/Math/MathML"
+ xmlns:scilab="http://www.scilab.org"
+ xmlns:db="http://docbook.org/ns/docbook">
+
+ <refnamediv>
+ <refname>intqpipopt</refname>
+ <refpurpose>Solves a linear quadratic problem.</refpurpose>
+ </refnamediv>
+
+
+<refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>
+ xopt = intqpipopt(H,f)
+ xopt = intqpipopt(H,f,intcon)
+ xopt = intqpipopt(H,f,intcon,A,b)
+ xopt = intqpipopt(H,f,intcon,A,b,Aeq,beq)
+ xopt = intqpipopt(H,f,intcon,A,b,Aeq,beq,lb,ub)
+ xopt = intqpipopt(H,f,intcon,A,b,Aeq,beq,lb,ub,x0)
+ xopt = intqpipopt(H,f,intcon,A,b,Aeq,beq,lb,ub,x0,options)
+ xopt = intqpipopt(H,f,intcon,A,b,Aeq,beq,lb,ub,x0,options,"file_path")
+ [xopt,fopt,exitflag,output] = intqpipopt( ... )
+
+ </synopsis>
+</refsynopsisdiv>
+
+<refsection>
+ <title>Input Parameters</title>
+ <variablelist>
+ <varlistentry><term>H :</term>
+ <listitem><para> A symmetric matrix of doubles, representing the Hessian of the quadratic problem.</para></listitem></varlistentry>
+ <varlistentry><term>f :</term>
+ <listitem><para> A vector of doubles, representing coefficients of the linear terms in the quadratic problem.</para></listitem></varlistentry>
+ <varlistentry><term>intcon :</term>
+ <listitem><para> A vector of integers, representing the variables that are constrained to be integers.</para></listitem></varlistentry>
+ <varlistentry><term>A :</term>
+ <listitem><para> A matrix of doubles, containing the coefficients of linear inequality constraints of size (m X n) where 'm' is the number of linear inequality constraints.</para></listitem></varlistentry>
+ <varlistentry><term>b :</term>
+ <listitem><para> A vector of doubles, related to 'A' and represents the linear coefficients in the linear inequality constraints of size (m X 1).</para></listitem></varlistentry>
+ <varlistentry><term>Aeq :</term>
+ <listitem><para> A matrix of doubles, containing the coefficients of linear equality constraints of size (m1 X n) where 'm1' is the number of linear equality constraints.</para></listitem></varlistentry>
+ <varlistentry><term>beq :</term>
+ <listitem><para> A vector of double, vector of doubles, related to 'Aeq' and represents the linear coefficients in the equality constraints of size (m1 X 1).</para></listitem></varlistentry>
+ <varlistentry><term>lb :</term>
+ <listitem><para> A vector of doubles, containing the lower bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables.</para></listitem></varlistentry>
+ <varlistentry><term>ub :</term>
+ <listitem><para> A vector of doubles, containing the upper bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables.</para></listitem></varlistentry>
+ <varlistentry><term>x0 :</term>
+ <listitem><para> A vector of doubles, containing the starting values of variables of size (1 X n) or (n X 1) where 'n' is the number of variables.</para></listitem></varlistentry>
+ <varlistentry><term>options :</term>
+ <listitem><para> A list, containing the option for user to specify. See below for details.</para></listitem></varlistentry>
+ <varlistentry><term>file_path :</term>
+ <listitem><para> path to bonmin opt file if used.</para></listitem></varlistentry>
+</variablelist>
+</refsection>
+<refsection>
+<title> Outputs</title>
+ <variablelist>
+ <varlistentry><term>xopt :</term>
+ <listitem><para> A vector of doubles, containing the computed solution of the optimization problem.</para></listitem></varlistentry>
+ <varlistentry><term>fopt :</term>
+ <listitem><para> A double, containing the value of the function at xopt.</para></listitem></varlistentry>
+ <varlistentry><term>exitflag :</term>
+ <listitem><para> An integer, containing the flag which denotes the reason for termination of algorithm. See below for details.</para></listitem></varlistentry>
+ <varlistentry><term>output :</term>
+ <listitem><para> A structure, containing the information about the optimization. See below for details.</para></listitem></varlistentry>
+</variablelist>
+</refsection>
+
+<refsection>
+ <title>Description</title>
+ <para>
+Search the minimum of a constrained linear quadratic optimization problem specified by :
+ </para>
+ <para>
+<latex>
+\begin{eqnarray}
+&amp;\mbox{min}_{x}
+&amp; 1/2⋅x^T⋅H⋅x + f^T⋅x \\
+&amp; \text{subject to} &amp; A⋅x \leq b \\
+&amp; &amp; Aeq⋅x = beq \\
+&amp; &amp; lb \leq x \leq ub \\
+&amp; &amp; x_i \in \!\, \mathbb{Z}, i \in \!\, intcon\\
+\end{eqnarray}
+</latex>
+ </para>
+ <para>
+intqpipopt calls Bonmin, a library written in C++ to solve the quadratic problem.
+ </para>
+ <para>
+The exitflag allows to know the status of the optimization which is given back by Ipopt.
+<itemizedlist>
+<listitem>0 : Optimal Solution Found </listitem>
+<listitem>1 : InFeasible Solution.</listitem>
+<listitem>2 : Objective Function is Continuous Unbounded.</listitem>
+<listitem>3 : Limit Exceeded.</listitem>
+<listitem>4 : User Interrupt.</listitem>
+<listitem>5 : MINLP Error.</listitem>
+</itemizedlist>
+ </para>
+ <para>
+For more details on exitflag, see the Bonmin documentation which can be found on http://www.coin-or.org/Bonmin
+ </para>
+ <para>
+</para>
+ <para>
+The output data structure contains detailed information about the optimization process.
+It is of type "struct" and contains the following fields.
+<itemizedlist>
+<listitem>output.constrviolation: The max-norm of the constraint violation.</listitem>
+</itemizedlist>
+ </para>
+ <para>
+</para>
+</refsection>
+<para>
+A few examples displaying the various functionalities of intqpipopt have been provided below. You will find a series of problems and the appropriate code snippets to solve them.
+ </para>
+<refsection>
+ <title>Example</title>
+ <para>
+ Here we solve a simple objective function.
+ </para>
+ <para>
+Find x in R^6 such that it minimizes:
+ </para>
+ <para>
+<latex>
+\begin{eqnarray}
+\mbox{min}_{x}\ f(x) &amp;= \dfrac{1}{2}x'\boldsymbol{\cdot} H\boldsymbol{\cdot}x + f' \boldsymbol{\cdot} x\\
+\text{Where: } H &amp;= I_{6}\\
+F &amp;=
+\begin{array}{cccccc}
+[1 &amp; 2 &amp; 3 &amp; 4 &amp; 5 &amp; 6]
+\end{array}
+\end{eqnarray}\\
+\text{With integer constraints as: } \\
+\begin{eqnarray}
+\begin{array}{c}
+[2 &amp; 4] \\
+\end{array}
+\end{eqnarray}
+</latex>
+ </para>
+ <para>
+
+ </para>
+ <programlisting role="example"><![CDATA[
+//Example 1:
+//Minimize 0.5*x'*H*x + f'*x with
+f=[1; 2; 3; 4; 5; 6]; H=eye(6,6);
+//Integer Constraints
+intcon = [2 ,4];
+//Running intqpipopt
+[xopt,fopt,exitflag,output,lambda]=qpipoptmat(H,f)
+ ]]></programlisting>
+</refsection>
+
+<refsection>
+ <title>Example</title>
+ We proceed to add simple linear inequality constraints.
+
+<para>
+<latex>
+\begin{eqnarray}
+\&amp;x_{2} + x_{4}+ 2x_{5} - x_{6}&amp;\leq -1\\
+\&amp;-x_{1} + 2x_{3} + x_{4} + x_{5}&amp;\leq 2.5\\
+\end{eqnarray}
+</latex>
+ </para>
+ <para>
+
+ </para>
+ <programlisting role="example"><![CDATA[
+//Example 2:
+f=[1; 2; 3; 4; 5; 6]; H=eye(6,6);
+//Inequality constraints
+A= [0,1,0,1,2,-1;
+-1,0,2,1,1,0];
+b = [-1; 2.5];
+//Integer Constraints
+intcon = [2 ,4];
+//Running intqpipopt
+[xopt,fopt,exitflag,output,lambda]=intqpipopt(H,f,intcon,A,b)
+ ]]></programlisting>
+</refsection>
+
+<refsection>
+ <title>Example</title>
+ Here we build up on the previous example by adding linear equality constraints.
+We add the following constraints to the problem specified above:
+<para>
+<latex>
+\begin{eqnarray}
+&amp;x_{1} - x_{2} + x_{3} + 3x_{5} + x_{6}&amp;= 1 \\
+&amp;-x_{1} + 2x_{3}+ x_{4} + x_{5}&amp;= 2\\
+&amp;2x_{1} + 5x_{2}+ 3x_{3} + x_{5}&amp;= 3
+\end{eqnarray}
+</latex>
+ </para>
+ <para>
+
+ </para>
+ <programlisting role="example"><![CDATA[
+//Example 3:
+//Minimize 0.5*x'*H*x + f'*x with
+f=[1; 2; 3; 4; 5; 6]; H=eye(6,6);
+//Inequality constraints
+A= [0,1,0,1,2,-1;
+-1,0,2,1,1,0];
+b = [-1; 2.5];
+//Equality constraints
+Aeq= [1,-1,1,0,3,1;
+-1,0,-3,-4,5,6;
+2,5,3,0,1,0];
+beq=[1; 2; 3];
+//Integer Constraints
+intcon = [2 ,4];
+//Running intqpipopt
+[xopt,fopt,exitflag,output,lambda]=intqpipopt(H,f,intcon,A,b,Aeq,beq)
+ ]]></programlisting>
+</refsection>
+
+<refsection>
+<title>Example</title>
+<para>
+ In this example, we proceed to add the upper and lower bounds to the objective function.
+</para>
+<para>
+<latex>
+\begin{eqnarray}
+-1000 &amp;\leq x_{1} &amp;\leq 10000\\
+-10000 &amp;\leq x_{2} &amp;\leq 100\\
+0 &amp;\leq x_{3} &amp;\leq 1.5\\
+-1000 &amp;\leq x_{4} &amp;\leq 100\\
+-1000 &amp;\leq x_{5} &amp;\leq 100\\
+-1000 &amp;\leq x_{6} &amp;\leq 1000
+\end{eqnarray}
+</latex>
+ </para>
+ <para>
+
+ </para>
+ <programlisting role="example"><![CDATA[
+//Example 4:
+//Minimize 0.5*x'*H*x + f'*x with
+f=[1; 2; 3; 4; 5; 6]; H=eye(6,6);
+//Inequality constraints
+A= [0,1,0,1,2,-1;
+-1,0,2,1,1,0];
+b = [-1; 2.5];
+//Equality constraints
+Aeq= [1,-1,1,0,3,1;
+-1,0,-3,-4,5,6;
+2,5,3,0,1,0];
+beq=[1; 2; 3];
+//Variable bounds
+lb=[-1000; -10000; 0; -1000; -1000; -1000];
+ub=[10000; 100; 1.5; 100; 100; 1000];
+//Integer Constraints
+intcon = [2 ,4];
+//Running intqpipopt
+[xopt,fopt,exitflag,output,lambda]=intqpipopt(H,f,intcon,A,b,Aeq,beq,lb,ub)
+ ]]></programlisting>
+</refsection>
+
+<refsection>
+ <title>Example</title>
+<para>
+In this example, we initialize the values of x to speed up the computation. We further enhance the functionality of qpipoptmat by setting input options.
+</para>
+ <programlisting role="example"><![CDATA[
+//Example 5:
+//Minimize 0.5*x'*H*x + f'*x with
+f=[1; 2; 3; 4; 5; 6]; H=eye(6,6);
+//Inequality constraints
+A= [0,1,0,1,2,-1;
+-1,0,2,1,1,0];
+b = [-1; 2.5];
+//Equality constraints
+Aeq= [1,-1,1,0,3,1;
+-1,0,-3,-4,5,6;
+2,5,3,0,1,0];
+beq=[1; 2; 3];
+//Variable bounds
+lb=[-1000; -10000; 0; -1000; -1000; -1000];
+ub=[10000; 100; 1.5; 100; 100; 1000];
+//Initial guess and options
+x0 = repmat(0,6,1);
+options = list("MaxIter", 300, "CpuTime", 100);
+//Integer Constraints
+intcon = [2 ,4];
+//Running intqpipopt
+[xopt,fopt,exitflag,output,lambda]=intqpipopt(H,f,intcon,A,b,Aeq,beq,lb,ub,x0,options)
+ ]]></programlisting>
+</refsection>
+
+<refsection>
+<title>Example</title>
+Infeasible Problems: Find x in R^6 such that it minimizes the objective function used above under the following constraints:
+<para>
+<latex>
+\begin{eqnarray}
+begin{eqnarray}
+\hspace{70pt} &amp;x_{2} + x_{4}+ 2x_{5} - x_{6}&amp;\leq -1\\
+\hspace{70pt} &amp;-x_{1} + 2x_{3} + x_{4} + x_{5}&amp;\leq 2.5\\
+\hspace{70pt} &amp;x_{2} + x_{4}+ 2x_{5} - x_{6}&amp;= 4 \\
+\hspace{70pt} &amp;-x_{1} + 2x_{3}+ x_{4} + x_{5}&amp;= 2\\
+\\ \end{eqnarray}\\
+\text{With integer constraints as: } \\
+\begin{eqnarray}
+\begin{array}{c}
+[2 &amp; 4] \\
+\end{array}
+\end{eqnarray}
+</latex>
+ </para>
+<para>
+</para>
+<programlisting role="example"><![CDATA[
+//Example 6:
+//Minimize 0.5*x'*H*x + f'*x with
+f=[1; 2; 3; 4; 5; 6]; H=eye(6,6);
+f=[1; 2; 3; 4; 5; 6]; H=eye(6,6);
+//Inequality constraints
+A= [0,1,0,1,2,-1;
+-1,0,2,1,1,0];
+b = [-1; 2.5];
+//Equality constraints
+Aeq= [0,1,0,1,2,-1;
+-1,0,-3,-4,5,6];
+beq=[4; 2];
+//Integer Constraints
+intcon = [2 ,4];
+//Running intqpipopt
+[xopt,fopt,exitflag,output,lambda]=intqpipopt(H,f,intcon,A,b,Aeq,beq)
+]]></programlisting>
+</refsection>
+
+<refsection>
+ <title>Example</title>
+<para>
+Unbounded Problems: Find x in R^6 such that it minimizes the objective function used above under the following constraints:
+</para>
+<para>
+<latex>
+\begin{eqnarray}
+\mbox{min}_{x}\ f(x) &amp;= \dfrac{1}{2}x'\boldsymbol{\cdot} H\boldsymbol{\cdot}x + f' \boldsymbol{\cdot} x\\
+\text{Where H is specified below and} \\
+F &amp;=
+\begin{array}{cccccc}
+[1 &amp; 2 &amp; 3 &amp; 4 &amp; 5 &amp; 6]
+\end{array}
+\end{eqnarray}\\
+\text{Subjected to: }\\
+\begin{eqnarray}
+\hspace{70pt} &amp;x_{2} + x_{4}+ 2x_{5} - x_{6}&amp;\leq -1\\
+\hspace{70pt} &amp;-x_{1} + 2x_{3} + x_{4} + x_{5}&amp;\leq 2.5\\
+\hspace{70pt} &amp;x_{1} - x_{2} + x_{3} + 3x_{5} + x_{6}&amp;= 1 \\
+\hspace{70pt} &amp;-x_{1} + 2x_{3}+ x_{4} + x_{5}&amp;= 2\\
+\\ \end{eqnarray}
+</latex>
+ </para>
+<para>
+</para>
+ <programlisting role="example"><![CDATA[
+//Example 7:
+//Minimize 0.5*x'*H*x + f'*x with
+f=[1; 2; 3; 4; 5; 6]; H=eye(6,6); H(1,1) = -1;
+//Inequality constraints
+A= [0,1,0,1,2,-1;
+-1,0,2,1,1,0];
+b = [-1; 2.5];
+//Equality constraints
+Aeq= [1,-1,1,0,3,1;
+-1,0,-3,-4,5,6];
+beq=[1; 2];
+intcon = [2 ,4];
+//Running intqpipopt
+[xopt,fopt,exitflag,output,lambda]=intqpipopt(H,f,intcon,A,b,Aeq,beq)
+]]></programlisting>
+</refsection>
+
+<refsection>
+ <title>Authors</title>
+ <simplelist type="vert">
+ <member>Akshay Miterani and Pranav Deshpande</member>
+ </simplelist>
+</refsection>
+</refentry>
diff --git a/help/en_US/linprog.xml b/help/en_US/linprog.xml
index c293b7e..88fe15a 100644
--- a/help/en_US/linprog.xml
+++ b/help/en_US/linprog.xml
@@ -35,92 +35,112 @@
</synopsis>
</refsynopsisdiv>
-<refsection>
- <title>Parameters</title>
+ <refsection>
+ <title>Input Parameters</title>
<variablelist>
<varlistentry><term>c :</term>
- <listitem><para> a vector of double, contains coefficients of the variables in the objective</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, containing the coefficients of the variables in the objective function.</para></listitem></varlistentry>
<varlistentry><term>A :</term>
- <listitem><para> a matrix of double, represents the linear coefficients in the inequality constraints A⋅x ≤ b.</para></listitem></varlistentry>
+ <listitem><para> A matrix of doubles, containing the coefficients of linear inequality constraints of size (m X n) where 'm' is the number of linear inequality constraints.</para></listitem></varlistentry>
<varlistentry><term>b :</term>
- <listitem><para> a vector of double, represents the linear coefficients in the inequality constraints A⋅x ≤ b.</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, related to 'A' and containing the the Right hand side equation of the linear inequality constraints of size (m X 1).</para></listitem></varlistentry>
<varlistentry><term>Aeq :</term>
- <listitem><para> a matrix of double, represents the linear coefficients in the equality constraints Aeq⋅x = beq.</para></listitem></varlistentry>
+ <listitem><para> A matrix of doubles, containing the coefficients of linear equality constraints of size (m1 X n) where 'm1' is the number of linear equality constraints.</para></listitem></varlistentry>
<varlistentry><term>beq :</term>
- <listitem><para> a vector of double, represents the linear coefficients in the equality constraints Aeq⋅x = beq.</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, related to 'Aeq' and containing the the Right hand side equation of the linear equality constraints of size (m1 X 1).</para></listitem></varlistentry>
<varlistentry><term>lb :</term>
- <listitem><para> Lower bounds, specified as a vector or array of double. lb represents the lower bounds elementwise in lb ≤ x ≤ ub.</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, containing the lower bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables.</para></listitem></varlistentry>
<varlistentry><term>ub :</term>
- <listitem><para> Upper bounds, specified as a vector or array of double. ub represents the upper bounds elementwise in lb ≤ x ≤ ub.</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, containing the upper bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables.</para></listitem></varlistentry>
<varlistentry><term>options :</term>
- <listitem><para> a list containing the parameters to be set.</para></listitem></varlistentry>
+ <listitem><para> A list, containing the option for user to specify. See below for details.</para></listitem></varlistentry>
<varlistentry><term>file :</term>
- <listitem><para> a string describing the path to the mps file.</para></listitem></varlistentry>
+ <listitem><para> A string describing the path to the mps file.</para></listitem></varlistentry>
+ </variablelist>
+</refsection>
+<refsection>
+<title> Outputs</title>
+ <variablelist>
<varlistentry><term>xopt :</term>
- <listitem><para> a vector of double, the computed solution of the optimization problem.</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, containing the computed solution of the optimization problem.</para></listitem></varlistentry>
<varlistentry><term>fopt :</term>
- <listitem><para> a double, the value of the function at x.</para></listitem></varlistentry>
- <varlistentry><term>status :</term>
- <listitem><para> status flag returned from symphony. See below for details.</para></listitem></varlistentry>
+ <listitem><para> A double, containing the the function value at x.</para></listitem></varlistentry>
+ <varlistentry><term>exitflaf :</term>
+ <listitem><para> An integer, containing the flag which denotes the reason for termination of algorithm. See below for details.</para></listitem></varlistentry>
<varlistentry><term>output :</term>
- <listitem><para> The output data structure contains detailed information about the optimization process. See below for details.</para></listitem></varlistentry>
+ <listitem><para> A structure, containing the information about the optimization. See below for details.</para></listitem></varlistentry>
<varlistentry><term>lambda :</term>
- <listitem><para> The structure consist of the Lagrange multipliers at the solution of problem. See below for details.</para></listitem></varlistentry>
+ <listitem><para> A structure, containing the Lagrange multipliers of lower bound, upper bound and constraints at the optimized point. See below for details.</para></listitem></varlistentry>
</variablelist>
</refsection>
+
+
<refsection>
<title>Description</title>
<para>
-OSI-CLP is used for solving the linear programming problems, OSI-CLP is a library written in C++.
Search the minimum of a constrained linear programming problem specified by :
</para>
<para>
<latex>
\begin{eqnarray}
-&amp;\mbox{min}_{x}
-&amp; c^T⋅x \\
-&amp; \text{subject to} &amp; A⋅x \leq b \\
-&amp; &amp; Aeq⋅x = beq \\
-&amp; &amp; lb \leq x \leq ub \\
+\hspace{10pt} &amp;\mbox{min}_{x}
+\hspace{10pt} &amp; c^T⋅x \\
+\hspace{10pt} &amp; \text{Subjected to:} &amp; A⋅x \leq b \\
+\end{eqnarray}\\
+\begin{eqnarray}
+\hspace{115pt} &amp; Aeq⋅x = beq \\
+\hspace{115pt} &amp; lb \leq x \leq ub \\
\end{eqnarray}
</latex>
+</para>
+ <para>
+OSI-CLP, an optimization library written in C++, is used for solving the linear programming problems.
+
+ </para>
+<para>
+<title>Options</title>
+The options allow the user to set various parameters of the Optimization problem. The syntax for the options is given by:
</para>
<para>
-The routine calls Clp for solving the linear programming problem, Clp is a library written in C++.
+options= list("MaxIter", [---], "CpuTime", [---], "GradObj", ---, "Hessian", ---, "GradCon", ---);
</para>
<para>
-The options allows the user to set various parameters of the Optimization problem.
-It should be defined as type "list" and contains the following fields. In the current version it only contains maxiter.
+The options should be defined as type "list" and consist of the following fields:
<itemizedlist>
-<listitem>Syntax : options= list("MaxIter", [---]);</listitem>
-<listitem>MaxIter : a Scalar, containing the Maximum Number of Iteration that the solver should take.</listitem>
-<listitem>Default Values : options = list("MaxIter", [3000]);</listitem>
+<listitem>MaxIter : A Scalar, specifying the Maximum Number of iterations that the solver should take.</listitem>
</itemizedlist>
+</para>
+<para>
+The default values for the various items are given as:
</para>
<para>
-The exitflag allows to know the status of the optimization which is given back by CLP.
+options = list("MaxIter", [3000], "CpuTime", [600]);
+ </para>
+
+ <para>
+The exitflag allows the user to know the status of the optimization which is returned by Ipopt. The values it can take and what they indicate is described below:
<itemizedlist>
-<listitem>exitflag=0 : Optimal Solution Found </listitem>
-<listitem>exitflag=1 : Primal Infeasible </listitem>
-<listitem>exitflag=2 : Dual Infeasible</listitem>
-<listitem>exitflag=3 : Maximum Number of Iterations Exceeded. Output may not be optimal.</listitem>
-<listitem>exitflag=4 : Solution Abandoned</listitem>
-<listitem>exitflag=5 : Primal objective limit reached.</listitem>
-<listitem>exitflag=6 : Dual objective limit reached.</listitem>
+<listitem>0 : Optimal Solution Found </listitem>
+<listitem>1 : Primal Infeasible </listitem>
+<listitem>2 : Dual Infeasible</listitem>
+<listitem>3 : Maximum Number of Iterations Exceeded. Output may not be optimal.</listitem>
+<listitem>4 : Solution Abandoned</listitem>
+<listitem>5 : Primal objective limit reached.</listitem>
+<listitem>6 : Dual objective limit reached.</listitem>
</itemizedlist>
</para>
+
<para>
-The output data structure contains detailed informations about the optimization process.
-It has type "struct" and contains the following fields.
+The output data structure contains detailed information about the optimization process.
+It is of type "struct" and contains the following fields.
<itemizedlist>
-<listitem>output.iterations: The number of iterations performed during the search</listitem>
+<listitem>output.Iterations: The number of iterations performed.</listitem>
<listitem>output.constrviolation: The max-norm of the constraint violation.</listitem>
</itemizedlist>
</para>
<para>
-The lambda data structure contains the Lagrange multipliers at the end
-of optimization. In the current version the values are returned only when the the solution is optimal.
+The lambda data structure contains the Lagrange multipliers at the end of optimization. In the current version the values are returned only when the the solution is optimal.
It has type "struct" and contains the following fields.
<itemizedlist>
<listitem>lambda.lower: The Lagrange multipliers for variable lower bounds.</listitem>
@@ -130,13 +150,41 @@ It has type "struct" and contains the following fields.
</para>
<para>
</para>
+
</refsection>
+<para>
+A few examples displaying the various functionalities of linprog have been provided below. You will find a series of problems and the appropriate code snippets to solve them.
+ </para>
<refsection>
- <title>Examples</title>
+ <title>Example</title>
+ <para>
+ Here we solve a simple objective function, subjected to six linear inequality constraints.
+ </para>
+ <para>
+Find x in R^2 such that it minimizes:
+ </para>
+ <para>
+<latex>
+\begin{eqnarray}
+\mbox{min}_{x}\ f(x) = -x_{1} - \dfrac{x_{2}}{3} \\
+\end{eqnarray}
+\text{Subjected to:}\\
+\begin{eqnarray}
+\hspace{1pt} &amp;x_{1} + x_{2}&amp;\leq 2\\
+\hspace{1pt} &amp;x_{1} + \dfrac{x_{2}}{4}&amp;\leq 1\\
+\hspace{1pt} &amp;x_{1} - x_{2}&amp;\leq 2\\
+\hspace{1pt} &amp;-\dfrac{x_{1}}{4} - x_{2}&amp;\leq 1\\
+\hspace{1pt} &amp;-x_{1} - x_{2}&amp;\leq -1\\
+\hspace{1pt} &amp;-x_{1} + x_{2}&amp;\leq 2\\
+\end{eqnarray}
+</latex>
+ </para>
+ <para>
+
+ </para>
<programlisting role="example"><![CDATA[
-//Optimal problems
-//Linear program, linear inequality constraints
+//Example 1: Linear program, linear inequality constraints
c=[-1,-1/3]'
A=[1,1;1,1/4;1,-1;-1/4,-1;-1,-1;-1,1]
b=[2,1,2,1,-1,2]
@@ -147,9 +195,22 @@ b=[2,1,2,1,-1,2]
</refsection>
<refsection>
- <title>Examples</title>
+ <title>Example</title>
+<para>
+Here we build up on the previous example by adding linear equality constraints.
+We add the following constraints to the problem specified above:
+ </para>
+ <para>
+<latex>
+\begin{eqnarray}
+\hspace{1pt} &amp;x_{1} + \dfrac{x_{2}}{4}&amp;= 1/2
+\end{eqnarray}
+</latex>
+ </para>
+<para>
+</para>
<programlisting role="example"><![CDATA[
-//Linear program with Linear Inequalities and Equalities`
+//Example 2: Linear program with Linear Inequalities and Equalities`
c=[-1,-1/3]'
A=[1,1;1,1/4;1,-1;-1/4,-1;-1,-1;-1,1]
b=[2,1,2,1,-1,2]
@@ -162,9 +223,22 @@ beq=[1/2]
</refsection>
<refsection>
- <title>Examples</title>
+ <title>Example</title>
+<para>
+In this example, we proceed to add the upper and lower bounds to the objective function.
+ </para>
+ <para>
+<latex>
+\begin{eqnarray}
+-1 &amp;\leq x_{1} &amp;\leq 1.5\\
+-0.5 &amp;\leq x_{2} &amp;\leq 1.25
+\end{eqnarray}
+</latex>
+ </para>
+<para>
+</para>
<programlisting role="example"><![CDATA[
-//Linear program with all constraint types
+//Example 3: Linear program with all constraint types
c=[-1,-1/3]'
A=[1,1;1,1/4;1,-1;-1/4,-1;-1,-1;-1,1]
b=[2,1,2,1,-1,2]
@@ -177,11 +251,34 @@ ub=[1.5,1.25]
]]></programlisting>
</refsection>
-
<refsection>
- <title>Examples</title>
- <programlisting role="example"><![CDATA[
-//Primal Infeasible Problem
+<title>Example</title>
+
+ <para>
+Primal Infeasible Problems: Find x in R^3 such that it minimizes:
+ </para>
+ <para>
+<latex>
+\begin{eqnarray}
+mbox{min}_{x}\ f(x) = x_{1} - x_{2} \- x_{3}\\
+\end{eqnarray}
+\\\text{Subjected to:}\\
+\begin{eqnarray}
+\hspace{70pt} &amp;x_{1} + 2x_{2} - x{3}&amp;\leq -4\\
+\hspace{70pt} &amp;x_{1} + 4x_{2} + 3x{3}&amp;= 10\\
+\hspace{70pt} &amp;x_{1} + x_{2}&amp;= 100\\
+\end{eqnarray}
+\\
+\begin{eqnarray}
+\hspace{135pt}0 &amp;\leq x_{1} &amp;\leq \infty\\
+\hspace{135pt}0 &amp;\leq x_{2} &amp;\leq \infty\\
+\hspace{135pt}0 &amp;\leq x_{3} &amp;\leq \infty
+\end{eqnarray}
+</latex>
+ </para>
+ <para>
+ </para> <programlisting role="example"><![CDATA[
+//Example 4: Primal Infeasible Problem
c=[-1,-1,-1]'
A=[1,2,-1]
b=[-4]
@@ -196,9 +293,33 @@ ub=[%inf,%inf,%inf]
</refsection>
<refsection>
- <title>Examples</title>
+ <title>Example</title>
+
+ <para>
+Unbounded Problems: Find x in R^3 such that it minimizes:
+ </para>
+ <para>
+<latex>
+\begin{eqnarray}
+mbox{min}_{x}\ f(x) = x_{1} - x_{2} \- x_{3}\\
+\end{eqnarray}
+\\\text{Subjected to:}\\
+\begin{eqnarray}
+\hspace{70pt} &amp;-x_{1} - x_{2} + 4x{3}&amp;\leq -8\\
+\hspace{70pt} &amp;x_{1} + x_{2} + 4x{3}&amp;\leq 5\\
+\end{eqnarray}
+\\
+\begin{eqnarray}
+\hspace{115pt}-\infty &amp;\leq x_{1} &amp;\leq \infty\\
+\hspace{115pt}-\infty &amp;\leq x_{2} &amp;\leq \infty\\
+\hspace{115pt}-\infty &amp;\leq x_{3} &amp;\leq \infty
+\end{eqnarray}
+</latex>
+ </para>
+ <para>
+ </para>
<programlisting role="example"><![CDATA[
-//Dual Infeasible Problem
+//Example 5: Unbounded Problem
c=[3,5,-7]'
A=[-1,-1,4;1,1,4]
b=[-8,5]
@@ -213,7 +334,7 @@ ub=[%inf,%inf,%inf]
</refsection>
<refsection>
- <title>Examples</title>
+ <title>Example</title>
<programlisting role="example"><![CDATA[
filepath = get_absolute_file_path('linprog.dem.sce');
filepath = filepath + "exmip1.mps"
@@ -221,6 +342,10 @@ filepath = filepath + "exmip1.mps"
]]></programlisting>
</refsection>
+
+
+
+
<refsection>
<title>Authors</title>
<simplelist type="vert">
diff --git a/help/en_US/lsqlin.xml b/help/en_US/lsqlin.xml
index 466c1cf..51c1a3a 100644
--- a/help/en_US/lsqlin.xml
+++ b/help/en_US/lsqlin.xml
@@ -28,104 +28,115 @@
xopt = lsqlin(C,d,A,b,Aeq,beq)
xopt = lsqlin(C,d,A,b,Aeq,beq,lb,ub)
xopt = lsqlin(C,d,A,b,Aeq,beq,lb,ub,x0)
- xopt = lsqlin(C,d,A,b,Aeq,beq,lb,ub,x0,param)
+ xopt = lsqlin(C,d,A,b,Aeq,beq,lb,ub,x0,options)
[xopt,resnorm,residual,exitflag,output,lambda] = lsqlin( ... )
</synopsis>
</refsynopsisdiv>
<refsection>
- <title>Parameters</title>
+ <title>Input Parameters</title>
<variablelist>
<varlistentry><term>C :</term>
- <listitem><para> a matrix of double, represents the multiplier of the solution x in the expression C⋅x - d. Number of columns in C is equal to the number of elements in x.</para></listitem></varlistentry>
+ <listitem><para> A matrix of doubles, representing the multiplier of x in the expression C⋅x - d. The number of columns in C is equal to the number of elements in x.</para></listitem></varlistentry>
<varlistentry><term>d :</term>
- <listitem><para> a vector of double, represents the additive constant term in the expression C⋅x - d. Number of elements in d is equal to the number of rows in C matrix.</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, representing the additive constant term in the expression C⋅x - d. The number of elements in d is equal to the number of rows in C matrix.</para></listitem></varlistentry>
<varlistentry><term>A :</term>
- <listitem><para> a matrix of double, represents the linear coefficients in the inequality constraints A⋅x ≤ b.</para></listitem></varlistentry>
+ <listitem><para> A matrix of doubles, containing the coefficients of linear inequality constraints of size (m X n) where 'm' is the number of linear inequality constraints.</para></listitem></varlistentry>
<varlistentry><term>b :</term>
- <listitem><para> a vector of double, represents the linear coefficients in the inequality constraints A⋅x ≤ b.</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, related to 'A' and represents the linear coefficients in the linear inequality constraints of size (m X 1).</para></listitem></varlistentry>
<varlistentry><term>Aeq :</term>
- <listitem><para> a matrix of double, represents the linear coefficients in the equality constraints Aeq⋅x = beq.</para></listitem></varlistentry>
+ <listitem><para> A matrix of doubles, containing the coefficients of linear equality constraints of size (m1 X n) where 'm1' is the number of linear equality constraints.</para></listitem></varlistentry>
<varlistentry><term>beq :</term>
- <listitem><para> a vector of double, represents the linear coefficients in the equality constraints Aeq⋅x = beq.</para></listitem></varlistentry>
+ <listitem><para> A vector of double, vector of doubles, related to 'Aeq' and represents the linear coefficients in the equality constraints of size (m1 X 1).</para></listitem></varlistentry>
<varlistentry><term>lb :</term>
- <listitem><para> a vector of double, contains lower bounds of the variables.</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, containing the lower bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables.</para></listitem></varlistentry>
<varlistentry><term>ub :</term>
- <listitem><para> a vector of double, contains upper bounds of the variables.</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, containing the upper bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables.</para></listitem></varlistentry>
<varlistentry><term>x0 :</term>
- <listitem><para> a vector of double, contains initial guess of variables.</para></listitem></varlistentry>
- <varlistentry><term>param :</term>
- <listitem><para> a list containing the parameters to be set.</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, containing the starting values of variables of size (1 X n) or (n X 1) where 'n' is the number of variables.</para></listitem></varlistentry>
+ <varlistentry><term>options :</term>
+ <listitem><para> A list, containing the option for user to specify. See below for details.</para></listitem></varlistentry>
+ </variablelist>
+</refsection>
+<refsection>
+<title> Outputs</title>
+ <variablelist>
<varlistentry><term>xopt :</term>
- <listitem><para> a vector of double, the computed solution of the optimization problem.</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, containing the computed solution of the optimization problem.</para></listitem></varlistentry>
<varlistentry><term>resnorm :</term>
- <listitem><para> a double, objective value returned as the scalar value norm(C⋅x-d)^2.</para></listitem></varlistentry>
+ <listitem><para> A double, containing the objective value returned as a scalar value norm(C⋅x-d)^2.</para></listitem></varlistentry>
<varlistentry><term>residual :</term>
- <listitem><para> a vector of double, solution residuals returned as the vector d-C⋅x.</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, containing the solution residuals, returned as a vector d-C⋅x.</para></listitem></varlistentry>
<varlistentry><term>exitflag :</term>
- <listitem><para> The exit status. See below for details.</para></listitem></varlistentry>
+ <listitem><para> An integer, containing the flag which denotes the reason for termination of algorithm. See below for details.</para></listitem></varlistentry>
<varlistentry><term>output :</term>
- <listitem><para> The structure consist of statistics about the optimization. See below for details.</para></listitem></varlistentry>
+ <listitem><para> A structure, containing the information about the optimization. See below for details.</para></listitem></varlistentry>
<varlistentry><term>lambda :</term>
- <listitem><para> The structure consist of the Lagrange multipliers at the solution of problem. See below for details.</para></listitem></varlistentry>
+ <listitem><para> A structure, containing the Lagrange multipliers of the lower bounds, upper bounds and constraints at the optimized point. See below for details.</para></listitem></varlistentry>
</variablelist>
</refsection>
-
<refsection>
<title>Description</title>
<para>
-Search the minimum of a constrained linear least square problem specified by :
+Search the minimum of a constrained linear least square problem specified by:
</para>
<para>
<latex>
\begin{eqnarray}
-&amp;\mbox{min}_{x}
-&amp; 1/2||C⋅x - d||_2^2 \\
-&amp; \text{subject to} &amp; A⋅x \leq b \\
-&amp; &amp; Aeq⋅x = beq \\
-&amp; &amp; lb \leq x \leq ub \\
+\hspace{10pt} &amp;\mbox{min}_{x}
+\hspace{10pt} &amp; 1/2||C⋅x - d||_2^2 \\
+\hspace{10pt} &amp; \text{Subjected to: } &amp; A⋅x \leq b \\
+\hspace{10pt} &amp; &amp; Aeq⋅x = beq \\
+\hspace{10pt} &amp; &amp; lb \leq x \leq ub \\
\end{eqnarray}
</latex>
</para>
<para>
-The routine calls Ipopt for solving the linear least square problem, Ipopt is a library written in C++.
+lsqlin calls Ipopt, an optimization library written in C++, to solve the linear least squares problem.
+ </para>
+ <para>
+The options should be defined as type "list" and consist of the following fields:
+</para>
+ <para>
+options= list("MaxIter", [---], "CpuTime", [---]);
</para>
<para>
-The options allows the user to set various parameters of the Optimization problem.
-It should be defined as type "list" and contains the following fields.
<itemizedlist>
-<listitem>Syntax : options= list("MaxIter", [---], "CpuTime", [---]);</listitem>
-<listitem>MaxIter : a Scalar, containing the Maximum Number of Iteration that the solver should take.</listitem>
-<listitem>CpuTime : a Scalar, containing the Maximum amount of CPU Time that the solver should take.</listitem>
-<listitem>Default Values : options = list("MaxIter", [3000], "CpuTime", [600]);</listitem>
+<listitem>MaxIter : A Scalar, specifying the maximum number of iterations that the solver should take.</listitem>
+<listitem>CpuTime : A Scalar, specifying the maximum amount of CPU time in seconds that the solver should take.</listitem>
</itemizedlist>
</para>
<para>
-The exitflag allows to know the status of the optimization which is given back by Ipopt.
+ The default values for the various items are given as:
+ </para>
+ <para>
+options = list("MaxIter", [3000], "CpuTime", [600]);
+ </para>
+ <para>
+The exitflag allows the user to know the status of the optimization which is returned by Ipopt. The values it can take and what they indicate is described below:
<itemizedlist>
-<listitem>exitflag=0 : Optimal Solution Found </listitem>
-<listitem>exitflag=1 : Maximum Number of Iterations Exceeded. Output may not be optimal.</listitem>
-<listitem>exitflag=2 : Maximum CPU Time exceeded. Output may not be optimal.</listitem>
-<listitem>exitflag=3 : Stop at Tiny Step.</listitem>
-<listitem>exitflag=4 : Solved To Acceptable Level.</listitem>
-<listitem>exitflag=5 : Converged to a point of local infeasibility.</listitem>
+<listitem> 0 : Optimal Solution Found </listitem>
+<listitem> 1 : Maximum Number of Iterations Exceeded. Output may not be optimal.</listitem>
+<listitem> 2 : Maximum amount of CPU Time exceeded. Output may not be optimal.</listitem>
+<listitem> 3 : Stop at Tiny Step.</listitem>
+<listitem> 4 : Solved To Acceptable Level.</listitem>
+<listitem> 5 : Converged to a point of local infeasibility.</listitem>
</itemizedlist>
</para>
<para>
-For more details on exitflag see the ipopt documentation, go to http://www.coin-or.org/Ipopt/documentation/
+For more details on exitflag, see the Ipopt documentation which can be found on http://www.coin-or.org/Ipopt/documentation/
</para>
<para>
-The output data structure contains detailed informations about the optimization process.
-It has type "struct" and contains the following fields.
+The output data structure contains detailed information about the optimization process.
+It is of type "struct" and contains the following fields.
<itemizedlist>
-<listitem>output.iterations: The number of iterations performed during the search</listitem>
+<listitem>output.iterations: The number of iterations performed.</listitem>
<listitem>output.constrviolation: The max-norm of the constraint violation.</listitem>
</itemizedlist>
</para>
<para>
-The lambda data structure contains the Lagrange multipliers at the end
-of optimization. In the current version the values are returned only when the the solution is optimal.
+The lambda data structure contains the Lagrange multipliers at the end of optimization. In the current version, the values are returned only when the the solution is optimal.
It has type "struct" and contains the following fields.
<itemizedlist>
<listitem>lambda.lower: The Lagrange multipliers for the lower bound constraints.</listitem>
@@ -133,35 +144,133 @@ It has type "struct" and contains the following fields.
<listitem>lambda.eqlin: The Lagrange multipliers for the linear equality constraints.</listitem>
<listitem>lambda.ineqlin: The Lagrange multipliers for the linear inequality constraints.</listitem>
</itemizedlist>
- </para>
+</para>
<para>
</para>
</refsection>
+
+<para>
+A few examples displaying the various functionalities of lsqlin have been provided below. You will find a series of problems and the appropriate code snippets to solve them.
+ </para>
<refsection>
- <title>Examples</title>
+ <title>Example</title>
+ <para>
+ We begin with a simple objective function subjected to three inequality constraints.
+ </para>
+ <para>
+<latex>
+\begin{eqnarray}
+&amp;\mbox{min}_{x} 1/2||C⋅x - d||_2^2 \\
+\end{eqnarray}
+\\
+\text{Where C⋅x - d = }\:\begin{cases}
+\begin{eqnarray}
+\hspace{1pt} &amp;x_{1} + x_{2} + x_{3} - 89\\
+\hspace{1pt} &amp;x_{1} + x_{2} - 67\\
+\hspace{1pt} &amp;x_{2} + x_{3} - 53\\
+\hspace{1pt} &amp;x_{1} - 35\\
+\hspace{1pt} &amp;x_{3} - 20\\
+\end{eqnarray}
+\end{cases}
+\\
+&amp; \text{Subjected to:} \\
+\begin{eqnarray}
+\hspace{70pt} &amp;3x_{1} + 2x_{2} + x_{3}&amp;\leq 191\\
+\hspace{70pt} &amp;2x_{1} + 3x_{2} + 4x_{3}&amp;\leq 209\\
+\hspace{70pt} &amp;x_{1} + 2x_{2} + 3x_{3}&amp;\leq 162\\
+\end{eqnarray}
+</latex>
+ </para>
+ <para>
+ </para>
<programlisting role="example"><![CDATA[
-//A simple linear least square example
-C = [ 2 0;
--1 1;
-0 2]
-d = [1
-0
--1];
-A = [10 -2;
--2 10];
-b = [4
--4];
-[xopt,resnorm,residual,exitflag,output,lambda] = lsqlin(C,d,A,b)
-// Press ENTER to continue
+//Example 1:An example with inequality constraints.
+//Initializing C and D.
+C = [1 1 1;
+1 1 0;
+0 1 1;
+1 0 0;
+0 0 1]
+d = [89;
+67;
+53;
+35;
+20];
+//We specify the linear inequality constraints below.
+A = [3 2 1;
+2 3 4;
+1 2 3];
+b = [191
+209
+162];
+//Run lsqlin
+[xopt,resnorm,residual,exitflag,output,lambda] = lsqlin(C,d,A,b);
+ ]]></programlisting>
+</refsection>
+<refsection>
+ <title>Example</title>
+ <para>
+ Here we build up on the previous example by adding equality constraints.
+We add the following constraint to the problem specified above:
+ </para>
+ <para>
+<latex>
+\begin{eqnarray}
+x_{1} + 2x_{2} + x_{3}&amp;= 10\\
+\end{eqnarray}
+</latex>
+ </para>
+ <para>
+ </para>
+ <programlisting role="example"><![CDATA[
+//Example 2: Using inequality and equality constraints.
+//Initializing C and D.
+C = [1 1 1;
+1 1 0;
+0 1 1;
+1 0 0;
+0 0 1]
+d = [89;
+67;
+53;
+35;
+20];
+//We specify the linear inequality constraints below.
+A = [3 2 1;
+2 3 4;
+1 2 3];
+b = [191
+209
+162];
+//We specify the linear equality constraints below.
+Aeq = [1 2 1];
+beq = 10;
+//Run lsqlin
+[xopt,resnorm,residual,exitflag,output,lambda] = lsqlin(C,d,A,b,Aeq,beq)
]]></programlisting>
</refsection>
<refsection>
- <title>Examples</title>
+ <title>Example</title>
+ <para>
+ In this example, we proceed to add the upper and lower bounds to the objective function.
+ </para>
+ <para>
+<latex>
+\begin{eqnarray}
+0.1 &amp;\leq x_{1} &amp;\leq 4\\
+3 &amp;\leq x_{2} &amp;\leq 5\\
+1 &amp;\leq x_{3} &amp;\leq 1
+\end{eqnarray}
+</latex>
+ </para>
+ <para>
+ </para>
<programlisting role="example"><![CDATA[
-//A basic example for equality, inequality constraints and variable bounds
+//Example 3: Using equality, inequality constraints and variable bounds
+//Initializing C and D.
C = [1 1 1;
1 1 0;
0 1 1;
@@ -171,22 +280,116 @@ d = [89;
67;
53;
35;
-20;]
+20];
+//We specify the linear inequality constraints below.
A = [3 2 1;
2 3 4;
1 2 3];
b = [191
209
162];
+//We specify the linear equality constraints below.
Aeq = [1 2 1];
beq = 10;
-lb = repmat(0.1,3,1);
-ub = repmat(4,3,1);
+//The upper and lower bounds for the objective function are defined in simple vectors as shown below.
+lb = [0.1,3,1];
+ub = [4,5,1];
+//Run lsqlin
[xopt,resnorm,residual,exitflag,output,lambda] = lsqlin(C,d,A,b,Aeq,beq,lb,ub)
]]></programlisting>
</refsection>
<refsection>
+ <title>Example</title>
+ <para>
+ In this example, we proceed to provide an initial value for x to facilitate the computation. We also further enhance the functionality of lsqlin by setting input options. This provides us with the ability to control the solver parameters such as the maximum number of solver iterations and the max. CPU time allowed for the computation.
+ </para>
+ <para>
+ </para>
+ <programlisting role="example"><![CDATA[
+//Example 4: Using equality, inequality constraints and variable bounds, initializing x and options.
+//Initializing C and D.
+C = [1 1 1;
+1 1 0;
+0 1 1;
+1 0 0;
+0 0 1]
+d = [89;
+67;
+53;
+35;
+20];
+//We specify the linear inequality constraints below.
+A = [3 2 1;
+2 3 4;
+1 2 3];
+b = [191
+209
+162];
+//We specify the linear equality constraints below.
+Aeq = [1 2 1];
+beq = 10;
+//The upper and lower bounds for the objective function are defined in simple vectors as shown below.
+lb = [0.1,3,1];
+ub = [4,5,1];
+//Initializing x.
+x0 = [1,2,3]
+//Setting the options
+options = list("MaxIter", [5000], "CpuTime", [1000]);
+//Run lsqlin
+[xopt,resnorm,residual,exitflag,output,lambda] = lsqlin(C,d,A,b,Aeq,beq,lb,ub,x0,options)
+ ]]></programlisting>
+</refsection>
+
+<refsection>
+ <title>Example</title>
+ <para>
+ Infeasible Problems: Find x in R^3 such that it minimizes:
+We add the following constraint to the objective function specified above:
+ </para>
+ <para>
+<latex>
+ \begin{eqnarray}
+3x_{1} + 2x_{2} + x_{3}&amp;\leq 191\\
+2x_{1} + 3x_{2} + 4x_{3}&amp;\leq 209\\
+x_{1} + 2x_{2} + 3x_{3}&amp;\leq 162\\
+\end{eqnarray}
+\begin{eqnarray}
+x_{1} + 2x_{2} + 3x_{3}&amp;= 200\\
+\end{eqnarray}
+</latex>
+ </para>
+ <para>
+ </para>
+ <programlisting role="example"><![CDATA[
+//Example 5: Infeasible problem
+//Initializing C and D.
+C = [1 1 1;
+1 1 0;
+0 1 1;
+1 0 0;
+0 0 1]
+d = [89;
+67;
+53;
+35;
+20];
+//We specify the linear inequality constraints below.
+A = [3 2 1;
+2 3 4;
+1 2 3];
+b = [191
+209
+162];
+//We specify the linear equality constraints below.
+Aeq = [1 2 3];
+beq = 200;
+//Run lsqlin
+[xopt,resnorm,residual,exitflag,output,lambda] = lsqlin(C,d,A,b,Aeq,beq)
+ ]]></programlisting>
+</refsection>
+
+<refsection>
<title>Authors</title>
<simplelist type="vert">
<member>Harpreet Singh</member>
diff --git a/help/en_US/lsqnonlin.xml b/help/en_US/lsqnonlin.xml
index d7b8110..ad00228 100644
--- a/help/en_US/lsqnonlin.xml
+++ b/help/en_US/lsqnonlin.xml
@@ -36,32 +36,37 @@
</refsynopsisdiv>
<refsection>
- <title>Parameters</title>
+ <title>Input Parameters</title>
<variablelist>
<varlistentry><term>fun :</term>
- <listitem><para> a function, representing the objective function and gradient (if given) of the problem</para></listitem></varlistentry>
+ <listitem><para> A function, representing the objective function and gradient (if given) of the problem.</para></listitem></varlistentry>
<varlistentry><term>x0 :</term>
- <listitem><para> a vector of double, contains initial guess of variables.</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, containing the starting values of variables of size (1 X n) or (n X 1) where 'n' is the number of variables.</para></listitem></varlistentry>
<varlistentry><term>lb :</term>
- <listitem><para> a vector of double, contains lower bounds of the variables.</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, containing the lower bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables.</para></listitem></varlistentry>
<varlistentry><term>ub :</term>
- <listitem><para> a vector of double, contains upper bounds of the variables.</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, containing the upper bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables.</para></listitem></varlistentry>
<varlistentry><term>options :</term>
- <listitem><para> a list containing the parameters to be set.</para></listitem></varlistentry>
+ <listitem><para> A list, containing the option for user to specify. See below for details.</para></listitem></varlistentry>
+ </variablelist>
+</refsection>
+<refsection>
+<title> Outputs</title>
+ <variablelist>
<varlistentry><term>xopt :</term>
- <listitem><para> a vector of double, the computed solution of the optimization problem.</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, containing the computed solution of the optimization problem.</para></listitem></varlistentry>
<varlistentry><term>resnorm :</term>
- <listitem><para> a double, objective value returned as the scalar value i.e. sum(fun(x).^2).</para></listitem></varlistentry>
+ <listitem><para> A double, containing the objective value returned as a scalar value i.e. sum(fun(x).^2).</para></listitem></varlistentry>
<varlistentry><term>residual :</term>
- <listitem><para> a vector of double, solution of objective function i.e. fun(x).</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, containing the solution of the objective function, returned as a vector i.e. fun(x).</para></listitem></varlistentry>
<varlistentry><term>exitflag :</term>
- <listitem><para> The exit status. See below for details.</para></listitem></varlistentry>
+ <listitem><para> An integer, containing the flag which denotes the reason for termination of algorithm. See below for details.</para></listitem></varlistentry>
<varlistentry><term>output :</term>
- <listitem><para> The structure consist of statistics about the optimization. See below for details.</para></listitem></varlistentry>
+ <listitem><para> A structure, containing the information about the optimization. See below for details.</para></listitem></varlistentry>
<varlistentry><term>lambda :</term>
- <listitem><para> The structure consist of the Lagrange multipliers at the solution of problem. See below for details.</para></listitem></varlistentry>
+ <listitem><para> A structure, containing the Lagrange multipliers of the lower bounds, upper bounds and constraints at the optimized point. See below for details.</para></listitem></varlistentry>
<varlistentry><term>gradient :</term>
- <listitem><para> a vector of doubles, containing the Objective's gradient of the solution.</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, containing the objective's gradient of the solution.</para></listitem></varlistentry>
</variablelist>
</refsection>
@@ -73,51 +78,59 @@ Search the minimum of a constrained non-linear least square problem specified by
<para>
<latex>
\begin{eqnarray}
-&amp;\mbox{min}_{x}
-&amp; (f_1(x)^2 + f_2(x)^2 + ... + f_n(x)^2) \\
-&amp; lb \leq x \leq ub \\
+\hspace{1pt} &amp;\mbox{min}_{x}
+\hspace{1pt} &amp; (f_{1}(x)^{2} + f_{2}(x)^{2} + f_{n}(x)^{2}) \\
+\hspace{1pt} &amp; &amp; lb \leq x \leq ub \\
\end{eqnarray}
</latex>
</para>
<para>
-The routine calls fmincon which calls Ipopt for solving the non-linear least square problem, Ipopt is a library written in C++.
+lsqnonlin calls fmincon, which calls Ipopt, an optimization library written in C++ to solve the non-linear least squares problem.
+ </para>
+
+ <para>
+The options should be defined as type "list" and consist of the following fields:
+</para>
+ <para>
+options= list("MaxIter", [---], "CpuTime", [---], "GradObj", ---);
</para>
<para>
-The options allows the user to set various parameters of the Optimization problem.
-It should be defined as type "list" and contains the following fields.
<itemizedlist>
-<listitem>Syntax : options= list("MaxIter", [---], "CpuTime", [---],"GradObj", "on");</listitem>
-<listitem>MaxIter : a Scalar, containing the Maximum Number of Iteration that the solver should take.</listitem>
-<listitem>CpuTime : a Scalar, containing the Maximum amount of CPU Time that the solver should take.</listitem>
-<listitem>GradObj : a string, representing the gradient function is on or off.</listitem>
-<listitem>Default Values : options = list("MaxIter", [3000], "CpuTime", [600], "GradObj", "off");</listitem>
+<listitem>MaxIter : A Scalar, specifying the maximum number of iterations that the solver should take.</listitem>
+<listitem>CpuTime : A Scalar, specifying the maximum amount of CPU time in seconds that the solver should take.</listitem>
+<listitem>GradObj : A string, representing whetherthe gradient function is on or off.</listitem>
</itemizedlist>
</para>
<para>
-The exitflag allows to know the status of the optimization which is given back by Ipopt.
+ The default values for the various items are given as:
+ </para>
+ <para>
+Default Values : options = list("MaxIter", [3000], "CpuTime", [600], "GradObj", "off");
+ </para>
+ <para>
+The exitflag allows the user to know the status of the optimization which is returned by Ipopt. The values it can take and what they indicate is described below:
<itemizedlist>
-<listitem>exitflag=0 : Optimal Solution Found </listitem>
-<listitem>exitflag=1 : Maximum Number of Iterations Exceeded. Output may not be optimal.</listitem>
-<listitem>exitflag=2 : Maximum CPU Time exceeded. Output may not be optimal.</listitem>
-<listitem>exitflag=3 : Stop at Tiny Step.</listitem>
-<listitem>exitflag=4 : Solved To Acceptable Level.</listitem>
-<listitem>exitflag=5 : Converged to a point of local infeasibility.</listitem>
+<listitem> 0 : Optimal Solution Found </listitem>
+<listitem> 1 : Maximum Number of Iterations Exceeded. Output may not be optimal.</listitem>
+<listitem> 2 : Maximum amount of CPU Time exceeded. Output may not be optimal.</listitem>
+<listitem> 3 : Stop at Tiny Step.</listitem>
+<listitem> 4 : Solved To Acceptable Level.</listitem>
+<listitem> 5 : Converged to a point of local infeasibility.</listitem>
</itemizedlist>
</para>
<para>
-For more details on exitflag see the ipopt documentation, go to http://www.coin-or.org/Ipopt/documentation/
+For more details on exitflag, see the Ipopt documentation which can be found on http://www.coin-or.org/Ipopt/documentation/
</para>
<para>
-The output data structure contains detailed informations about the optimization process.
-It has type "struct" and contains the following fields.
+The output data structure contains detailed information about the optimization process.
+It is of type "struct" and contains the following fields.
<itemizedlist>
-<listitem>output.iterations: The number of iterations performed during the search</listitem>
+<listitem>output.iterations: The number of iterations performed.</listitem>
<listitem>output.constrviolation: The max-norm of the constraint violation.</listitem>
</itemizedlist>
- </para>
- <para>
-The lambda data structure contains the Lagrange multipliers at the end
-of optimization. In the current version the values are returned only when the the solution is optimal.
+</para>
+ <para>
+The lambda data structure contains the Lagrange multipliers at the end of optimization. In the current version, the values are returned only when the the solution is optimal.
It has type "struct" and contains the following fields.
<itemizedlist>
<listitem>lambda.lower: The Lagrange multipliers for the lower bound constraints.</listitem>
@@ -127,9 +140,70 @@ It has type "struct" and contains the following fields.
<para>
</para>
</refsection>
+<para>
+A few examples displaying the various functionalities of lsqnonlin have been provided below. You will find a series of problems and the appropriate code snippets to solve them.
+ </para>
+<refsection>
+ <title>Example</title>
+ <para>
+ Here we solve a simple non-linear least square example taken from leastsq default present in scilab.
+
+ </para>
+ <para>
+Find x in R^2 such that it minimizes:
+ </para>
+ <para>
+<latex>
+ \begin{eqnarray}
+\mbox{min}_{x}\ f(x) = sum_{i=1,...,n} &amp; wm_{i}^{2} (x_{1} \boldsymbol{\cdot} exp(-x_{2}\boldsymbol{\cdot} tm)) - ym_{i} )^{2}\\
+\end{eqnarray}\\
+\text{With initial values as: }\\
+\begin{array}{cc}
+[1.5 &amp; 0.8]
+\end{array}
+ </latex>
+ </para>
+ <programlisting role="example"><![CDATA[
+
+// we have the m measures (ti, yi):
+m = 10;
+tm = [0.25, 0.5, 0.75, 1.0, 1.25, 1.5, 1.75, 2.0, 2.25, 2.5]';
+ym = [0.79, 0.59, 0.47, 0.36, 0.29, 0.23, 0.17, 0.15, 0.12, 0.08]';
+// measure weights (here all equal to 1...)
+wm = ones(m,1);
+// and we want to find the parameters x such that the model fits the given
+// data in the least square sense:
+//
+// minimize f(x) = sum_i wm(i)^2 ( x(1)*exp(-x(2)*tm(i) - ym(i) )^2
+// initial parameters guess
+x0 = [1.5 ; 0.8];
+// in the first examples, we define the function fun and dfun
+// in scilab language
+function y=myfun(x, them, ym, wm)
+y = wm.*( x(1)*exp(-x(2)*tm) - ym )
+endfunction
+// the simplest call
+[xopt,resnorm,residual,exitflag,output,lambda,gradient] = lsqnonlin(myfun,x0)
+// Press ENTER to continue
+ ]]></programlisting>
+</refsection>
<refsection>
- <title>Examples</title>
+<title>Example</title>
+<para>
+ Here we build up on the previous example by adding upper and lower bounds to the variables.
+We add the following bounds to the problem specified above:
+ </para>
+ <para>
+ <latex>
+\begin{eqnarray}
+-5 &amp;\leq x_{1} &amp;\leq 10\\
+-5 &amp;\leq x_{2} &amp;\leq 10\\
+\end{eqnarray}
+</latex>
+ </para>
+ <para>
+ </para>
<programlisting role="example"><![CDATA[
//A simple non-linear least square example taken from leastsq default present in scilab
function y=yth(t, x)
@@ -152,15 +226,22 @@ x0 = [1.5 ; 0.8];
function y=myfun(x, tm, ym, wm)
y = wm.*( yth(tm, x) - ym )
endfunction
+lb = [-5 ,-5];
+ub = [10, 10];
// the simplest call
-[xopt,resnorm,residual,exitflag,output,lambda,gradient] = lsqnonlin(myfun,x0)
+[xopt,resnorm,residual,exitflag,output,lambda,gradient] = lsqnonlin(myfun,x0,lb,ub)
// Press ENTER to continue
]]></programlisting>
</refsection>
<refsection>
- <title>Examples</title>
+ <title>Example</title>
+ <para>
+ In this example, we further enhance the functionality of lsqnonlin by setting input options. This provides us with the ability to control the solver parameters such as the maximum number of solver iterations and the max. CPU time allowed for the computation.
+ </para>
+ <para>
+ </para>
<programlisting role="example"><![CDATA[
//A basic example taken from leastsq default present in scilab with gradient
function y=yth(t, x)
@@ -181,12 +262,14 @@ x0 = [1.5 ; 0.8];
// in the first examples, we define the function fun and dfun
// in scilab language
function [y,dy]=myfun(x, tm, ym, wm)
-y = wm.*( yth(tm, x) - ym )
+y = wm.*( x(1)*exp(-x(2)*tm) - ym )
v = wm.*exp(-x(2)*tm)
dy = [v , -x(1)*tm.*v]
endfunction
+lb = [-5,-5];
+ub = [10,10];
options = list("GradObj", "on")
-[xopt,resnorm,residual,exitflag,output,lambda,gradient] = lsqnonlin(myfun,x0,[],[],options)
+[xopt,resnorm,residual,exitflag,output,lambda,gradient] = lsqnonlin(myfun,x0,lb,ub,options)
]]></programlisting>
</refsection>
diff --git a/help/en_US/lsqnonneg.xml b/help/en_US/lsqnonneg.xml
index a8d7a00..7d13b0c 100644
--- a/help/en_US/lsqnonneg.xml
+++ b/help/en_US/lsqnonneg.xml
@@ -25,31 +25,38 @@
<title>Calling Sequence</title>
<synopsis>
xopt = lsqnonneg(C,d)
- xopt = lsqnonneg(C,d,param)
+ xopt = lsqnonneg(C,d,options)
[xopt,resnorm,residual,exitflag,output,lambda] = lsqnonneg( ... )
</synopsis>
</refsynopsisdiv>
<refsection>
- <title>Parameters</title>
+ <title>Input Parameters</title>
<variablelist>
- <varlistentry><term>C :</term>
- <listitem><para> a matrix of double, represents the multiplier of the solution x in the expression C⋅x - d. Number of columns in C is equal to the number of elements in x.</para></listitem></varlistentry>
- <varlistentry><term>d :</term>
- <listitem><para> a vector of double, represents the additive constant term in the expression C⋅x - d. Number of elements in d is equal to the number of rows in C matrix.</para></listitem></varlistentry>
+ <varlistentry><term>C :</term>
+ <listitem><para>A matrix of doubles, representing the multiplier of x in the expression C⋅x - d. The number of columns in C is equal to the number of elements in x.</para></listitem></varlistentry>
+ <varlistentry><term>d :</term>
+ <listitem><para> A vector of doubles, representing the additive constant term in the expression C⋅x - d. The number of elements in d is equal to the number of rows in C matrix.</para></listitem></varlistentry>
+ <varlistentry><term>options:</term>
+ <listitem><para> A list, containing the option for user to specify. See below for details.</para></listitem></varlistentry>
+ </variablelist>
+</refsection>
+<refsection>
+<title> Outputs</title>
+ <variablelist>
<varlistentry><term>xopt :</term>
- <listitem><para> a vector of double, the computed solution of the optimization problem.</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, containing the computed solution of the optimization problem.</para></listitem></varlistentry>
<varlistentry><term>resnorm :</term>
- <listitem><para> a double, objective value returned as the scalar value norm(C⋅x-d)^2.</para></listitem></varlistentry>
+ <listitem><para> A double, containing the objective value returned as a scalar value norm(C⋅x-d)^2.</para></listitem></varlistentry>
<varlistentry><term>residual :</term>
- <listitem><para> a vector of double, solution residuals returned as the vector d-C⋅x.</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, containing the solution residuals, returned as a vector d-C⋅x.</para></listitem></varlistentry>
<varlistentry><term>exitflag :</term>
- <listitem><para> The exit status. See below for details.</para></listitem></varlistentry>
+ <listitem><para> An integer, containing the flag which denotes the reason for termination of algorithm. See below for details.</para></listitem></varlistentry>
<varlistentry><term>output :</term>
- <listitem><para> The structure consist of statistics about the optimization. See below for details.</para></listitem></varlistentry>
+ <listitem><para> A structure, containing the information about the optimization. See below for details.</para></listitem></varlistentry>
<varlistentry><term>lambda :</term>
- <listitem><para> The structure consist of the Lagrange multipliers at the solution of problem. See below for details.</para></listitem></varlistentry>
+ <listitem><para> A structure, containing the Lagrange multipliers at the optimized point. See below for details.</para></listitem></varlistentry>
</variablelist>
</refsection>
@@ -61,50 +68,57 @@ Solves nonnegative least-squares curve fitting problems specified by :
<para>
<latex>
\begin{eqnarray}
-&amp;\mbox{min}_{x}
-&amp; 1/2||C⋅x - d||_2^2 \\
-&amp; &amp; x \geq 0 \\
+\hspace{1pt} &amp;\mbox{min}_{x}
+\hspace{1pt} &amp; 1/2||C⋅x - d||_2^2 \\
+\hspace{1pt} &amp; &amp; x \geq 0 \\
\end{eqnarray}
</latex>
</para>
<para>
-The routine calls Ipopt for solving the nonnegative least-squares curve fitting problems, Ipopt is a library written in C++.
+lsqlin calls Ipopt, an optimization library written in C++, to solve the nonnegative least-squares curve fitting problem.
+ </para>
+ <para>
+The options should be defined as type "list" and consist of the following fields:
+</para>
+ <para>
+options= list("MaxIter", [---], "CpuTime", [---]);
</para>
<para>
-The options allows the user to set various parameters of the Optimization problem.
-It should be defined as type "list" and contains the following fields.
<itemizedlist>
-<listitem>Syntax : options= list("MaxIter", [---], "CpuTime", [---]);</listitem>
-<listitem>MaxIter : a Scalar, containing the Maximum Number of Iteration that the solver should take.</listitem>
-<listitem>CpuTime : a Scalar, containing the Maximum amount of CPU Time that the solver should take.</listitem>
-<listitem>Default Values : options = list("MaxIter", [3000], "CpuTime", [600]);</listitem>
+<listitem>MaxIter : A Scalar, specifying the maximum number of iterations that the solver should take.</listitem>
+<listitem>CpuTime : A Scalar, specifying the maximum amount of CPU time in seconds that the solver should take.</listitem>
</itemizedlist>
</para>
<para>
-The exitflag allows to know the status of the optimization which is given back by Ipopt.
+ The default values for the various items are given as:
+ </para>
+ <para>
+options = list("MaxIter", [3000], "CpuTime", [600]);
+ </para>
+ <para>
+The exitflag allows the user to know the status of the optimization which is returned by Ipopt. The values it can take and what they indicate is described below:
<itemizedlist>
-<listitem>exitflag=0 : Optimal Solution Found </listitem>
-<listitem>exitflag=1 : Maximum Number of Iterations Exceeded. Output may not be optimal.</listitem>
-<listitem>exitflag=2 : Maximum CPU Time exceeded. Output may not be optimal.</listitem>
-<listitem>exitflag=3 : Stop at Tiny Step.</listitem>
-<listitem>exitflag=4 : Solved To Acceptable Level.</listitem>
-<listitem>exitflag=5 : Converged to a point of local infeasibility.</listitem>
+<listitem> 0 : Optimal Solution Found </listitem>
+<listitem> 1 : Maximum Number of Iterations Exceeded. Output may not be optimal.</listitem>
+<listitem> 2 : Maximum amount of CPU Time exceeded. Output may not be optimal.</listitem>
+<listitem> 3 : Stop at Tiny Step.</listitem>
+<listitem> 4 : Solved To Acceptable Level.</listitem>
+<listitem> 5 : Converged to a point of local infeasibility.</listitem>
</itemizedlist>
</para>
<para>
-For more details on exitflag see the ipopt documentation, go to http://www.coin-or.org/Ipopt/documentation/
+For more details on exitflag, see the Ipopt documentation which can be found on http://www.coin-or.org/Ipopt/documentation/
</para>
- <para>
-The output data structure contains detailed informations about the optimization process.
-It has type "struct" and contains the following fields.
+ <para>
+The output data structure contains detailed information about the optimization process.
+It is of type "struct" and contains the following fields.
<itemizedlist>
-<listitem>output.iterations: The number of iterations performed during the search</listitem>
+<listitem>output.iterations: The number of iterations performed.</listitem>
<listitem>output.constrviolation: The max-norm of the constraint violation.</listitem>
</itemizedlist>
</para>
- <para>
-The lambda data structure contains the Lagrange multipliers at the end
-of optimization. In the current version the values are returned only when the the solution is optimal.
+ <para>
+The lambda data structure contains the Lagrange multipliers at the end of optimization. In the current version, the values are returned only when the the solution is optimal.
It has type "struct" and contains the following fields.
<itemizedlist>
<listitem>lambda.lower: The Lagrange multipliers for the lower bound constraints.</listitem>
@@ -114,11 +128,35 @@ It has type "struct" and contains the following fields.
<para>
</para>
</refsection>
-
+<para>
+A few examples displaying the various functionalities of lsqnonneg have been provided below. You will find a series of problems and the appropriate code snippets to solve them.
+ </para>
<refsection>
- <title>Examples</title>
+ <title>Example</title>
+ <para>
+ We begin with a simple objective function.
+ </para>
+ <para>
+<latex>
+\begin{eqnarray}
+\mbox{min}_{x} 1/2||C⋅x - d||_2^2 \\
+\end{eqnarray}
+\\
+\text{Where C⋅x - d = }\:\begin{cases}
+\begin{eqnarray}
+x_{1} + x_{2} + x_{3} - 89\\
+x_{1} + x_{2} - 67\\
+x_{2} + x_{3} - 53\\
+x_{1} - 35\\
+x_{3} - 20
+\end{eqnarray}
+\end{cases}
+</latex>
+ </para>
+ <para>
+ </para>
<programlisting role="example"><![CDATA[
-// A basic lsqnonneg problem
+// Example 1: A basic lsqnonneg problem
C = [1 1 1;
1 1 0;
0 1 1;
@@ -134,6 +172,30 @@ d = [89;
</refsection>
<refsection>
+ <title>Example</title>
+ <para>
+ In this example, we further enhance the functionality of qpipopt by setting input options. This provides us with the ability to control the solver parameters such as the maximum number of solver iterations and the max. CPU time allowed for the computation.
+ </para>
+ <para>
+ </para>
+ <programlisting role="example"><![CDATA[
+// Example 2: A basic lsqnonneg problem with solver options.
+C = [1 1 1;
+1 1 0;
+0 1 1;
+1 0 0;
+0 0 1]
+d = [89;
+67;
+53;
+35;
+20;]
+options = list("MaxIter", [5000], "CpuTime", [1000]);
+[xopt,resnorm,residual,exitflag,output,lambda] = lsqnonneg(C,d,options)
+ ]]></programlisting>
+</refsection>
+
+<refsection>
<title>Authors</title>
<simplelist type="vert">
<member>Harpreet Singh</member>
diff --git a/help/en_US/master_help.xml b/help/en_US/master_help.xml
index 9ee0e95..61a97a6 100644
--- a/help/en_US/master_help.xml
+++ b/help/en_US/master_help.xml
@@ -1,77 +1,83 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book [
<!--Begin Entities-->
-<!ENTITY a92eced2aa34d57e217f07f2fabc26015 SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/fgoalattain.xml">
-<!ENTITY af80e0067cc98fa7c43cd2eba2f35c3ed SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/fminbnd.xml">
-<!ENTITY a509a9124674982a1290c749742e9e967 SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/fmincon.xml">
-<!ENTITY ac53013fb2994321eb9111fe3659619da SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/fminimax.xml">
-<!ENTITY a39dbc3631556ef691d9c72fa40eedb23 SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/fminunc.xml">
-<!ENTITY a026dada486834a1daad95c67e01b47c8 SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/linprog.xml">
-<!ENTITY a2c9be5aa4d1584f00755b3f1e2646be0 SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/lsqlin.xml">
-<!ENTITY a34c8973744bf6bb1d379121abf614ab1 SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/lsqnonlin.xml">
-<!ENTITY a91da8531563ac42d888f1a374eb06bcf SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/lsqnonneg.xml">
-<!ENTITY a04ba8859261000cce094f4c6a2a7debb SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/qpipopt.xml">
-<!ENTITY acb9324f64e9a65fb87ce330b5f7adfac SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/qpipoptmat.xml">
-<!ENTITY a7b01b92c2c653f07ac6e8fc0c1ec3fa9 SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/symphony.xml">
-<!ENTITY a91dadea5918828de94a4845c2ad3cbe5 SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/symphonymat.xml">
-<!ENTITY a299b635b31e2db70864d304bb5bceaec SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/Symphony Native Function/sym_addConstr.xml">
-<!ENTITY a3c37159c7ab704bd66abf5648f295468 SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/Symphony Native Function/sym_addVar.xml">
-<!ENTITY a085eae9f22effcadae84f3a0e8e2fc75 SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/Symphony Native Function/sym_close.xml">
-<!ENTITY a570e4c44a691678f230892fe02ca2b51 SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/Symphony Native Function/sym_deleteConstrs.xml">
-<!ENTITY acae11d784b796c42c7af62d71d03bf57 SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/Symphony Native Function/sym_deleteVars.xml">
-<!ENTITY a7e224d80b9ac6726352e5230a0908db9 SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/Symphony Native Function/sym_getConstrActivity.xml">
-<!ENTITY a088faceaed3d1bc6a75143bd16aae9e8 SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/Symphony Native Function/sym_getConstrLower.xml">
-<!ENTITY a29b8c6fa5ef0455b5cd6c096ab02394e SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/Symphony Native Function/sym_getConstrRange.xml">
-<!ENTITY ac65519a5c3a12f415702f36d56c06b7a SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/Symphony Native Function/sym_getConstrSense.xml">
-<!ENTITY aee04edd2012fe6b8befe0f131481652b SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/Symphony Native Function/sym_getConstrUpper.xml">
-<!ENTITY a2c9633d776f1ad4163beb33f0641d12a SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/Symphony Native Function/sym_getDblParam.xml">
-<!ENTITY a94736872415541e800b4cac737552cd1 SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/Symphony Native Function/sym_getInfinity.xml">
-<!ENTITY a1bc19dc158a31636a939b2432c8a756b SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/Symphony Native Function/sym_getIntParam.xml">
-<!ENTITY ac2e23ef5f086c6453ecabe7a751b54c2 SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/Symphony Native Function/sym_getIterCount.xml">
-<!ENTITY abcd5cea99a5a2d7dcf083cf71cadcdc2 SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/Symphony Native Function/sym_getMatrix.xml">
-<!ENTITY a8971ebf56653b9c834f7fddb337fcf5f SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/Symphony Native Function/sym_getNumConstr.xml">
-<!ENTITY a6fe61e93e31da551b2f5b4de11f1de76 SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/Symphony Native Function/sym_getNumElements.xml">
-<!ENTITY a101e2ec4202f07d6e865a0e3dacec8ff SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/Symphony Native Function/sym_getNumVar.xml">
-<!ENTITY a601c04c4055b06419e9053e32fa7d634 SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/Symphony Native Function/sym_getObjCoeff.xml">
-<!ENTITY a0ff380cbe9c313ce15abf3d4d7e936d6 SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/Symphony Native Function/sym_getObjSense.xml">
-<!ENTITY a3372a734bcc94354b2828efc1d6a656b SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/Symphony Native Function/sym_getObjVal.xml">
-<!ENTITY aa598e28250e5b02ca42d75d425f4cb1d SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/Symphony Native Function/sym_getPrimalBound.xml">
-<!ENTITY aeed0c1022d63f46f70b51de305af7216 SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/Symphony Native Function/sym_getRhs.xml">
-<!ENTITY a8a0b36f0d54c5eb6a72c1faf3c83a337 SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/Symphony Native Function/sym_getStatus.xml">
-<!ENTITY abcffa91be0617e9225553ba3bff73bc9 SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/Symphony Native Function/sym_getStrParam.xml">
-<!ENTITY a803047e8a099a6922fd3f8ad3465cc20 SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/Symphony Native Function/sym_getVarLower.xml">
-<!ENTITY acc519135c27808c7384b63a5d02ce151 SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/Symphony Native Function/sym_getVarSoln.xml">
-<!ENTITY acec448eb5171fee866bad26b90c4d940 SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/Symphony Native Function/sym_getVarUpper.xml">
-<!ENTITY aace91ff92c71938d3a078c25f14bcd12 SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/Symphony Native Function/sym_isAbandoned.xml">
-<!ENTITY a08fa5121c2a1da6a3403c685a4440045 SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/Symphony Native Function/sym_isBinary.xml">
-<!ENTITY afc88c6731d2a13689d0386323dabaf1f SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/Symphony Native Function/sym_isContinuous.xml">
-<!ENTITY abbd5e696c29a743c5e8b2919850023d9 SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/Symphony Native Function/sym_isEnvActive.xml">
-<!ENTITY ad42100b84e76d682d84f78e47074ce8f SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/Symphony Native Function/sym_isInfeasible.xml">
-<!ENTITY a207bfa75b9fecbe13ee7c72de67d3e84 SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/Symphony Native Function/sym_isInteger.xml">
-<!ENTITY a2b8e2f18c416c9b940d0727b56280a64 SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/Symphony Native Function/sym_isIterLimitReached.xml">
-<!ENTITY a903f3bd7f43b818c64c93de95f4a77d4 SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/Symphony Native Function/sym_isOptimal.xml">
-<!ENTITY ac92a4e41e3a85aea1ebd7d34b93847cd SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/Symphony Native Function/sym_isTargetGapAchieved.xml">
-<!ENTITY ac7f125c90e7b2a8ef81f2146a8412b86 SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/Symphony Native Function/sym_isTimeLimitReached.xml">
-<!ENTITY a8ea073f61c1f35277fca99adeb5ddfdd SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/Symphony Native Function/sym_loadMPS.xml">
-<!ENTITY a4080158aa253bb7f481329789c4694bf SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/Symphony Native Function/sym_loadProblem.xml">
-<!ENTITY ae70309215de55c8b5303ddac915e748b SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/Symphony Native Function/sym_loadProblemBasic.xml">
-<!ENTITY afe518887e8a4b614af0c4f083853c3d9 SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/Symphony Native Function/sym_open.xml">
-<!ENTITY ac0da615fcbc12006669e51203f21e0ca SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/Symphony Native Function/sym_resetParams.xml">
-<!ENTITY a84c5e30ad3344cd01bcc8a2defcc9302 SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/Symphony Native Function/sym_setConstrLower.xml">
-<!ENTITY a3c1fb2ff727602439f279a49ab2c4f93 SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/Symphony Native Function/sym_setConstrType.xml">
-<!ENTITY af30ba120252b44132a7e6f980d278e35 SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/Symphony Native Function/sym_setConstrUpper.xml">
-<!ENTITY a74de3ec262039e36129db2247cd5a95c SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/Symphony Native Function/sym_setContinuous.xml">
-<!ENTITY a02950dff19641d3ab4775804986a2082 SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/Symphony Native Function/sym_setDblParam.xml">
-<!ENTITY a26995f0438c2be3d6825d7bc87dca338 SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/Symphony Native Function/sym_setIntParam.xml">
-<!ENTITY a07ff0bb9910cdd63e5f08fb85234a363 SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/Symphony Native Function/sym_setInteger.xml">
-<!ENTITY a6093e215e37e9307c9d0bc568c56192e SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/Symphony Native Function/sym_setObjCoeff.xml">
-<!ENTITY aec62fa64d07444036a1bc13d175cad3c SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/Symphony Native Function/sym_setObjSense.xml">
-<!ENTITY a5432a14d8d225d4a5ceb66505cc3787e SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/Symphony Native Function/sym_setPrimalBound.xml">
-<!ENTITY a67afd21ee0b9a70b1b895139c2f14be1 SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/Symphony Native Function/sym_setStrParam.xml">
-<!ENTITY aa1119c9d7197ec0756f502283db9ede4 SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/Symphony Native Function/sym_setVarLower.xml">
-<!ENTITY ab3460c49b7e2246f67cfecc58c0c2549 SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/Symphony Native Function/sym_setVarSoln.xml">
-<!ENTITY a4cc74dec0f5c92cbe95dfb00f3add455 SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/Symphony Native Function/sym_setVarUpper.xml">
-<!ENTITY a96423c1495815ea0b826925862c2d698 SYSTEM "/home/fossee/symphony-work/build/FOSSEE-Optimization-Toolbox-src/help/en_US/Symphony Native Function/sym_solve.xml">
+<!ENTITY ab9284536c34f12d9a4b19e56adf45677 SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/cbcintlinprog.xml">
+<!ENTITY a68027d14b445e9a80c99db037a9a92be SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/fgoalattain.xml">
+<!ENTITY abb3bc8ab225c144bcef1e6b6091a30bd SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/fminbnd.xml">
+<!ENTITY a79a5837d77e1f7d1362ab88658c83392 SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/fmincon.xml">
+<!ENTITY aba3a2c7b1d9d1b590e1e6cf026fbd61a SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/fminimax.xml">
+<!ENTITY afad5ce056fc44f6fd6eb37bc852d8f96 SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/fminunc.xml">
+<!ENTITY a04fefd69d8d71ae91022d6f5a5d13f78 SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/intfminbnd.xml">
+<!ENTITY a5eef5c052b75ccebb231247ee0327dde SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/intfmincon.xml">
+<!ENTITY ad01581a00a2951535c2e793a3d6260f3 SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/intfminimax.xml">
+<!ENTITY a51c29c904c23d3c07aed6440e4ace159 SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/intfminunc.xml">
+<!ENTITY ac8230bd6bc161d1752ee2842ab325ac6 SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/intqpipopt.xml">
+<!ENTITY ab9fc6f609f408425f85a8e0f745a08bf SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/linprog.xml">
+<!ENTITY af99df28f906bded1989ecff453073c23 SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/lsqlin.xml">
+<!ENTITY ae7d11486642d253d2305574e5e54ee4a SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/lsqnonlin.xml">
+<!ENTITY a2044c6efdcc70ec5f51c613c7e8615cb SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/lsqnonneg.xml">
+<!ENTITY a01347f2b72f552c083ad8c3f3359f5d3 SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/qpipopt.xml">
+<!ENTITY aaaebafd2c3bea7c08d2abc206ea3a7d1 SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/qpipoptmat.xml">
+<!ENTITY aea11a60fad412727127211b3ebfaf2e4 SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/symphony.xml">
+<!ENTITY abed85d66434b5f0119f94523d4a3d660 SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/symphonymat.xml">
+<!ENTITY a05c7f64336484a2e23add77c9d9022b7 SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/Symphony Native Function/sym_addConstr.xml">
+<!ENTITY aa739b30eee4e7459eb0ebf00b01961b0 SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/Symphony Native Function/sym_addVar.xml">
+<!ENTITY ab0a502fcbba1af672fde15c3c873b639 SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/Symphony Native Function/sym_close.xml">
+<!ENTITY a741865fb8dddad5596e74c712533a9a4 SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/Symphony Native Function/sym_deleteConstrs.xml">
+<!ENTITY ad183c147528b447765c54e547dbeeac3 SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/Symphony Native Function/sym_deleteVars.xml">
+<!ENTITY a6a9b8f1a50bf8cd9a3c47f095ea7c4b8 SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/Symphony Native Function/sym_getConstrActivity.xml">
+<!ENTITY a1e7d42e3aeb72c600115b0be6c9ab3b8 SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/Symphony Native Function/sym_getConstrLower.xml">
+<!ENTITY a0db28c738a343b84acdce023cdb7ae56 SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/Symphony Native Function/sym_getConstrRange.xml">
+<!ENTITY ad65783e767dea98c8c4c5a91bbc9e4bf SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/Symphony Native Function/sym_getConstrSense.xml">
+<!ENTITY a06b31c7f4efd1119ee2ae95a84b3de3f SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/Symphony Native Function/sym_getConstrUpper.xml">
+<!ENTITY ab828f28244a0c4c13a970cdcef047c2e SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/Symphony Native Function/sym_getDblParam.xml">
+<!ENTITY ab9ae57dc2ddf407cc0c6d60facb5cb53 SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/Symphony Native Function/sym_getInfinity.xml">
+<!ENTITY a82ca29677fb1fa4c516cb1cb83ddc119 SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/Symphony Native Function/sym_getIntParam.xml">
+<!ENTITY a1443fd0519f034d4fe7bf27d4d38b31d SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/Symphony Native Function/sym_getIterCount.xml">
+<!ENTITY a686a9686678d67f2a352e53644f51e76 SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/Symphony Native Function/sym_getMatrix.xml">
+<!ENTITY a390e3075826b9ad38d2d78463abe5d7b SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/Symphony Native Function/sym_getNumConstr.xml">
+<!ENTITY adf749c47a61ec5edd977fa85919c6238 SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/Symphony Native Function/sym_getNumElements.xml">
+<!ENTITY a5866c1ec3f7a5d6e7f7a72a8c724f2a9 SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/Symphony Native Function/sym_getNumVar.xml">
+<!ENTITY a4893fd129bc44100db23b71d2825be6a SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/Symphony Native Function/sym_getObjCoeff.xml">
+<!ENTITY a651e9b3021310fcd01a0d1262297b20b SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/Symphony Native Function/sym_getObjSense.xml">
+<!ENTITY aa585876ac4d5d9c221f6cd54d549db8c SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/Symphony Native Function/sym_getObjVal.xml">
+<!ENTITY a23acbb114837a0f734433705e5d49857 SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/Symphony Native Function/sym_getPrimalBound.xml">
+<!ENTITY ac8331f5af34d9542db493f60418cbb6f SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/Symphony Native Function/sym_getRhs.xml">
+<!ENTITY ad95811961591bf4c687d331e9c19744d SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/Symphony Native Function/sym_getStatus.xml">
+<!ENTITY adc1fd54b3ab0b8e430e54dcab5ec0a25 SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/Symphony Native Function/sym_getStrParam.xml">
+<!ENTITY a75f2c21ce7f5bc379a07a03e66cdea12 SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/Symphony Native Function/sym_getVarLower.xml">
+<!ENTITY ac29c6c4e37c5eb0766c97e485cf52fac SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/Symphony Native Function/sym_getVarSoln.xml">
+<!ENTITY abd44d8cfcb00ad99e765617d12438a7d SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/Symphony Native Function/sym_getVarUpper.xml">
+<!ENTITY a82b923786cf91c713bc2cd708f49bb83 SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/Symphony Native Function/sym_isAbandoned.xml">
+<!ENTITY a07e1c35ae4c965f382142faa5026e951 SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/Symphony Native Function/sym_isBinary.xml">
+<!ENTITY a13a19d34d6d5eb7adfe1ce80fec19ca4 SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/Symphony Native Function/sym_isContinuous.xml">
+<!ENTITY accaae6049397afbb8fd45fb1ce762520 SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/Symphony Native Function/sym_isEnvActive.xml">
+<!ENTITY a50941f781d7e7e034ccd6ad45c0bb5f6 SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/Symphony Native Function/sym_isInfeasible.xml">
+<!ENTITY a1297e87a951e88b8cb0787f15856dc2d SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/Symphony Native Function/sym_isInteger.xml">
+<!ENTITY aef7d004fae0b0ac903668eb119a970ff SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/Symphony Native Function/sym_isIterLimitReached.xml">
+<!ENTITY a7e63e4064a3f365abb6f849d4cea229f SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/Symphony Native Function/sym_isOptimal.xml">
+<!ENTITY a7bfe31f0625363eb632561638d969f1d SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/Symphony Native Function/sym_isTargetGapAchieved.xml">
+<!ENTITY a39468bb5debc5a92e0650f2e475c2a0f SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/Symphony Native Function/sym_isTimeLimitReached.xml">
+<!ENTITY a83c33e37fd4fb889dbd28ec80c5a5ca5 SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/Symphony Native Function/sym_loadMPS.xml">
+<!ENTITY add89e15c66000cc799e284ffeae7a462 SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/Symphony Native Function/sym_loadProblem.xml">
+<!ENTITY a2ba1fee690e20abdca1aac4320e2dd29 SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/Symphony Native Function/sym_loadProblemBasic.xml">
+<!ENTITY a98d658d26c3d5a2a73a2ba98c7617e7e SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/Symphony Native Function/sym_open.xml">
+<!ENTITY a2414f826d115af98b31c9a8f3a56480a SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/Symphony Native Function/sym_resetParams.xml">
+<!ENTITY ab2aac34bb9886065efb457f8981878aa SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/Symphony Native Function/sym_setConstrLower.xml">
+<!ENTITY a4b67668840689c40ca32faed5c9a4f52 SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/Symphony Native Function/sym_setConstrType.xml">
+<!ENTITY afed3335c161a93fc0aa582764cdd9b57 SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/Symphony Native Function/sym_setConstrUpper.xml">
+<!ENTITY ad3f807a30d917e7fc04394e8cefc087c SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/Symphony Native Function/sym_setContinuous.xml">
+<!ENTITY a4af497a490b80f35c1c280696804ebe4 SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/Symphony Native Function/sym_setDblParam.xml">
+<!ENTITY ad2f354d4c06af56d80f220116861d4d5 SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/Symphony Native Function/sym_setIntParam.xml">
+<!ENTITY afd30361d50546575df57b2719efc91ca SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/Symphony Native Function/sym_setInteger.xml">
+<!ENTITY aef5fc31a0b7274539dbbed6a356d8d05 SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/Symphony Native Function/sym_setObjCoeff.xml">
+<!ENTITY a44361568dd7888bbb77a1bf8b86de01b SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/Symphony Native Function/sym_setObjSense.xml">
+<!ENTITY a996b6e5a5e6319c2939b0a4257e6a789 SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/Symphony Native Function/sym_setPrimalBound.xml">
+<!ENTITY a53b5f5de97f2571acf03690e490e9c7b SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/Symphony Native Function/sym_setStrParam.xml">
+<!ENTITY a205a454c4dd602cb03509a3dffa2d53e SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/Symphony Native Function/sym_setVarLower.xml">
+<!ENTITY ab125c7e6154b1b102d40742bcc387bc8 SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/Symphony Native Function/sym_setVarSoln.xml">
+<!ENTITY a6217d836ddd417a9216dd106154409f6 SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/Symphony Native Function/sym_setVarUpper.xml">
+<!ENTITY a6fef794c74266e9488548c354ef54137 SYSTEM "/home/gg/Final1/FOSSEE-Optimization-toolbox-src/help/en_US/Symphony Native Function/sym_solve.xml">
<!--End Entities-->
]>
<book version="5.0-subset Scilab" xml:lang="en_US"
@@ -86,81 +92,87 @@
<title>FOSSEE Optimization Toolbox</title>
</info>
-<part xml:id='section_031bbc67ce78762a40093bfdff4eaa3b'>
+<part xml:id='section_44e1f57c5225357b5fe53cb5fad967e9'>
<title>FOSSEE Optimization Toolbox</title>
-&a92eced2aa34d57e217f07f2fabc26015;
-&af80e0067cc98fa7c43cd2eba2f35c3ed;
-&a509a9124674982a1290c749742e9e967;
-&ac53013fb2994321eb9111fe3659619da;
-&a39dbc3631556ef691d9c72fa40eedb23;
-&a026dada486834a1daad95c67e01b47c8;
-&a2c9be5aa4d1584f00755b3f1e2646be0;
-&a34c8973744bf6bb1d379121abf614ab1;
-&a91da8531563ac42d888f1a374eb06bcf;
-&a04ba8859261000cce094f4c6a2a7debb;
-&acb9324f64e9a65fb87ce330b5f7adfac;
-&a7b01b92c2c653f07ac6e8fc0c1ec3fa9;
-&a91dadea5918828de94a4845c2ad3cbe5;
-<chapter xml:id='section_316c7f5a42ba69316753082a567f2a1a'>
+&ab9284536c34f12d9a4b19e56adf45677;
+&a68027d14b445e9a80c99db037a9a92be;
+&abb3bc8ab225c144bcef1e6b6091a30bd;
+&a79a5837d77e1f7d1362ab88658c83392;
+&aba3a2c7b1d9d1b590e1e6cf026fbd61a;
+&afad5ce056fc44f6fd6eb37bc852d8f96;
+&a04fefd69d8d71ae91022d6f5a5d13f78;
+&a5eef5c052b75ccebb231247ee0327dde;
+&ad01581a00a2951535c2e793a3d6260f3;
+&a51c29c904c23d3c07aed6440e4ace159;
+&ac8230bd6bc161d1752ee2842ab325ac6;
+&ab9fc6f609f408425f85a8e0f745a08bf;
+&af99df28f906bded1989ecff453073c23;
+&ae7d11486642d253d2305574e5e54ee4a;
+&a2044c6efdcc70ec5f51c613c7e8615cb;
+&a01347f2b72f552c083ad8c3f3359f5d3;
+&aaaebafd2c3bea7c08d2abc206ea3a7d1;
+&aea11a60fad412727127211b3ebfaf2e4;
+&abed85d66434b5f0119f94523d4a3d660;
+<chapter xml:id='section_5fc7ef02a133896efbd190355314d3fc'>
<title>Symphony Native Functions</title>
-&a299b635b31e2db70864d304bb5bceaec;
-&a3c37159c7ab704bd66abf5648f295468;
-&a085eae9f22effcadae84f3a0e8e2fc75;
-&a570e4c44a691678f230892fe02ca2b51;
-&acae11d784b796c42c7af62d71d03bf57;
-&a7e224d80b9ac6726352e5230a0908db9;
-&a088faceaed3d1bc6a75143bd16aae9e8;
-&a29b8c6fa5ef0455b5cd6c096ab02394e;
-&ac65519a5c3a12f415702f36d56c06b7a;
-&aee04edd2012fe6b8befe0f131481652b;
-&a2c9633d776f1ad4163beb33f0641d12a;
-&a94736872415541e800b4cac737552cd1;
-&a1bc19dc158a31636a939b2432c8a756b;
-&ac2e23ef5f086c6453ecabe7a751b54c2;
-&abcd5cea99a5a2d7dcf083cf71cadcdc2;
-&a8971ebf56653b9c834f7fddb337fcf5f;
-&a6fe61e93e31da551b2f5b4de11f1de76;
-&a101e2ec4202f07d6e865a0e3dacec8ff;
-&a601c04c4055b06419e9053e32fa7d634;
-&a0ff380cbe9c313ce15abf3d4d7e936d6;
-&a3372a734bcc94354b2828efc1d6a656b;
-&aa598e28250e5b02ca42d75d425f4cb1d;
-&aeed0c1022d63f46f70b51de305af7216;
-&a8a0b36f0d54c5eb6a72c1faf3c83a337;
-&abcffa91be0617e9225553ba3bff73bc9;
-&a803047e8a099a6922fd3f8ad3465cc20;
-&acc519135c27808c7384b63a5d02ce151;
-&acec448eb5171fee866bad26b90c4d940;
-&aace91ff92c71938d3a078c25f14bcd12;
-&a08fa5121c2a1da6a3403c685a4440045;
-&afc88c6731d2a13689d0386323dabaf1f;
-&abbd5e696c29a743c5e8b2919850023d9;
-&ad42100b84e76d682d84f78e47074ce8f;
-&a207bfa75b9fecbe13ee7c72de67d3e84;
-&a2b8e2f18c416c9b940d0727b56280a64;
-&a903f3bd7f43b818c64c93de95f4a77d4;
-&ac92a4e41e3a85aea1ebd7d34b93847cd;
-&ac7f125c90e7b2a8ef81f2146a8412b86;
-&a8ea073f61c1f35277fca99adeb5ddfdd;
-&a4080158aa253bb7f481329789c4694bf;
-&ae70309215de55c8b5303ddac915e748b;
-&afe518887e8a4b614af0c4f083853c3d9;
-&ac0da615fcbc12006669e51203f21e0ca;
-&a84c5e30ad3344cd01bcc8a2defcc9302;
-&a3c1fb2ff727602439f279a49ab2c4f93;
-&af30ba120252b44132a7e6f980d278e35;
-&a74de3ec262039e36129db2247cd5a95c;
-&a02950dff19641d3ab4775804986a2082;
-&a26995f0438c2be3d6825d7bc87dca338;
-&a07ff0bb9910cdd63e5f08fb85234a363;
-&a6093e215e37e9307c9d0bc568c56192e;
-&aec62fa64d07444036a1bc13d175cad3c;
-&a5432a14d8d225d4a5ceb66505cc3787e;
-&a67afd21ee0b9a70b1b895139c2f14be1;
-&aa1119c9d7197ec0756f502283db9ede4;
-&ab3460c49b7e2246f67cfecc58c0c2549;
-&a4cc74dec0f5c92cbe95dfb00f3add455;
-&a96423c1495815ea0b826925862c2d698;
+&a05c7f64336484a2e23add77c9d9022b7;
+&aa739b30eee4e7459eb0ebf00b01961b0;
+&ab0a502fcbba1af672fde15c3c873b639;
+&a741865fb8dddad5596e74c712533a9a4;
+&ad183c147528b447765c54e547dbeeac3;
+&a6a9b8f1a50bf8cd9a3c47f095ea7c4b8;
+&a1e7d42e3aeb72c600115b0be6c9ab3b8;
+&a0db28c738a343b84acdce023cdb7ae56;
+&ad65783e767dea98c8c4c5a91bbc9e4bf;
+&a06b31c7f4efd1119ee2ae95a84b3de3f;
+&ab828f28244a0c4c13a970cdcef047c2e;
+&ab9ae57dc2ddf407cc0c6d60facb5cb53;
+&a82ca29677fb1fa4c516cb1cb83ddc119;
+&a1443fd0519f034d4fe7bf27d4d38b31d;
+&a686a9686678d67f2a352e53644f51e76;
+&a390e3075826b9ad38d2d78463abe5d7b;
+&adf749c47a61ec5edd977fa85919c6238;
+&a5866c1ec3f7a5d6e7f7a72a8c724f2a9;
+&a4893fd129bc44100db23b71d2825be6a;
+&a651e9b3021310fcd01a0d1262297b20b;
+&aa585876ac4d5d9c221f6cd54d549db8c;
+&a23acbb114837a0f734433705e5d49857;
+&ac8331f5af34d9542db493f60418cbb6f;
+&ad95811961591bf4c687d331e9c19744d;
+&adc1fd54b3ab0b8e430e54dcab5ec0a25;
+&a75f2c21ce7f5bc379a07a03e66cdea12;
+&ac29c6c4e37c5eb0766c97e485cf52fac;
+&abd44d8cfcb00ad99e765617d12438a7d;
+&a82b923786cf91c713bc2cd708f49bb83;
+&a07e1c35ae4c965f382142faa5026e951;
+&a13a19d34d6d5eb7adfe1ce80fec19ca4;
+&accaae6049397afbb8fd45fb1ce762520;
+&a50941f781d7e7e034ccd6ad45c0bb5f6;
+&a1297e87a951e88b8cb0787f15856dc2d;
+&aef7d004fae0b0ac903668eb119a970ff;
+&a7e63e4064a3f365abb6f849d4cea229f;
+&a7bfe31f0625363eb632561638d969f1d;
+&a39468bb5debc5a92e0650f2e475c2a0f;
+&a83c33e37fd4fb889dbd28ec80c5a5ca5;
+&add89e15c66000cc799e284ffeae7a462;
+&a2ba1fee690e20abdca1aac4320e2dd29;
+&a98d658d26c3d5a2a73a2ba98c7617e7e;
+&a2414f826d115af98b31c9a8f3a56480a;
+&ab2aac34bb9886065efb457f8981878aa;
+&a4b67668840689c40ca32faed5c9a4f52;
+&afed3335c161a93fc0aa582764cdd9b57;
+&ad3f807a30d917e7fc04394e8cefc087c;
+&a4af497a490b80f35c1c280696804ebe4;
+&ad2f354d4c06af56d80f220116861d4d5;
+&afd30361d50546575df57b2719efc91ca;
+&aef5fc31a0b7274539dbbed6a356d8d05;
+&a44361568dd7888bbb77a1bf8b86de01b;
+&a996b6e5a5e6319c2939b0a4257e6a789;
+&a53b5f5de97f2571acf03690e490e9c7b;
+&a205a454c4dd602cb03509a3dffa2d53e;
+&ab125c7e6154b1b102d40742bcc387bc8;
+&a6217d836ddd417a9216dd106154409f6;
+&a6fef794c74266e9488548c354ef54137;
</chapter>
</part>
</book>
diff --git a/help/en_US/qpipopt.xml b/help/en_US/qpipopt.xml
index bf8be2a..2b79e7c 100644
--- a/help/en_US/qpipopt.xml
+++ b/help/en_US/qpipopt.xml
@@ -26,47 +26,52 @@
<synopsis>
xopt = qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB)
xopt = qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB,x0)
- xopt = qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB,x0,param)
+ xopt = qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB,x0,options)
[xopt,fopt,exitflag,output,lamda] = qpipopt( ... )
</synopsis>
</refsynopsisdiv>
<refsection>
- <title>Parameters</title>
+ <title>Input Parameters</title>
<variablelist>
<varlistentry><term>nbVar :</term>
- <listitem><para> a double, number of variables</para></listitem></varlistentry>
+ <listitem><para> A double, denoting the number of variables</para></listitem></varlistentry>
<varlistentry><term>nbCon :</term>
- <listitem><para> a double, number of constraints</para></listitem></varlistentry>
+ <listitem><para> A double, denoting the number of constraints</para></listitem></varlistentry>
<varlistentry><term>H :</term>
- <listitem><para> a symmetric matrix of double, represents coefficients of quadratic in the quadratic problem.</para></listitem></varlistentry>
+ <listitem><para> A symmetric matrix of doubles, representing the Hessian of the quadratic problem.</para></listitem></varlistentry>
<varlistentry><term>f :</term>
- <listitem><para> a vector of double, represents coefficients of linear in the quadratic problem</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, representing coefficients of the linear terms in the quadratic problem.</para></listitem></varlistentry>
<varlistentry><term>lb :</term>
- <listitem><para> a vector of double, contains lower bounds of the variables.</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, containing the lower bounds of the variables.</para></listitem></varlistentry>
<varlistentry><term>ub :</term>
- <listitem><para> a vector of double, contains upper bounds of the variables.</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, containing the upper bounds of the variables.</para></listitem></varlistentry>
<varlistentry><term>A :</term>
- <listitem><para> a matrix of double, contains the constraint matrix conLB ≤ A⋅x ≤ conUB.</para></listitem></varlistentry>
+ <listitem><para> A matrix of doubles, representing the constraint matrix in conLB ≤ A⋅x ≤ conUB.</para></listitem></varlistentry>
<varlistentry><term>conLB :</term>
- <listitem><para> a vector of double, contains lower bounds of the constraints conLB ≤ A⋅x ≤ conUB.</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, containing the lower bounds of the constraints conLB ≤ A⋅x ≤ conUB.</para></listitem></varlistentry>
<varlistentry><term>conUB :</term>
- <listitem><para> a vector of double, contains upper bounds of the constraints conLB ≤ A⋅x ≤ conUB.</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, containing the upper bounds of the constraints conLB ≤ A⋅x ≤ conUB.</para></listitem></varlistentry>
<varlistentry><term>x0 :</term>
- <listitem><para> a vector of double, contains initial guess of variables.</para></listitem></varlistentry>
- <varlistentry><term>param :</term>
- <listitem><para> a list containing the parameters to be set.</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, containing the starting values of variables of size (1 X n) or (n X 1) where 'n' is the number of variables.</para></listitem></varlistentry>
+ <varlistentry><term>options :</term>
+ <listitem><para> A list, containing the option for user to specify. See below for details.</para></listitem></varlistentry>
+ </variablelist>
+</refsection>
+<refsection>
+<title> Outputs</title>
+ <variablelist>
<varlistentry><term>xopt :</term>
- <listitem><para> a vector of double, the computed solution of the optimization problem.</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, containing the computed solution of the optimization problem.</para></listitem></varlistentry>
<varlistentry><term>fopt :</term>
- <listitem><para> a double, the value of the function at x.</para></listitem></varlistentry>
+ <listitem><para> A double, containing the value of the function at xopt.</para></listitem></varlistentry>
<varlistentry><term>exitflag :</term>
- <listitem><para> The exit status. See below for details.</para></listitem></varlistentry>
+ <listitem><para> An integer, containing the flag which denotes the reason for termination of algorithm. See below for details.</para></listitem></varlistentry>
<varlistentry><term>output :</term>
- <listitem><para> The structure consist of statistics about the optimization. See below for details.</para></listitem></varlistentry>
+ <listitem><para> A structure, containing the information about the optimization. See below for details.</para></listitem></varlistentry>
<varlistentry><term>lambda :</term>
- <listitem><para> The structure consist of the Lagrange multipliers at the solution of problem. See below for details.</para></listitem></varlistentry>
+ <listitem><para> A structure, containing the Lagrange multipliers of the lower bounds, upper bounds and constraints at the optimized point. See below for details.</para></listitem></varlistentry>
</variablelist>
</refsection>
@@ -78,51 +83,59 @@ Search the minimum of a constrained linear quadratic optimization problem specif
<para>
<latex>
\begin{eqnarray}
-&amp;\mbox{min}_{x}
-&amp; 1/2⋅x^T⋅H⋅x + f^T⋅x \\
-&amp; \text{subject to} &amp; conLB \leq A⋅x \leq conUB \\
-&amp; &amp; lb \leq x \leq ub \\
+\hspace{1pt} \mbox{min}_{x} 1/2⋅x^T⋅H⋅x + f^T⋅x \\
+\hspace{1pt} \text{Subjected to: } conLB \leq A⋅x \leq conUB \\
+\hspace{70pt} lb \leq x \leq ub \\
\end{eqnarray}
</latex>
</para>
<para>
-The routine calls Ipopt for solving the quadratic problem, Ipopt is a library written in C++.
+qpipopt calls Ipopt, an optimization library written in C++, to solve the optimization problem.
+ </para>
+ <para>
+<title>Options</title>
+The options allow the user to set various parameters of the Optimization problem. The syntax for the options is given by:
+ </para>
+ <para>
+options= list("MaxIter", [---], "CpuTime", [---], "GradObj", ---, "Hessian", ---, "GradCon", ---);
</para>
<para>
-The options allows the user to set various parameters of the Optimization problem.
-It should be defined as type "list" and contains the following fields.
+The options should be defined as type "list" and consist of the following fields:
<itemizedlist>
-<listitem>Syntax : options= list("MaxIter", [---], "CpuTime", [---]);</listitem>
-<listitem>MaxIter : a Scalar, containing the Maximum Number of Iteration that the solver should take.</listitem>
-<listitem>CpuTime : a Scalar, containing the Maximum amount of CPU Time that the solver should take.</listitem>
-<listitem>Default Values : options = list("MaxIter", [3000], "CpuTime", [600]);</listitem>
+<listitem>MaxIter : A Scalar, specifying the maximum number of iterations that the solver should take.</listitem>
+<listitem>CpuTime : A Scalar, specifying the maximum amount of CPU time in seconds that the solver should take.</listitem>
</itemizedlist>
</para>
<para>
-The exitflag allows to know the status of the optimization which is given back by Ipopt.
+ The default values for the various items are given as:
+ </para>
+ <para>
+options = list("MaxIter", [3000], "CpuTime", [600]);
+ </para>
+ <para>
+The exitflag allows the user to know the status of the optimization which is returned by Ipopt. The values it can take and what they indicate is described below:
<itemizedlist>
-<listitem>exitflag=0 : Optimal Solution Found </listitem>
-<listitem>exitflag=1 : Maximum Number of Iterations Exceeded. Output may not be optimal.</listitem>
-<listitem>exitflag=2 : Maximum CPU Time exceeded. Output may not be optimal.</listitem>
-<listitem>exitflag=3 : Stop at Tiny Step.</listitem>
-<listitem>exitflag=4 : Solved To Acceptable Level.</listitem>
-<listitem>exitflag=5 : Converged to a point of local infeasibility.</listitem>
+<listitem> 0 : Optimal Solution Found </listitem>
+<listitem> 1 : Maximum Number of Iterations Exceeded. Output may not be optimal.</listitem>
+<listitem> 2 : Maximum amount of CPU Time exceeded. Output may not be optimal.</listitem>
+<listitem> 3 : Stop at Tiny Step.</listitem>
+<listitem> 4 : Solved To Acceptable Level.</listitem>
+<listitem> 5 : Converged to a point of local infeasibility.</listitem>
</itemizedlist>
</para>
<para>
-For more details on exitflag see the ipopt documentation, go to http://www.coin-or.org/Ipopt/documentation/
+For more details on exitflag, see the Ipopt documentation which can be found on http://www.coin-or.org/Ipopt/documentation/
</para>
<para>
-The output data structure contains detailed informations about the optimization process.
-It has type "struct" and contains the following fields.
+The output data structure contains detailed information about the optimization process.
+It is of type "struct" and contains the following fields.
<itemizedlist>
-<listitem>output.iterations: The number of iterations performed during the search</listitem>
+<listitem>output.iterations: The number of iterations performed.</listitem>
<listitem>output.constrviolation: The max-norm of the constraint violation.</listitem>
</itemizedlist>
</para>
<para>
-The lambda data structure contains the Lagrange multipliers at the end
-of optimization. In the current version the values are returned only when the the solution is optimal.
+The lambda data structure contains the Lagrange multipliers at the end of optimization. In the current version, the values are returned only when the the solution is optimal.
It has type "struct" and contains the following fields.
<itemizedlist>
<listitem>lambda.lower: The Lagrange multipliers for the lower bound constraints.</listitem>
@@ -134,20 +147,122 @@ It has type "struct" and contains the following fields.
<para>
</para>
</refsection>
-
+<para>
+A few examples displaying the various functionalities of qpipopt have been provided below. You will find a series of problems and the appropriate code snippets to solve them.
+ </para>
<refsection>
- <title>Examples</title>
+ <title>Example</title>
+ <para>
+ We begin with a quadratic objective functions, subjected to two bounds for the functions, and two bounds for the constraints.
+ </para>
+ <para>
+Find x in R^2 such that it minimizes:
+ </para>
+ <para>
+ <latex>
+ \begin{eqnarray}
+\mbox{min}_{x} -8x_{1}^{2} -16x_{2}^{2} + x_{1} + 4x_{2} \\
+\end{eqnarray}
+\\
+\hspace{1pt} &amp; \text{Subjected to}\\
+ \begin{eqnarray}
+-\infty &amp;\leq 2x_{1} &amp;\leq 5\\
+-\infty &amp;\leq x_{2} &amp;\leq 3\\
+0 &amp;\leq x_{1} &amp;\leq \infty\\
+0 &amp;\leq x_{2} &amp;\leq \infty
+\end{eqnarray}
+</latex>
+</para>
+<para>
+</para>
<programlisting role="example"><![CDATA[
-//Ref : example 14 :
-//https://www.me.utexas.edu/~jensen/ORMM/supplements/methods/nlpmethod/S2_quadratic.pdf
-// min. -8*x1*x1 -16*x2*x2 + x1 + 4*x2
+//Example 1: Standard quadratic objective function
+//(Ref : example 14)https://www.me.utexas.edu/~jensen/ORMM/supplements/methods/nlpmethod/S2_quadratic.pdf
+// min. -8*x1^2 -16*x2^2 + x1 + 4*x2
// such that
// x1 + x2 <= 5,
// x1 <= 3,
// x1 >= 0,
// x2 >= 0
-H = [2 0
-0 8];
+H = [-16 0; 0 8];
+f = [-8; -16];
+A = [1 1;1 0];
+conUB = [5;3];
+conLB = [-%inf; -%inf];
+lb = [0; 0];
+ub = [%inf; %inf];
+nbVar = 2;
+nbCon = 2;
+[xopt,fopt,exitflag,output,lambda] = qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB)
+//Press ENTER to continue
+
+ ]]></programlisting>
+</refsection>
+
+<refsection>
+ <title>Example</title>
+ <para>
+ We build on the previous example by providing a starting point, to facilitate the computation.
+ </para>
+ <para>
+ <latex>
+ \begin{eqnarray}
+\mbox{min}_{x} -8x_{1}^{2} -16x_{2}^{2} + x_{1} + 4x_{2} \\
+\end{eqnarray}
+\\
+&amp; \text{Subjected to}\\
+ \begin{eqnarray}
+-\infty &amp;\leq x_{1} +x_{2} &amp;\leq 5\\
+-\infty &amp;\leq x_{1} &amp;\leq 3\\
+0 &amp;\leq x_{1} &amp;\leq \infty\\
+0 &amp;\leq x_{2} &amp;\leq \infty
+\end{eqnarray}
+</latex>
+</para>
+<para>
+</para>
+ <programlisting role="example"><![CDATA[
+//Example 2: Standard quadratic objective function with starting points
+//Find x in R^2 such that:
+H = [-16 0; 0 8];
+f = [-8; -16];
+A = [1 1;1 0];
+conUB = [5;3];
+conLB = [-%inf; -%inf];
+lb = [0; 0];
+ub = [%inf; %inf];
+nbVar = 2;
+nbCon = 2;
+x0 = [1 ;1];
+[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB,x0)
+ ]]></programlisting>
+</refsection>
+
+<refsection>
+ <title>Example</title>
+ <para>
+We can further enhance the functionality of qpipopt by setting input options. This provides us with the ability to control the solver parameters such as the maximum number of solver iterations and the max. CPU time allowed for the computation.
+ </para>
+ <para>
+ <latex>
+ \begin{eqnarray}
+\mbox{min}_{x} -8x_{1}^{2} -16x_{2}^{2} + x_{1} + 4x_{2} \\
+\end{eqnarray}
+\\
+&amp; \text{Subjected to}\\
+ \begin{eqnarray}
+-\infty &amp;\leq x_{1} +x_{2} &amp;\leq 5\\
+-\infty &amp;\leq x_{1} &amp;\leq 3\\
+0 &amp;\leq x_{1} &amp;\leq \infty\\
+0 &amp;\leq x_{2} &amp;\leq \infty
+\end{eqnarray}
+</latex>
+</para>
+<para>
+</para>
+ <programlisting role="example"><![CDATA[
+//Example 3: Standard quadratic objective function with starting points and options.
+H = [-16 0; 0 8];
f = [-8; -16];
A = [1 1;1 0];
conUB = [5;3];
@@ -156,6 +271,51 @@ lb = [0; 0];
ub = [%inf; %inf];
nbVar = 2;
nbCon = 2;
+x0 = [1 ;1];
+options = list("MaxIter", 300, "CpuTime", 100);
+[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB,x0,options)
+ ]]></programlisting>
+</refsection>
+<refsection>
+ <title>Example</title>
+ <para>
+Infeasible Problems: Find x in R^2 such that it minimizes:
+ </para>
+ <para>
+ <latex>
+ \begin{eqnarray}
+\mbox{min}_{x} -8x_{1}^{2} -16x_{2}^{2} + x_{1} + 4x_{2} \\
+\end{eqnarray}
+\\
+\hspace{1pt} &amp; \text{Subjected to}\\
+ \begin{eqnarray}
+-\infty &amp;\leq 2x_{1} &amp;\leq 5\\
+-\infty &amp;\leq x_{2} &amp;\leq 3\\
+4 &amp;\leq x_{1} &amp;\leq \infty\\
+0 &amp;\leq x_{2} &amp;\leq \infty
+\end{eqnarray}
+</latex>
+</para>
+<para>
+</para>
+ <programlisting role="example"><![CDATA[
+//Example 4: Infeasible Problem
+//(Ref : example 14)https://www.me.utexas.edu/~jensen/ORMM/supplements/methods/nlpmethod/S2_quadratic.pdf
+// min. -8*x1^2 -16*x2^2 + x1 + 4*x2
+// such that
+// x1 + x2 <= 5,
+// x1 <= 3,
+// x1 >= 0,
+// x2 >= 0
+H = [-16 0; 0 8];
+f = [-8; -16];
+A = [1 1;1 0]
+conUB = [5;3];
+conLB = [-%inf; -%inf];
+lb = [4; 0];
+ub = [%inf; %inf];
+nbVar = 2;
+nbCon = 2;
[xopt,fopt,exitflag,output,lambda] = qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB)
//Press ENTER to continue
@@ -163,25 +323,40 @@ nbCon = 2;
</refsection>
<refsection>
- <title>Examples</title>
+ <title>Example</title>
+ <para>
+Unbounded Problems: Find x in R^2 such that it minimizes:
+ </para>
+ <para>
+ <latex>
+ \begin{eqnarray}
+\mbox{min}_{x} -8x_{1}^{2} -16x_{2}^{2} + x_{1} + 4x_{2} \\
+\end{eqnarray}\\
+&amp; \text{Subjected to}\\
+ \begin{eqnarray}
+-\infty &amp;\leq 2x_{1} &amp;\geq -5\\
+-\infty &amp;\leq x_{2} &amp;\leq 3\\
+0 &amp;\leq x_{1} &amp;\leq \infty\\
+0 &amp;\leq x_{2} &amp;\leq \infty
+\end{eqnarray}
+</latex>
+</para>
+<para>
+</para>
<programlisting role="example"><![CDATA[
-//Find x in R^6 such that:
-A= [1,-1,1,0,3,1;
--1,0,-3,-4,5,6;
-2,5,3,0,1,0
-0,1,0,1,2,-1;
--1,0,2,1,1,0];
-conLB=[1;2;3;-%inf;-%inf];
-conUB = [1;2;3;-1;2.5];
-lb=[-1000;-10000; 0; -1000; -1000; -1000];
-ub=[10000; 100; 1.5; 100; 100; 1000];
-//and minimize 0.5*x'⋅H⋅x + f'⋅x with
-f=[1; 2; 3; 4; 5; 6]; H=eye(6,6);
-nbVar = 6;
-nbCon = 5;
-x0 = repmat(0,nbVar,1);
-param = list("MaxIter", 300, "CpuTime", 100);
-[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB,x0,param)
+//Example 5: Unbounded Problem
+//Find x in R^2 such that:
+H = [-16 0; 0 8];
+f = [-8; -16];
+A = [-2 0;0 1];
+conUB = [5;3];
+conLB = [-%inf; -%inf];
+lb = [0; 0];
+ub = [%inf; %inf];
+nbVar = 2;
+nbCon = 2;
+x0 = [1 ;1];
+[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB,x0)
]]></programlisting>
</refsection>
diff --git a/help/en_US/qpipoptmat.xml b/help/en_US/qpipoptmat.xml
index d8a9ac3..eee5dbf 100644
--- a/help/en_US/qpipoptmat.xml
+++ b/help/en_US/qpipoptmat.xml
@@ -36,38 +36,43 @@
</refsynopsisdiv>
<refsection>
- <title>Parameters</title>
+ <title>Input Parameters</title>
<variablelist>
<varlistentry><term>H :</term>
- <listitem><para> a symmetric matrix of double, represents coefficients of quadratic in the quadratic problem.</para></listitem></varlistentry>
+ <listitem><para> A symmetric matrix of doubles, representing the Hessian of the quadratic problem.</para></listitem></varlistentry>
<varlistentry><term>f :</term>
- <listitem><para> a vector of double, represents coefficients of linear in the quadratic problem</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, representing coefficients of the linear terms in the quadratic problem.</para></listitem></varlistentry>
<varlistentry><term>A :</term>
- <listitem><para> a matrix of double, represents the linear coefficients in the inequality constraints A⋅x ≤ b.</para></listitem></varlistentry>
+ <listitem><para> A matrix of doubles, containing the coefficients of linear inequality constraints of size (m X n) where 'm' is the number of linear inequality constraints.</para></listitem></varlistentry>
<varlistentry><term>b :</term>
- <listitem><para> a vector of double, represents the linear coefficients in the inequality constraints A⋅x ≤ b.</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, related to 'A' and containing the the Right hand side equation of the linear inequality constraints of size (m X 1).</para></listitem></varlistentry>
<varlistentry><term>Aeq :</term>
- <listitem><para> a matrix of double, represents the linear coefficients in the equality constraints Aeq⋅x = beq.</para></listitem></varlistentry>
+ <listitem><para> A matrix of doubles, containing the coefficients of linear equality constraints of size (m1 X n) where 'm1' is the number of linear equality constraints.</para></listitem></varlistentry>
<varlistentry><term>beq :</term>
- <listitem><para> a vector of double, represents the linear coefficients in the equality constraints Aeq⋅x = beq.</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, related to 'Aeq' and containing the the Right hand side equation of the linear equality constraints of size (m1 X 1).</para></listitem></varlistentry>
<varlistentry><term>lb :</term>
- <listitem><para> a vector of double, contains lower bounds of the variables.</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, containing the lower bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables.</para></listitem></varlistentry>
<varlistentry><term>ub :</term>
- <listitem><para> a vector of double, contains upper bounds of the variables.</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, containing the upper bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables.</para></listitem></varlistentry>
<varlistentry><term>x0 :</term>
- <listitem><para> a vector of double, contains initial guess of variables.</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, containing the starting values of variables of size (1 X n) or (n X 1) where 'n' is the number of variables.</para></listitem></varlistentry>
<varlistentry><term>param :</term>
- <listitem><para> a list containing the parameters to be set.</para></listitem></varlistentry>
+ <listitem><para> A list, containing the option for user to specify. See below for details.</para></listitem></varlistentry>
+ </variablelist>
+</refsection>
+<refsection>
+<title> Outputs</title>
+ <variablelist>
<varlistentry><term>xopt :</term>
- <listitem><para> a vector of double, the computed solution of the optimization problem.</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, containing the computed solution of the optimization problem.</para></listitem></varlistentry>
<varlistentry><term>fopt :</term>
- <listitem><para> a double, the value of the function at x.</para></listitem></varlistentry>
+ <listitem><para> A double, containing the value of the function at xopt.</para></listitem></varlistentry>
<varlistentry><term>exitflag :</term>
- <listitem><para> The exit status. See below for details.</para></listitem></varlistentry>
+ <listitem><para> An integer, containing the flag which denotes the reason for termination of algorithm. See below for details.</para></listitem></varlistentry>
<varlistentry><term>output :</term>
- <listitem><para> The structure consist of statistics about the optimization. See below for details.</para></listitem></varlistentry>
+ <listitem><para> A structure, containing the information about the optimization. See below for details.</para></listitem></varlistentry>
<varlistentry><term>lambda :</term>
- <listitem><para> The structure consist of the Lagrange multipliers at the solution of problem. See below for details.</para></listitem></varlistentry>
+ <listitem><para> A structure, containing the Lagrange multipliers of the lower bounds, upper bounds and constraints at the optimized point. See below for details.</para></listitem></varlistentry>
</variablelist>
</refsection>
@@ -79,52 +84,63 @@ Search the minimum of a constrained linear quadratic optimization problem specif
<para>
<latex>
\begin{eqnarray}
-&amp;\mbox{min}_{x}
-&amp; 1/2⋅x^T⋅H⋅x + f^T⋅x \\
-&amp; \text{subject to} &amp; A⋅x \leq b \\
-&amp; &amp; Aeq⋅x = beq \\
-&amp; &amp; lb \leq x \leq ub \\
+\hspace{1pt} &amp;\mbox{min}_{x}
+\hspace{1pt} &amp; 1/2⋅x^T⋅H⋅x + f^T⋅x \\
+\hspace{1pt} &amp; \text{Subjected to: } &amp; A⋅x \leq b \\
+\end{eqnarray}\\
+\begin{eqnarray}
+\hspace{115pt} &amp; Aeq⋅x = beq \\
+\hspace{115pt} &amp; lb \leq x \leq ub \\
\end{eqnarray}
</latex>
</para>
<para>
-The routine calls Ipopt for solving the quadratic problem, Ipopt is a library written in C++.
+qpipoptmat calls Ipopt, an optimization library written in C++, to solve the optimization problem.
+ </para>
+ <title>Options</title>
+ <para>
+The options allow the user to set various parameters of the Optimization problem. The syntax for the options is given by:
+ </para>
+ <para>
+options= list("MaxIter", [---], "CpuTime", [---], "GradObj", ---, "Hessian", ---, "GradCon", ---);
</para>
<para>
-The options allows the user to set various parameters of the Optimization problem.
-It should be defined as type "list" and contains the following fields.
+The options should be defined as type "list" and consist of the following fields:
<itemizedlist>
-<listitem>Syntax : options= list("MaxIter", [---], "CpuTime", [---]);</listitem>
-<listitem>MaxIter : a Scalar, containing the Maximum Number of Iteration that the solver should take.</listitem>
-<listitem>CpuTime : a Scalar, containing the Maximum amount of CPU Time that the solver should take.</listitem>
-<listitem>Default Values : options = list("MaxIter", [3000], "CpuTime", [600]);</listitem>
+<listitem>MaxIter : A Scalar, specifying the maximum number of iterations that the solver should take.</listitem>
+<listitem>CpuTime : A Scalar, specifying the maximum amount of CPU time in seconds that the solver should take.</listitem>
</itemizedlist>
</para>
<para>
-The exitflag allows to know the status of the optimization which is given back by Ipopt.
+ The default values for the various items are given as:
+ </para>
+ <para>
+options = list("MaxIter", [3000], "CpuTime", [600]);
+ </para>
+ <para>
+The exitflag allows the user to know the status of the optimization which is returned by Ipopt. The values it can take and what they indicate is described below:
<itemizedlist>
-<listitem>exitflag=0 : Optimal Solution Found </listitem>
-<listitem>exitflag=1 : Maximum Number of Iterations Exceeded. Output may not be optimal.</listitem>
-<listitem>exitflag=2 : Maximum CPU Time exceeded. Output may not be optimal.</listitem>
-<listitem>exitflag=3 : Stop at Tiny Step.</listitem>
-<listitem>exitflag=4 : Solved To Acceptable Level.</listitem>
-<listitem>exitflag=5 : Converged to a point of local infeasibility.</listitem>
+<listitem> 0 : Optimal Solution Found </listitem>
+<listitem> 1 : Maximum Number of Iterations Exceeded. Output may not be optimal.</listitem>
+<listitem> 2 : Maximum amount of CPU Time exceeded. Output may not be optimal.</listitem>
+<listitem> 3 : Stop at Tiny Step.</listitem>
+<listitem> 4 : Solved To Acceptable Level.</listitem>
+<listitem> 5 : Converged to a point of local infeasibility.</listitem>
</itemizedlist>
</para>
<para>
-For more details on exitflag see the ipopt documentation, go to http://www.coin-or.org/Ipopt/documentation/
+For more details on exitflag, see the Ipopt documentation which can be found on http://www.coin-or.org/Ipopt/documentation/
</para>
- <para>
-The output data structure contains detailed informations about the optimization process.
-It has type "struct" and contains the following fields.
+ <para>
+The output data structure contains detailed information about the optimization process.
+It is of type "struct" and contains the following fields.
<itemizedlist>
-<listitem>output.iterations: The number of iterations performed during the search</listitem>
+<listitem>output.iterations: The number of iterations performed.</listitem>
<listitem>output.constrviolation: The max-norm of the constraint violation.</listitem>
</itemizedlist>
</para>
<para>
-The lambda data structure contains the Lagrange multipliers at the end
-of optimization. In the current version the values are returned only when the the solution is optimal.
+The lambda data structure contains the Lagrange multipliers at the end of optimization. In the current version, the values are returned only when the the solution is optimal.
It has type "struct" and contains the following fields.
<itemizedlist>
<listitem>lambda.lower: The Lagrange multipliers for the lower bound constraints.</listitem>
@@ -137,52 +153,240 @@ It has type "struct" and contains the following fields.
</para>
</refsection>
+
<refsection>
- <title>Examples</title>
+ <title>Example</title>
+ <para>
+ Here we solve a simple objective function.
+ </para>
+ <para>
+Find x in R^6 such that it minimizes:
+ </para>
+ <para>
+<latex>
+\begin{eqnarray}
+\mbox{min}_{x}\ f(x) &amp;= \dfrac{1}{2}x'\boldsymbol{\cdot} H\boldsymbol{\cdot}x + f' \boldsymbol{\cdot} x\\
+\text{Where: } H &amp;= I_{6}\\
+F &amp;=
+\begin{array}{cccccc}
+[1 &amp; 2 &amp; 3 &amp; 4 &amp; 5 &amp; 6]
+\end{array}
+\end{eqnarray}
+</latex>
+ </para>
+ <para>
+
+ </para>
<programlisting role="example"><![CDATA[
-//Ref : example 14 :
-//https://www.me.utexas.edu/~jensen/ORMM/supplements/methods/nlpmethod/S2_quadratic.pdf
-// min. -8*x1*x1 -16*x2*x2 + x1 + 4*x2
-// such that
-// x1 + x2 <= 5,
-// x1 <= 3,
-// x1 >= 0,
-// x2 >= 0
-H = [2 0
-0 8];
-f = [-8; -16];
-A = [1 1;1 0];
-b = [5;3];
-lb = [0; 0];
-ub = [%inf; %inf];
-[xopt,fopt,exitflag,output,lambda] = qpipoptmat(H,f,A,b,[],[],lb,ub)
-// Press ENTER to continue
+//Example 1:
+//Minimize 0.5*x'*H*x + f'*x with
+f=[1; 2; 3; 4; 5; 6]; H=eye(6,6);
+[xopt,fopt,exitflag,output,lambda]=qpipoptmat(H,f)
+ ]]></programlisting>
+</refsection>
+<refsection>
+ <title>Example</title>
+ We proceed to add simple linear inequality constraints.
+
+<para>
+<latex>
+\begin{eqnarray}
+\hspace{1pt} &amp;x_{2} + x_{4}+ 2x_{5} - x_{6}&amp;\leq -1\\
+\hspace{1pt} &amp;-x_{1} + 2x_{3} + x_{4} + x_{5}&amp;\leq 2.5\\
+\end{eqnarray}
+</latex>
+ </para>
+ <para>
+
+ </para>
+ <programlisting role="example"><![CDATA[
+//Example 2:
+f=[1; 2; 3; 4; 5; 6]; H=eye(6,6);
+//Inequality constraints
+A= [0,1,0,1,2,-1;
+-1,0,2,1,1,0];
+b = [-1; 2.5];
+[xopt,fopt,exitflag,output,lambda]=qpipoptmat(H,f,A,b)
]]></programlisting>
</refsection>
<refsection>
- <title>Examples</title>
+ <title>Example</title>
+ Here we build up on the previous example by adding linear equality constraints.
+We add the following constraints to the problem specified above:
+<para>
+<latex>
+\begin{eqnarray}
+\hspace{1pt} &amp;x_{1} - x_{2} + x_{3} + 3x_{5} + x_{6}&amp;= 1 \\
+\hspace{1pt} &amp;-x_{1} + 2x_{3}+ x_{4} + x_{5}&amp;= 2\\
+\hspace{1pt} &amp;2x_{1} + 5x_{2}+ 3x_{3} + x_{5}&amp;= 3
+\end{eqnarray}
+</latex>
+ </para>
+ <para>
+
+ </para>
<programlisting role="example"><![CDATA[
-//Find x in R^6 such that:
+//Example 3:
+//Minimize 0.5*x'*H*x + f'*x with
+f=[1; 2; 3; 4; 5; 6]; H=eye(6,6);
+//Inequality constraints
+A= [0,1,0,1,2,-1;
+-1,0,2,1,1,0];
+b = [-1; 2.5];
+//Equality constraints
+Aeq= [1,-1,1,0,3,1;
+-1,0,-3,-4,5,6;
+2,5,3,0,1,0];
+beq=[1; 2; 3];
+[xopt,fopt,exitflag,output,lambda]=qpipoptmat(H,f,A,b,Aeq,beq)
+ ]]></programlisting>
+</refsection>
+
+<refsection>
+<title>Example</title>
+<para>
+ In this example, we proceed to add the upper and lower bounds to the objective function.
+</para>
+<para>
+<latex>
+\begin{eqnarray}
+-1000 &amp;\leq x_{1} &amp;\leq 10000\\
+-10000 &amp;\leq x_{2} &amp;\leq 100\\
+0 &amp;\leq x_{3} &amp;\leq 1.5\\
+-1000 &amp;\leq x_{4} &amp;\leq 100\\
+-1000 &amp;\leq x_{5} &amp;\leq 100\\
+-1000 &amp;\leq x_{6} &amp;\leq 1000
+\end{eqnarray}
+</latex>
+ </para>
+ <para>
+
+ </para>
+ <programlisting role="example"><![CDATA[
+//Example 4:
+//Minimize 0.5*x'*H*x + f'*x with
+f=[1; 2; 3; 4; 5; 6]; H=eye(6,6);
+//Inequality constraints
+A= [0,1,0,1,2,-1;
+-1,0,2,1,1,0];
+b = [-1; 2.5];
+//Equality constraints
Aeq= [1,-1,1,0,3,1;
-1,0,-3,-4,5,6;
2,5,3,0,1,0];
beq=[1; 2; 3];
+//Variable bounds
+lb=[-1000; -10000; 0; -1000; -1000; -1000];
+ub=[10000; 100; 1.5; 100; 100; 1000];
+[xopt,fopt,exitflag,output,lambda]=qpipoptmat(H,f,A,b,Aeq,beq,lb,ub)
+ ]]></programlisting>
+</refsection>
+
+<refsection>
+ <title>Example</title>
+<para>
+In this example, we initialize the values of x to speed up the computation. We further enhance the functionality of qpipoptmat by setting input options.
+</para>
+<para>
+</para>
+ <programlisting role="example"><![CDATA[
+//Example 5:
+//Minimize 0.5*x'*H*x + f'*x with
+f=[1; 2; 3; 4; 5; 6]; H=eye(6,6);
+//Inequality constraints
A= [0,1,0,1,2,-1;
-1,0,2,1,1,0];
b = [-1; 2.5];
+//Equality constraints
+Aeq= [1,-1,1,0,3,1;
+-1,0,-3,-4,5,6;
+2,5,3,0,1,0];
+beq=[1; 2; 3];
+//Variable bounds
lb=[-1000; -10000; 0; -1000; -1000; -1000];
ub=[10000; 100; 1.5; 100; 100; 1000];
+//Initial guess and options
x0 = repmat(0,6,1);
-param = list("MaxIter", 300, "CpuTime", 100);
-//and minimize 0.5*x'*H*x + f'*x with
-f=[1; 2; 3; 4; 5; 6]; H=eye(6,6);
-[xopt,fopt,exitflag,output,lambda]=qpipoptmat(H,f,A,b,Aeq,beq,lb,ub,x0,param)
+options = list("MaxIter", 300, "CpuTime", 100);
+[xopt,fopt,exitflag,output,lambda]=qpipoptmat(H,f,A,b,Aeq,beq,lb,ub,x0,options)
]]></programlisting>
</refsection>
<refsection>
+<title>Example</title>
+Infeasible Problems: Find x in R^6 such that it minimizes the following objective function under the given constraints:
+<para>
+<latex>
+\begin{eqnarray}
+\hspace{70pt} &amp;x_{2} + x_{4}+ 2x_{5} - x_{6}&amp;\leq -1\\
+\hspace{70pt} &amp;-x_{1} + 2x_{3} + x_{4} + x_{5}&amp;\leq 2.5\\
+\hspace{70pt} &amp;x_{2} + x_{4}+ 2x_{5} - x_{6}&amp;= 4 \\
+\hspace{70pt} &amp;-x_{1} + 2x_{3}+ x_{4} + x_{5}&amp;= 2\\
+\\ \end{eqnarray}
+</latex>
+ </para>
+<para>
+</para>
+<programlisting role="example"><![CDATA[
+//Example 6:
+//Minimize 0.5*x'*H*x + f'*x with
+f=[1; 2; 3; 4; 5; 6]; H=eye(6,6);
+//Inequality constraints
+A= [0,1,0,1,2,-1;
+-1,0,2,1,1,0];
+b = [-1; 2.5];
+//Equality constraints
+Aeq= [0,1,0,1,2,-1;
+-1,0,-3,-4,5,6];
+beq=[4; 2];
+[xopt,fopt,exitflag,output,lambda]=qpipoptmat(H,f,A,b,Aeq,beq)
+]]></programlisting>
+</refsection>
+
+<refsection>
+ <title>Example</title>
+<para>
+Unbounded Problems: Find x in R^6 such that it minimizes the objective function used above under the following constraints:
+</para>
+<para>
+<latex>
+\begin{eqnarray}
+\mbox{min}_{x}\ f(x) &amp;= \dfrac{1}{2}x'\boldsymbol{\cdot} H\boldsymbol{\cdot}x + f' \boldsymbol{\cdot} x\\
+\text{Where H is specified below and}\\
+F &amp;=
+\begin{array}{cccccc}
+[1 &amp; 2 &amp; 3 &amp; 4 &amp; 5 &amp; 6]
+\end{array}
+\end{eqnarray}\\
+\text{Subjected to: }\\
+\begin{eqnarray}
+\hspace{70pt} &amp;x_{2} + x_{4}+ 2x_{5} - x_{6}&amp;\leq -1\\
+\hspace{70pt} &amp;-x_{1} + 2x_{3} + x_{4} + x_{5}&amp;\leq 2.5\\
+\hspace{70pt} &amp;x_{1} - x_{2} + x_{3} + 3x_{5} + x_{6}&amp;= 1 \\
+\hspace{70pt} &amp;-x_{1} + 2x_{3}+ x_{4} + x_{5}&amp;= 2\\
+\\ \end{eqnarray}
+</latex>
+ </para>
+<para>
+</para>
+ <programlisting role="example"><![CDATA[
+//Example 7:
+//Minimize 0.5*x'*H*x + f'*x with
+f=[1; 2; 3; 4; 5; 6]; H=eye(6,6); H(1,1) = -1;
+//Inequality constraints
+A= [0,1,0,1,2,-1;
+-1,0,2,1,1,0];
+b = [-1; 2.5];
+//Equality constraints
+Aeq= [1,-1,1,0,3,1;
+-1,0,-3,-4,5,6];
+beq=[1; 2];
+[xopt,fopt,exitflag,output,lambda]=qpipoptmat(H,f,A,b,Aeq,beq)
+]]></programlisting>
+</refsection>
+<refsection>
<title>Authors</title>
<simplelist type="vert">
<member>Keyur Joshi, Saikiran, Iswarya, Harpreet Singh</member>
diff --git a/help/en_US/scilab_en_US_help/JavaHelpSearch/DOCS b/help/en_US/scilab_en_US_help/JavaHelpSearch/DOCS
index b43f2ae..326b5fa 100644
--- a/help/en_US/scilab_en_US_help/JavaHelpSearch/DOCS
+++ b/help/en_US/scilab_en_US_help/JavaHelpSearch/DOCS
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/JavaHelpSearch/DOCS.TAB b/help/en_US/scilab_en_US_help/JavaHelpSearch/DOCS.TAB
index 35ed0b4..73a30c4 100644
--- a/help/en_US/scilab_en_US_help/JavaHelpSearch/DOCS.TAB
+++ b/help/en_US/scilab_en_US_help/JavaHelpSearch/DOCS.TAB
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/JavaHelpSearch/OFFSETS b/help/en_US/scilab_en_US_help/JavaHelpSearch/OFFSETS
index ba26c01..4bf7996 100644
--- a/help/en_US/scilab_en_US_help/JavaHelpSearch/OFFSETS
+++ b/help/en_US/scilab_en_US_help/JavaHelpSearch/OFFSETS
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/JavaHelpSearch/POSITIONS b/help/en_US/scilab_en_US_help/JavaHelpSearch/POSITIONS
index cd3a00e..a9e0ecc 100644
--- a/help/en_US/scilab_en_US_help/JavaHelpSearch/POSITIONS
+++ b/help/en_US/scilab_en_US_help/JavaHelpSearch/POSITIONS
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/JavaHelpSearch/SCHEMA b/help/en_US/scilab_en_US_help/JavaHelpSearch/SCHEMA
index 51ab351..753c46a 100644
--- a/help/en_US/scilab_en_US_help/JavaHelpSearch/SCHEMA
+++ b/help/en_US/scilab_en_US_help/JavaHelpSearch/SCHEMA
@@ -1,2 +1,2 @@
JavaSearch 1.0
-TMAP bs=2048 rt=1 fl=-1 id1=1539 id2=1
+TMAP bs=2048 rt=1 fl=-1 id1=1665 id2=1
diff --git a/help/en_US/scilab_en_US_help/JavaHelpSearch/TMAP b/help/en_US/scilab_en_US_help/JavaHelpSearch/TMAP
index cc3bed1..ce2c60e 100644
--- a/help/en_US/scilab_en_US_help/JavaHelpSearch/TMAP
+++ b/help/en_US/scilab_en_US_help/JavaHelpSearch/TMAP
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/ScilabCaution.png b/help/en_US/scilab_en_US_help/ScilabCaution.png
index 8edb56e..231159a 100644
--- a/help/en_US/scilab_en_US_help/ScilabCaution.png
+++ b/help/en_US/scilab_en_US_help/ScilabCaution.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/ScilabEdit.png b/help/en_US/scilab_en_US_help/ScilabEdit.png
index e139988..ff0cca7 100644
--- a/help/en_US/scilab_en_US_help/ScilabEdit.png
+++ b/help/en_US/scilab_en_US_help/ScilabEdit.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/ScilabImportant.png b/help/en_US/scilab_en_US_help/ScilabImportant.png
index 3b51020..73931b2 100644
--- a/help/en_US/scilab_en_US_help/ScilabImportant.png
+++ b/help/en_US/scilab_en_US_help/ScilabImportant.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/ScilabNote.png b/help/en_US/scilab_en_US_help/ScilabNote.png
index ed46c3e..6607ece 100644
--- a/help/en_US/scilab_en_US_help/ScilabNote.png
+++ b/help/en_US/scilab_en_US_help/ScilabNote.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/ScilabTip.png b/help/en_US/scilab_en_US_help/ScilabTip.png
index ed46c3e..6607ece 100644
--- a/help/en_US/scilab_en_US_help/ScilabTip.png
+++ b/help/en_US/scilab_en_US_help/ScilabTip.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/ScilabWarning.png b/help/en_US/scilab_en_US_help/ScilabWarning.png
index 8edb56e..231159a 100644
--- a/help/en_US/scilab_en_US_help/ScilabWarning.png
+++ b/help/en_US/scilab_en_US_help/ScilabWarning.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_cbcintlinprog.xml_1.png b/help/en_US/scilab_en_US_help/_LaTeX_cbcintlinprog.xml_1.png
new file mode 100644
index 0000000..e3eba5b
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_cbcintlinprog.xml_1.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_cbcintlinprog.xml_2.png b/help/en_US/scilab_en_US_help/_LaTeX_cbcintlinprog.xml_2.png
new file mode 100644
index 0000000..29943d1
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_cbcintlinprog.xml_2.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_cbcintlinprog.xml_3.png b/help/en_US/scilab_en_US_help/_LaTeX_cbcintlinprog.xml_3.png
new file mode 100644
index 0000000..dbf16d2
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_cbcintlinprog.xml_3.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_cbcintlinprog.xml_4.png b/help/en_US/scilab_en_US_help/_LaTeX_cbcintlinprog.xml_4.png
new file mode 100644
index 0000000..82ce2cc
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_cbcintlinprog.xml_4.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_cbcintlinprog.xml_5.png b/help/en_US/scilab_en_US_help/_LaTeX_cbcintlinprog.xml_5.png
new file mode 100644
index 0000000..aae7855
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_cbcintlinprog.xml_5.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_cbcintlinprog.xml_6.png b/help/en_US/scilab_en_US_help/_LaTeX_cbcintlinprog.xml_6.png
new file mode 100644
index 0000000..68e6bb8
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_cbcintlinprog.xml_6.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_1.png b/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_1.png
index 7d7a4b6..3573add 100644
--- a/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_1.png
+++ b/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_1.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_10.png b/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_10.png
new file mode 100644
index 0000000..94584dd
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_10.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_2.png b/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_2.png
new file mode 100644
index 0000000..3573add
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_2.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_3.png b/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_3.png
new file mode 100644
index 0000000..08e675c
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_3.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_4.png b/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_4.png
new file mode 100644
index 0000000..b0987d2
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_4.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_5.png b/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_5.png
new file mode 100644
index 0000000..2de0e76
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_5.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_6.png b/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_6.png
new file mode 100644
index 0000000..52fa7ee
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_6.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_7.png b/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_7.png
new file mode 100644
index 0000000..3c07cf4
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_7.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_8.png b/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_8.png
new file mode 100644
index 0000000..6f85d47
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_8.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_9.png b/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_9.png
new file mode 100644
index 0000000..0e1062e
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_9.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_1.png b/help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_1.png
index 2634ce3..f43af1e 100644
--- a/help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_1.png
+++ b/help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_1.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_2.png b/help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_2.png
new file mode 100644
index 0000000..347aa1a
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_2.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_3.png b/help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_3.png
new file mode 100644
index 0000000..df17abe
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_3.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_4.png b/help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_4.png
new file mode 100644
index 0000000..7ab785c
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_4.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_5.png b/help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_5.png
new file mode 100644
index 0000000..516ce98
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_5.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_6.png b/help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_6.png
new file mode 100644
index 0000000..645166c
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_6.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_7.png b/help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_7.png
new file mode 100644
index 0000000..8a5be87
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_7.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_8.png b/help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_8.png
new file mode 100644
index 0000000..319c683
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_8.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_1.png b/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_1.png
index 07910ed..695054f 100644
--- a/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_1.png
+++ b/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_1.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_10.png b/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_10.png
new file mode 100644
index 0000000..7614aa9
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_10.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_11.png b/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_11.png
new file mode 100644
index 0000000..e9dc5f0
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_11.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_12.png b/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_12.png
new file mode 100644
index 0000000..1ecc0e6
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_12.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_2.png b/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_2.png
new file mode 100644
index 0000000..1d274b6
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_2.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_3.png b/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_3.png
new file mode 100644
index 0000000..52fa7ee
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_3.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_4.png b/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_4.png
new file mode 100644
index 0000000..3c07cf4
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_4.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_5.png b/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_5.png
new file mode 100644
index 0000000..389e82b
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_5.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_6.png b/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_6.png
new file mode 100644
index 0000000..7614aa9
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_6.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_7.png b/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_7.png
new file mode 100644
index 0000000..e9dc5f0
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_7.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_8.png b/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_8.png
new file mode 100644
index 0000000..1ecc0e6
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_8.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_9.png b/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_9.png
new file mode 100644
index 0000000..389e82b
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_9.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_1.png b/help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_1.png
index cc11a01..751e051 100644
--- a/help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_1.png
+++ b/help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_1.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_2.png b/help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_2.png
index 6a9edc4..e1c7e77 100644
--- a/help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_2.png
+++ b/help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_2.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_3.png b/help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_3.png
new file mode 100644
index 0000000..699caf3
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_3.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_4.png b/help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_4.png
new file mode 100644
index 0000000..2de0e76
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_4.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_5.png b/help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_5.png
new file mode 100644
index 0000000..52fa7ee
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_5.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_6.png b/help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_6.png
new file mode 100644
index 0000000..3c07cf4
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_6.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_7.png b/help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_7.png
new file mode 100644
index 0000000..389e82b
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_7.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_8.png b/help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_8.png
new file mode 100644
index 0000000..0e1062e
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_8.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_9.png b/help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_9.png
new file mode 100644
index 0000000..94584dd
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_9.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fminunc.xml_1.png b/help/en_US/scilab_en_US_help/_LaTeX_fminunc.xml_1.png
index 5250091..6b1b89b 100644
--- a/help/en_US/scilab_en_US_help/_LaTeX_fminunc.xml_1.png
+++ b/help/en_US/scilab_en_US_help/_LaTeX_fminunc.xml_1.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fminunc.xml_2.png b/help/en_US/scilab_en_US_help/_LaTeX_fminunc.xml_2.png
new file mode 100644
index 0000000..b99b4a7
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_fminunc.xml_2.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fminunc.xml_3.png b/help/en_US/scilab_en_US_help/_LaTeX_fminunc.xml_3.png
new file mode 100644
index 0000000..db11a4b
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_fminunc.xml_3.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fminunc.xml_4.png b/help/en_US/scilab_en_US_help/_LaTeX_fminunc.xml_4.png
new file mode 100644
index 0000000..ee38156
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_fminunc.xml_4.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fminunc.xml_5.png b/help/en_US/scilab_en_US_help/_LaTeX_fminunc.xml_5.png
new file mode 100644
index 0000000..db11a4b
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_fminunc.xml_5.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fminunc.xml_6.png b/help/en_US/scilab_en_US_help/_LaTeX_fminunc.xml_6.png
new file mode 100644
index 0000000..ee38156
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_fminunc.xml_6.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intfminbnd.xml_1.png b/help/en_US/scilab_en_US_help/_LaTeX_intfminbnd.xml_1.png
new file mode 100644
index 0000000..f43af1e
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_intfminbnd.xml_1.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intfminbnd.xml_2.png b/help/en_US/scilab_en_US_help/_LaTeX_intfminbnd.xml_2.png
new file mode 100644
index 0000000..347aa1a
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_intfminbnd.xml_2.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intfminbnd.xml_3.png b/help/en_US/scilab_en_US_help/_LaTeX_intfminbnd.xml_3.png
new file mode 100644
index 0000000..df17abe
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_intfminbnd.xml_3.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intfminbnd.xml_4.png b/help/en_US/scilab_en_US_help/_LaTeX_intfminbnd.xml_4.png
new file mode 100644
index 0000000..7ab785c
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_intfminbnd.xml_4.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intfminbnd.xml_5.png b/help/en_US/scilab_en_US_help/_LaTeX_intfminbnd.xml_5.png
new file mode 100644
index 0000000..f6faa17
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_intfminbnd.xml_5.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intfminbnd.xml_6.png b/help/en_US/scilab_en_US_help/_LaTeX_intfminbnd.xml_6.png
new file mode 100644
index 0000000..bf69434
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_intfminbnd.xml_6.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intfminbnd.xml_7.png b/help/en_US/scilab_en_US_help/_LaTeX_intfminbnd.xml_7.png
new file mode 100644
index 0000000..43815d0
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_intfminbnd.xml_7.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intfmincon.xml_1.png b/help/en_US/scilab_en_US_help/_LaTeX_intfmincon.xml_1.png
new file mode 100644
index 0000000..11677d5
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_intfmincon.xml_1.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intfmincon.xml_2.png b/help/en_US/scilab_en_US_help/_LaTeX_intfmincon.xml_2.png
new file mode 100644
index 0000000..bf40b5e
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_intfmincon.xml_2.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intfmincon.xml_3.png b/help/en_US/scilab_en_US_help/_LaTeX_intfmincon.xml_3.png
new file mode 100644
index 0000000..52fa7ee
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_intfmincon.xml_3.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intfmincon.xml_4.png b/help/en_US/scilab_en_US_help/_LaTeX_intfmincon.xml_4.png
new file mode 100644
index 0000000..3c07cf4
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_intfmincon.xml_4.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intfmincon.xml_5.png b/help/en_US/scilab_en_US_help/_LaTeX_intfmincon.xml_5.png
new file mode 100644
index 0000000..ad7b9b2
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_intfmincon.xml_5.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intfmincon.xml_6.png b/help/en_US/scilab_en_US_help/_LaTeX_intfmincon.xml_6.png
new file mode 100644
index 0000000..392908b
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_intfmincon.xml_6.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intfmincon.xml_7.png b/help/en_US/scilab_en_US_help/_LaTeX_intfmincon.xml_7.png
new file mode 100644
index 0000000..383d637
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_intfmincon.xml_7.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_1.png b/help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_1.png
new file mode 100644
index 0000000..8521bee
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_1.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_2.png b/help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_2.png
new file mode 100644
index 0000000..e1c7e77
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_2.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_3.png b/help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_3.png
new file mode 100644
index 0000000..6c28cfe
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_3.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_4.png b/help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_4.png
new file mode 100644
index 0000000..2de0e76
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_4.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_5.png b/help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_5.png
new file mode 100644
index 0000000..52fa7ee
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_5.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_6.png b/help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_6.png
new file mode 100644
index 0000000..3c07cf4
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_6.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_7.png b/help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_7.png
new file mode 100644
index 0000000..389e82b
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_7.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_8.png b/help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_8.png
new file mode 100644
index 0000000..0e1062e
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_8.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_9.png b/help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_9.png
new file mode 100644
index 0000000..94584dd
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_9.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intfminunc.xml_1.png b/help/en_US/scilab_en_US_help/_LaTeX_intfminunc.xml_1.png
new file mode 100644
index 0000000..b97584c
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_intfminunc.xml_1.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intfminunc.xml_2.png b/help/en_US/scilab_en_US_help/_LaTeX_intfminunc.xml_2.png
new file mode 100644
index 0000000..39a6e2f
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_intfminunc.xml_2.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intfminunc.xml_3.png b/help/en_US/scilab_en_US_help/_LaTeX_intfminunc.xml_3.png
new file mode 100644
index 0000000..46c3e5e
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_intfminunc.xml_3.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intfminunc.xml_4.png b/help/en_US/scilab_en_US_help/_LaTeX_intfminunc.xml_4.png
new file mode 100644
index 0000000..b4d1474
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_intfminunc.xml_4.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intqpipopt.xml_1.png b/help/en_US/scilab_en_US_help/_LaTeX_intqpipopt.xml_1.png
new file mode 100644
index 0000000..469a717
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_intqpipopt.xml_1.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intqpipopt.xml_2.png b/help/en_US/scilab_en_US_help/_LaTeX_intqpipopt.xml_2.png
new file mode 100644
index 0000000..61c7608
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_intqpipopt.xml_2.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intqpipopt.xml_3.png b/help/en_US/scilab_en_US_help/_LaTeX_intqpipopt.xml_3.png
new file mode 100644
index 0000000..6b4b847
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_intqpipopt.xml_3.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intqpipopt.xml_4.png b/help/en_US/scilab_en_US_help/_LaTeX_intqpipopt.xml_4.png
new file mode 100644
index 0000000..f81313e
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_intqpipopt.xml_4.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intqpipopt.xml_5.png b/help/en_US/scilab_en_US_help/_LaTeX_intqpipopt.xml_5.png
new file mode 100644
index 0000000..9cb77a0
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_intqpipopt.xml_5.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intqpipopt.xml_6.png b/help/en_US/scilab_en_US_help/_LaTeX_intqpipopt.xml_6.png
new file mode 100644
index 0000000..861e917
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_intqpipopt.xml_6.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intqpipopt.xml_7.png b/help/en_US/scilab_en_US_help/_LaTeX_intqpipopt.xml_7.png
new file mode 100644
index 0000000..443d6ef
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_intqpipopt.xml_7.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_linprog.xml_1.png b/help/en_US/scilab_en_US_help/_LaTeX_linprog.xml_1.png
index 1dd1d5e..c1b079b 100644
--- a/help/en_US/scilab_en_US_help/_LaTeX_linprog.xml_1.png
+++ b/help/en_US/scilab_en_US_help/_LaTeX_linprog.xml_1.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_linprog.xml_2.png b/help/en_US/scilab_en_US_help/_LaTeX_linprog.xml_2.png
new file mode 100644
index 0000000..084de0b
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_linprog.xml_2.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_linprog.xml_3.png b/help/en_US/scilab_en_US_help/_LaTeX_linprog.xml_3.png
new file mode 100644
index 0000000..27dcd00
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_linprog.xml_3.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_linprog.xml_4.png b/help/en_US/scilab_en_US_help/_LaTeX_linprog.xml_4.png
new file mode 100644
index 0000000..2d6a863
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_linprog.xml_4.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_linprog.xml_5.png b/help/en_US/scilab_en_US_help/_LaTeX_linprog.xml_5.png
new file mode 100644
index 0000000..25cab89
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_linprog.xml_5.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_linprog.xml_6.png b/help/en_US/scilab_en_US_help/_LaTeX_linprog.xml_6.png
new file mode 100644
index 0000000..58414d6
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_linprog.xml_6.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_lsqlin.xml_1.png b/help/en_US/scilab_en_US_help/_LaTeX_lsqlin.xml_1.png
index 9015755..0a3d488 100644
--- a/help/en_US/scilab_en_US_help/_LaTeX_lsqlin.xml_1.png
+++ b/help/en_US/scilab_en_US_help/_LaTeX_lsqlin.xml_1.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_lsqlin.xml_2.png b/help/en_US/scilab_en_US_help/_LaTeX_lsqlin.xml_2.png
new file mode 100644
index 0000000..4cd3433
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_lsqlin.xml_2.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_lsqlin.xml_3.png b/help/en_US/scilab_en_US_help/_LaTeX_lsqlin.xml_3.png
new file mode 100644
index 0000000..4aae157
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_lsqlin.xml_3.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_lsqlin.xml_4.png b/help/en_US/scilab_en_US_help/_LaTeX_lsqlin.xml_4.png
new file mode 100644
index 0000000..a1fc4ef
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_lsqlin.xml_4.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_lsqlin.xml_5.png b/help/en_US/scilab_en_US_help/_LaTeX_lsqlin.xml_5.png
new file mode 100644
index 0000000..d89c545
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_lsqlin.xml_5.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_lsqnonlin.xml_1.png b/help/en_US/scilab_en_US_help/_LaTeX_lsqnonlin.xml_1.png
index 02e04b1..269e11b 100644
--- a/help/en_US/scilab_en_US_help/_LaTeX_lsqnonlin.xml_1.png
+++ b/help/en_US/scilab_en_US_help/_LaTeX_lsqnonlin.xml_1.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_lsqnonlin.xml_2.png b/help/en_US/scilab_en_US_help/_LaTeX_lsqnonlin.xml_2.png
new file mode 100644
index 0000000..563f915
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_lsqnonlin.xml_2.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_lsqnonlin.xml_3.png b/help/en_US/scilab_en_US_help/_LaTeX_lsqnonlin.xml_3.png
new file mode 100644
index 0000000..ca95a51
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_lsqnonlin.xml_3.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_lsqnonneg.xml_1.png b/help/en_US/scilab_en_US_help/_LaTeX_lsqnonneg.xml_1.png
index 3dd57aa..803b4a7 100644
--- a/help/en_US/scilab_en_US_help/_LaTeX_lsqnonneg.xml_1.png
+++ b/help/en_US/scilab_en_US_help/_LaTeX_lsqnonneg.xml_1.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_lsqnonneg.xml_2.png b/help/en_US/scilab_en_US_help/_LaTeX_lsqnonneg.xml_2.png
new file mode 100644
index 0000000..8516499
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_lsqnonneg.xml_2.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_qpipopt.xml_1.png b/help/en_US/scilab_en_US_help/_LaTeX_qpipopt.xml_1.png
index e2fbbde..7e6a426 100644
--- a/help/en_US/scilab_en_US_help/_LaTeX_qpipopt.xml_1.png
+++ b/help/en_US/scilab_en_US_help/_LaTeX_qpipopt.xml_1.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_qpipopt.xml_2.png b/help/en_US/scilab_en_US_help/_LaTeX_qpipopt.xml_2.png
new file mode 100644
index 0000000..073db6b
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_qpipopt.xml_2.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_qpipopt.xml_3.png b/help/en_US/scilab_en_US_help/_LaTeX_qpipopt.xml_3.png
new file mode 100644
index 0000000..dcb1313
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_qpipopt.xml_3.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_qpipopt.xml_4.png b/help/en_US/scilab_en_US_help/_LaTeX_qpipopt.xml_4.png
new file mode 100644
index 0000000..dcb1313
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_qpipopt.xml_4.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_qpipopt.xml_5.png b/help/en_US/scilab_en_US_help/_LaTeX_qpipopt.xml_5.png
new file mode 100644
index 0000000..bffaa88
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_qpipopt.xml_5.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_qpipopt.xml_6.png b/help/en_US/scilab_en_US_help/_LaTeX_qpipopt.xml_6.png
new file mode 100644
index 0000000..9bb0bd4
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_qpipopt.xml_6.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_qpipoptmat.xml_1.png b/help/en_US/scilab_en_US_help/_LaTeX_qpipoptmat.xml_1.png
index 3846115..de306de 100644
--- a/help/en_US/scilab_en_US_help/_LaTeX_qpipoptmat.xml_1.png
+++ b/help/en_US/scilab_en_US_help/_LaTeX_qpipoptmat.xml_1.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_qpipoptmat.xml_2.png b/help/en_US/scilab_en_US_help/_LaTeX_qpipoptmat.xml_2.png
new file mode 100644
index 0000000..65de87d
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_qpipoptmat.xml_2.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_qpipoptmat.xml_3.png b/help/en_US/scilab_en_US_help/_LaTeX_qpipoptmat.xml_3.png
new file mode 100644
index 0000000..9e2ea9e
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_qpipoptmat.xml_3.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_qpipoptmat.xml_4.png b/help/en_US/scilab_en_US_help/_LaTeX_qpipoptmat.xml_4.png
new file mode 100644
index 0000000..8d6bca1
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_qpipoptmat.xml_4.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_qpipoptmat.xml_5.png b/help/en_US/scilab_en_US_help/_LaTeX_qpipoptmat.xml_5.png
new file mode 100644
index 0000000..9cb77a0
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_qpipoptmat.xml_5.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_qpipoptmat.xml_6.png b/help/en_US/scilab_en_US_help/_LaTeX_qpipoptmat.xml_6.png
new file mode 100644
index 0000000..08bcfd8
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_qpipoptmat.xml_6.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_qpipoptmat.xml_7.png b/help/en_US/scilab_en_US_help/_LaTeX_qpipoptmat.xml_7.png
new file mode 100644
index 0000000..443d6ef
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_qpipoptmat.xml_7.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_symphony.xml_1.png b/help/en_US/scilab_en_US_help/_LaTeX_symphony.xml_1.png
index 9155e8f..54149b0 100644
--- a/help/en_US/scilab_en_US_help/_LaTeX_symphony.xml_1.png
+++ b/help/en_US/scilab_en_US_help/_LaTeX_symphony.xml_1.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_symphony.xml_2.png b/help/en_US/scilab_en_US_help/_LaTeX_symphony.xml_2.png
new file mode 100644
index 0000000..e9a2fd1
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_symphony.xml_2.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_symphony.xml_3.png b/help/en_US/scilab_en_US_help/_LaTeX_symphony.xml_3.png
new file mode 100644
index 0000000..fd99400
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_symphony.xml_3.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_symphonymat.xml_1.png b/help/en_US/scilab_en_US_help/_LaTeX_symphonymat.xml_1.png
index 9c2039f..2958311 100644
--- a/help/en_US/scilab_en_US_help/_LaTeX_symphonymat.xml_1.png
+++ b/help/en_US/scilab_en_US_help/_LaTeX_symphonymat.xml_1.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_symphonymat.xml_2.png b/help/en_US/scilab_en_US_help/_LaTeX_symphonymat.xml_2.png
new file mode 100644
index 0000000..29943d1
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_symphonymat.xml_2.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_symphonymat.xml_3.png b/help/en_US/scilab_en_US_help/_LaTeX_symphonymat.xml_3.png
new file mode 100644
index 0000000..dbf16d2
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_symphonymat.xml_3.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_symphonymat.xml_4.png b/help/en_US/scilab_en_US_help/_LaTeX_symphonymat.xml_4.png
new file mode 100644
index 0000000..e9cfddd
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_symphonymat.xml_4.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_symphonymat.xml_5.png b/help/en_US/scilab_en_US_help/_LaTeX_symphonymat.xml_5.png
new file mode 100644
index 0000000..aae7855
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_symphonymat.xml_5.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_symphonymat.xml_6.png b/help/en_US/scilab_en_US_help/_LaTeX_symphonymat.xml_6.png
new file mode 100644
index 0000000..68e6bb8
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_symphonymat.xml_6.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/cbcintlinprog.html b/help/en_US/scilab_en_US_help/cbcintlinprog.html
new file mode 100644
index 0000000..3ee12ea
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/cbcintlinprog.html
@@ -0,0 +1,240 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <title>cbcintlinprog</title>
+ <style type="text/css" media="all">
+ @import url("scilab_code.css");
+ @import url("xml_code.css");
+ @import url("c_code.css");
+ @import url("style.css");
+ </style>
+ </head>
+ <body>
+ <div class="manualnavbar">
+ <table width="100%"><tr>
+ <td width="30%">
+ <span class="previous"><a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">&lt;&lt; FOSSEE Optimization Toolbox</a></span>
+
+ </td>
+ <td width="40%" class="center">
+ <span class="top"><a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a></span>
+
+ </td>
+ <td width="30%" class="next">
+ <span class="next"><a href="fgoalattain.html">fgoalattain &gt;&gt;</a></span>
+
+ </td>
+ </tr></table>
+ <hr />
+ </div>
+
+
+
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; cbcintlinprog</span>
+
+ <br /><br />
+ <div class="refnamediv"><h1 class="refname">cbcintlinprog</h1>
+ <p class="refpurpose">Solves a mixed integer linear programming constrained optimization problem in intlinprog format.</p></div>
+
+
+<div class="refsynopsisdiv"><h3 class="title">Calling Sequence</h3>
+ <div class="synopsis"><pre><span class="default">xopt</span><span class="default"> = </span><span class="functionid">cbcintlinprog</span><span class="default">(</span><span class="default">c</span><span class="default">,</span><span class="default">intcon</span><span class="default">,</span><span class="default">A</span><span class="default">,</span><span class="default">b</span><span class="default">)</span>
+<span class="default">xopt</span><span class="default"> = </span><span class="functionid">cbcintlinprog</span><span class="default">(</span><span class="default">c</span><span class="default">,</span><span class="default">intcon</span><span class="default">,</span><span class="default">A</span><span class="default">,</span><span class="default">b</span><span class="default">,</span><span class="default">Aeq</span><span class="default">,</span><span class="default">beq</span><span class="default">)</span>
+<span class="default">xopt</span><span class="default"> = </span><span class="functionid">cbcintlinprog</span><span class="default">(</span><span class="default">c</span><span class="default">,</span><span class="default">intcon</span><span class="default">,</span><span class="default">A</span><span class="default">,</span><span class="default">b</span><span class="default">,</span><span class="default">Aeq</span><span class="default">,</span><span class="default">beq</span><span class="default">,</span><span class="default">lb</span><span class="default">,</span><span class="default">ub</span><span class="default">)</span>
+<span class="default">xopt</span><span class="default"> = </span><span class="functionid">cbcintlinprog</span><span class="default">(</span><span class="default">c</span><span class="default">,</span><span class="default">intcon</span><span class="default">,</span><span class="default">A</span><span class="default">,</span><span class="default">b</span><span class="default">,</span><span class="default">Aeq</span><span class="default">,</span><span class="default">beq</span><span class="default">,</span><span class="default">lb</span><span class="default">,</span><span class="default">ub</span><span class="default">,</span><span class="default">options</span><span class="default">)</span>
+<span class="default">xopt</span><span class="default"> = </span><span class="functionid">cbcintlinprog</span><span class="default">(</span>&#0039;<span class="default">path_to_mps_file</span>&#0039;<span class="default">)</span>
+<span class="default">xopt</span><span class="default"> = </span><span class="functionid">cbcintlinprog</span><span class="default">(</span>&#0039;<span class="default">path_to_mps_file</span>&#0039;<span class="default">,</span><span class="default">options</span><span class="default">)</span>
+<span class="default">[</span><span class="default">xopt</span><span class="default">,</span><span class="default">fopt</span><span class="default">,</span><span class="default">status</span><span class="default">,</span><span class="default">output</span><span class="default">] = </span><span class="functionid">cbcintlinprog</span><span class="default">( ... )</span></pre></div></div>
+
+<div class="refsection"><h3 class="title">Input Parameters</h3>
+ <dl><dt><span class="term">c :</span>
+ <dd><p class="para">a vector of double, contains coefficients of the variables in the objective</p></dd></dt>
+ <dt><span class="term">intcon :</span>
+ <dd><p class="para">Vector of integer constraints, specified as a vector of positive integers. The values in intcon indicate the components of the decision variable x that are integer-valued. intcon has values from 1 through number of variable.</p></dd></dt>
+ <dt><span class="term">A :</span>
+ <dd><p class="para">A matrix of doubles, containing the coefficients of linear inequality constraints of size (m X n) where &#0039;m&#0039; is the number of linear inequality constraints.</p></dd></dt>
+ <dt><span class="term">b :</span>
+ <dd><p class="para">A vector of doubles, related to &#0039;A&#0039; and containing the the Right hand side equation of the linear inequality constraints of size (m X 1).</p></dd></dt>
+ <dt><span class="term">Aeq :</span>
+ <dd><p class="para">A matrix of doubles, containing the coefficients of linear equality constraints of size (m1 X n) where &#0039;m1&#0039; is the number of linear equality constraints.</p></dd></dt>
+ <dt><span class="term">beq :</span>
+ <dd><p class="para">A vector of doubles, related to &#0039;Aeq&#0039; and containing the the Right hand side equation of the linear equality constraints of size (m1 X 1).</p></dd></dt>
+ <dt><span class="term">lb :</span>
+ <dd><p class="para">A vector of doubles, containing the lower bounds of the variables of size (1 X n) or (n X 1) where &#0039;n&#0039; is the number of variables.</p></dd></dt>
+ <dt><span class="term">ub :</span>
+ <dd><p class="para">A vector of doubles, containing the upper bounds of the variables of size (1 X n) or (n X 1) where &#0039;n&#0039; is the number of variables.</p></dd></dt>
+ <dt><span class="term">options :</span>
+ <dd><p class="para">A list, containing the option for user to specify. See below for details.</p></dd></dt></dl></div>
+<div class="refsection"><h3 class="title">Outputs</h3>
+ <dl><dt><span class="term">xopt :</span>
+ <dd><p class="para">A vector of doubles, containing the computed solution of the optimization problem.</p></dd></dt>
+ <dt><span class="term">fopt :</span>
+ <dd><p class="para">A double, containing the the function value at x.</p></dd></dt>
+ <dt><span class="term">status :</span>
+ <dd><p class="para">An integer, containing the flag which denotes the reason for termination of algorithm. See below for details.</p></dd></dt>
+ <dt><span class="term">output :</span>
+ <dd><p class="para">A structure, containing the information about the optimization. See below for details.</p></dd></dt></dl></div>
+
+<div class="refsection"><h3 class="title">Description</h3>
+ <p class="para">Search the minimum or maximum of a constrained mixed integer linear programming optimization problem specified by :</p>
+ <p class="para"><span><img src='./_LaTeX_cbcintlinprog.xml_1.png' style='position:relative;top:51px;width:270px;height:110px'/></span></p>
+ <p class="para">CBC, an optimization library written in C++, is used for solving the linear programming problems.</p>
+<p class="para"><h3 class="title">Options</h3>
+The options allow the user to set various parameters of the Optimization problem. The syntax for the options is given by:</p>
+ <p class="para">options= list(&#0034;IntegerTolerance&#0034;, [---], &#0034;MaxNodes&#0034;,[---], &#0034;MaxIter&#0034;, [---], &#0034;AllowableGap&#0034;,[---] &#0034;CpuTime&#0034;, [---],&#0034;gradobj&#0034;, &#0034;off&#0034;, &#0034;hessian&#0034;, &#0034;off&#0034; );
+<ul class="itemizedlist"><li>IntegerTolerance : A Scalar, a number with that value of an integer is considered integer.</li>
+<li>MaxNodes : A Scalar, containing the maximum number of nodes that the solver should search.</li>
+<li>MaxTime : A scalar, specifying the maximum amount of CPU Time in seconds that the solver should take.</li>
+<li>AllowableGap : A scalar, that specifies the gap between the computed solution and the the objective value of the best known solution stop, at which the tree search can be stopped.</li></ul>
+ The default values for the various items are given as:</p>
+ <p class="para">options = list(&#0039;integertolerance&#0039;,1d-06,&#0039;maxnodes&#0039;,2147483647,&#0039;cputime&#0039;,1d10,&#0039;allowablegap&#0039;)</p>
+<p class="para">The exitflag allows the user to know the status of the optimization which is returned by OSI-CBC. The values it can take and what they indicate is described below:
+<ul class="itemizedlist"><li>0 : Optimal Solution Found</li>
+<li>1 : Converged to a point of primal infeasibility.</li>
+<li>2 : Solution Limit is reached</li>
+<li>3 : Node Limit is reached. Output may not be optimal.</li>
+<li>4 : Numerical Difficulties.</li>
+<li>5 : Maximum amount of CPU Time exceeded.</li>
+<li>6 : Continuous Solution Unbounded.</li>
+<li>7 : Converged to a point of dual infeasibility.</li></ul></p>
+ <p class="para">For more details on exitflag, see the Bonmin documentation which can be found on http://www.coin-or.org/Cbc</p>
+ <p class="para"></p></div>
+
+<p class="para">A few examples displaying the various functionalities of cbcintlinprog have been provided below. You will find a series of problems and the appropriate code snippets to solve them.</p>
+
+<div class="refsection"><h3 class="title">Example</h3>
+ <p class="para">Here we solve a simple objective function, subjected to three linear inequality constraints.</p>
+ <p class="para">Find x in R^8 such that it minimizes:</p>
+ <p class="para"><span><img src='./_LaTeX_cbcintlinprog.xml_2.png' style='position:relative;top:12px;width:646px;height:146px'/></span></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Example 1:</span>
+<span class="scilabcomment">// Reference: Westerberg, Carl-Henrik, Bengt Bjorklund, and Eskil Hultman. </span><span class="scilabcomment">&#0034;</span><span class="scilabcomment">An application of mixed integer</span>
+<span class="scilabcomment">// programming in a Swedish steel mill.</span><span class="scilabcomment">&#0034;</span><span class="scilabcomment"> Interfaces 7, no. 2 (1977): 39-43. Modified acc. to requirements.</span>
+<span class="scilabid">c</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">350</span><span class="scilaboperator">*</span><span class="scilabnumber">5</span><span class="scilabdefault">,</span><span class="scilabnumber">330</span><span class="scilaboperator">*</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilabnumber">310</span><span class="scilaboperator">*</span><span class="scilabnumber">4</span><span class="scilabdefault">,</span><span class="scilabnumber">280</span><span class="scilaboperator">*</span><span class="scilabnumber">6</span><span class="scilabdefault">,</span><span class="scilabnumber">500</span><span class="scilabdefault">,</span><span class="scilabnumber">450</span><span class="scilabdefault">,</span><span class="scilabnumber">400</span><span class="scilabdefault">,</span><span class="scilabnumber">100</span><span class="scilabopenclose">]</span><span class="scilaboperator">&#0039;</span><span class="scilabdefault">;</span>
+<span class="scilabid">A</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">6</span><span class="scilabdefault">,</span><span class="scilabnumber">4.25</span><span class="scilabdefault">,</span> <span class="scilabnumber">5.5</span><span class="scilabdefault">,</span> <span class="scilabnumber">7.75</span><span class="scilabdefault">,</span> <span class="scilabnumber">3</span><span class="scilabdefault">,</span> <span class="scilabnumber">3.25</span><span class="scilabdefault">,</span> <span class="scilabnumber">3.5</span><span class="scilabdefault">,</span><span class="scilabnumber">3.75</span><span class="scilabdefault">;</span>
+ <span class="scilabnumber">1.25</span><span class="scilabdefault">,</span><span class="scilabnumber">1.37</span><span class="scilabdefault">,</span><span class="scilabnumber">1.7</span><span class="scilabdefault">,</span><span class="scilabnumber">1.93</span><span class="scilabdefault">,</span><span class="scilabnumber">2.08</span><span class="scilabdefault">,</span><span class="scilabnumber">2.32</span><span class="scilabdefault">,</span><span class="scilabnumber">2.56</span><span class="scilabdefault">,</span><span class="scilabnumber">2.78</span><span class="scilabdefault">;</span>
+ <span class="scilabnumber">1.15</span><span class="scilabdefault">,</span><span class="scilabnumber">1.34</span><span class="scilabdefault">,</span><span class="scilabnumber">1.66</span><span class="scilabdefault">,</span><span class="scilabnumber">1.99</span><span class="scilabdefault">,</span><span class="scilabnumber">2.06</span><span class="scilabdefault">,</span><span class="scilabnumber">2.32</span><span class="scilabdefault">,</span><span class="scilabnumber">2.58</span><span class="scilabdefault">,</span><span class="scilabnumber">2.84</span> <span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">100</span> <span class="scilabdefault">,</span><span class="scilabnumber">205</span><span class="scilabdefault">,</span> <span class="scilabnumber">249</span> <span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Defining the integer constraints</span>
+<span class="scilabid">intcon</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span> <span class="scilabnumber">2</span> <span class="scilabnumber">3</span> <span class="scilabnumber">4</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">// Calling Symphony</span>
+<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">f</span><span class="scilabdefault">,</span><span class="scilabid">status</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">cbcintlinprog</span><span class="scilabopenclose">(</span><span class="scilabid">c</span><span class="scilabdefault">,</span><span class="scilabid">intcon</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabopenclose">)</span>
+<span class="scilabcomment">// Press ENTER to continue</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Example</h3>
+ <p class="para">Here we build up on the previous example by adding upper and lower bounds to the variables.
+We add the following bounds to the problem specified above:</p>
+ <p class="para"><span><img src='./_LaTeX_cbcintlinprog.xml_3.png' style='position:relative;top:76px;width:125px;height:160px'/></span></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Example 2:</span>
+<span class="scilabcomment">// Reference: Westerberg, Carl-Henrik, Bengt Bjorklund, and Eskil Hultman. </span><span class="scilabcomment">&#0034;</span><span class="scilabcomment">An application of mixed integer</span>
+<span class="scilabcomment">// programming in a Swedish steel mill.</span><span class="scilabcomment">&#0034;</span><span class="scilabcomment"> Interfaces 7, no. 2 (1977): 39-43. Modified acc. to requirements.</span>
+ <span class="scilabid">c</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">350</span><span class="scilaboperator">*</span><span class="scilabnumber">5</span><span class="scilabdefault">,</span><span class="scilabnumber">330</span><span class="scilaboperator">*</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilabnumber">310</span><span class="scilaboperator">*</span><span class="scilabnumber">4</span><span class="scilabdefault">,</span><span class="scilabnumber">280</span><span class="scilaboperator">*</span><span class="scilabnumber">6</span><span class="scilabdefault">,</span><span class="scilabnumber">500</span><span class="scilabdefault">,</span><span class="scilabnumber">450</span><span class="scilabdefault">,</span><span class="scilabnumber">400</span><span class="scilabdefault">,</span><span class="scilabnumber">100</span><span class="scilabopenclose">]</span><span class="scilaboperator">&#0039;</span><span class="scilabdefault">;</span>
+ <span class="scilabcomment">//Inequality constraints</span>
+ <span class="scilabid">A</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">6</span><span class="scilabdefault">,</span><span class="scilabnumber">4.25</span><span class="scilabdefault">,</span> <span class="scilabnumber">5.5</span><span class="scilabdefault">,</span> <span class="scilabnumber">7.75</span><span class="scilabdefault">,</span> <span class="scilabnumber">3</span><span class="scilabdefault">,</span> <span class="scilabnumber">3.25</span><span class="scilabdefault">,</span> <span class="scilabnumber">3.5</span><span class="scilabdefault">,</span><span class="scilabnumber">3.75</span><span class="scilabdefault">;</span>
+ <span class="scilabnumber">1.25</span><span class="scilabdefault">,</span><span class="scilabnumber">1.37</span><span class="scilabdefault">,</span><span class="scilabnumber">1.7</span><span class="scilabdefault">,</span><span class="scilabnumber">1.93</span><span class="scilabdefault">,</span><span class="scilabnumber">2.08</span><span class="scilabdefault">,</span><span class="scilabnumber">2.32</span><span class="scilabdefault">,</span><span class="scilabnumber">2.56</span><span class="scilabdefault">,</span><span class="scilabnumber">2.78</span><span class="scilabdefault">;</span>
+ <span class="scilabnumber">1.15</span><span class="scilabdefault">,</span><span class="scilabnumber">1.34</span><span class="scilabdefault">,</span><span class="scilabnumber">1.66</span><span class="scilabdefault">,</span><span class="scilabnumber">1.99</span><span class="scilabdefault">,</span><span class="scilabnumber">2.06</span><span class="scilabdefault">,</span><span class="scilabnumber">2.32</span><span class="scilabdefault">,</span><span class="scilabnumber">2.58</span><span class="scilabdefault">,</span><span class="scilabnumber">2.84</span> <span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+ <span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">100</span> <span class="scilabdefault">,</span><span class="scilabnumber">205</span><span class="scilabdefault">,</span> <span class="scilabnumber">249</span> <span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+
+ <span class="scilabcomment">// Lower Bound of variable</span>
+<span class="scilabid">lb</span> <span class="scilaboperator">=</span> <a class="scilabmacro" href="scilab://repmat">repmat</a><span class="scilabopenclose">(</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">8</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">// Upper Bound of variables</span>
+<span class="scilabid">ub</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><a class="scilabmacro" href="scilab://repmat">repmat</a><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">4</span><span class="scilabopenclose">)</span> <a class="scilabmacro" href="scilab://repmat">repmat</a><span class="scilabopenclose">(</span><span class="scilabconstants">%inf</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">4</span><span class="scilabopenclose">)</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+ <span class="scilabcomment">//Integer Constraints</span>
+ <span class="scilabid">intcon</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span> <span class="scilabnumber">2</span> <span class="scilabnumber">3</span> <span class="scilabnumber">4</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+ <span class="scilabcomment">// Calling Symphony</span>
+ <span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">f</span><span class="scilabdefault">,</span><span class="scilabid">status</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">cbcintlinprog</span><span class="scilabopenclose">(</span><span class="scilabid">c</span><span class="scilabdefault">,</span><span class="scilabid">intcon</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span><span class="scilabid">lb</span><span class="scilabdefault">,</span><span class="scilabid">ub</span><span class="scilabopenclose">)</span>
+<span class="scilabcomment">// Press ENTER to continue</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Example</h3>
+ <p class="para">In this example, we proceed to add the linear equality constraints to the objective function.</p>
+
+ <p class="para"><span><img src='./_LaTeX_cbcintlinprog.xml_4.png' style='position:relative;top:27px;width:580px;height:62px'/></span></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Example 3:</span>
+<span class="scilabcomment">// Reference: Westerberg, Carl-Henrik, Bengt Bjorklund, and Eskil Hultman. </span><span class="scilabcomment">&#0034;</span><span class="scilabcomment">An application of mixed integer</span>
+<span class="scilabcomment">// programming in a Swedish steel mill.</span><span class="scilabcomment">&#0034;</span><span class="scilabcomment"> Interfaces 7, no. 2 (1977): 39-43. Modified acc. to requirements.</span>
+<span class="scilabid">c</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">350</span><span class="scilaboperator">*</span><span class="scilabnumber">5</span><span class="scilabdefault">,</span><span class="scilabnumber">330</span><span class="scilaboperator">*</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilabnumber">310</span><span class="scilaboperator">*</span><span class="scilabnumber">4</span><span class="scilabdefault">,</span><span class="scilabnumber">280</span><span class="scilaboperator">*</span><span class="scilabnumber">6</span><span class="scilabdefault">,</span><span class="scilabnumber">500</span><span class="scilabdefault">,</span><span class="scilabnumber">450</span><span class="scilabdefault">,</span><span class="scilabnumber">400</span><span class="scilabdefault">,</span><span class="scilabnumber">100</span><span class="scilabopenclose">]</span><span class="scilaboperator">&#0039;</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Inequality constraints</span>
+<span class="scilabid">A</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">6</span><span class="scilabdefault">,</span><span class="scilabnumber">4.25</span><span class="scilabdefault">,</span> <span class="scilabnumber">5.5</span><span class="scilabdefault">,</span> <span class="scilabnumber">7.75</span><span class="scilabdefault">,</span> <span class="scilabnumber">3</span><span class="scilabdefault">,</span> <span class="scilabnumber">3.25</span><span class="scilabdefault">,</span> <span class="scilabnumber">3.5</span><span class="scilabdefault">,</span><span class="scilabnumber">3.75</span><span class="scilabdefault">;</span>
+ <span class="scilabnumber">1.25</span><span class="scilabdefault">,</span><span class="scilabnumber">1.37</span><span class="scilabdefault">,</span><span class="scilabnumber">1.7</span><span class="scilabdefault">,</span><span class="scilabnumber">1.93</span><span class="scilabdefault">,</span><span class="scilabnumber">2.08</span><span class="scilabdefault">,</span><span class="scilabnumber">2.32</span><span class="scilabdefault">,</span><span class="scilabnumber">2.56</span><span class="scilabdefault">,</span><span class="scilabnumber">2.78</span><span class="scilabdefault">;</span>
+ <span class="scilabnumber">1.15</span><span class="scilabdefault">,</span><span class="scilabnumber">1.34</span><span class="scilabdefault">,</span><span class="scilabnumber">1.66</span><span class="scilabdefault">,</span><span class="scilabnumber">1.99</span><span class="scilabdefault">,</span><span class="scilabnumber">2.06</span><span class="scilabdefault">,</span><span class="scilabnumber">2.32</span><span class="scilabdefault">,</span><span class="scilabnumber">2.58</span><span class="scilabdefault">,</span><span class="scilabnumber">2.84</span> <span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">100</span> <span class="scilabdefault">,</span><span class="scilabnumber">205</span><span class="scilabdefault">,</span> <span class="scilabnumber">249</span> <span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">// Lower Bound of variable</span>
+<span class="scilabid">lb</span> <span class="scilaboperator">=</span> <a class="scilabmacro" href="scilab://repmat">repmat</a><span class="scilabopenclose">(</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">8</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">// Upper Bound of variables</span>
+<span class="scilabid">ub</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><a class="scilabmacro" href="scilab://repmat">repmat</a><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">4</span><span class="scilabopenclose">)</span> <a class="scilabmacro" href="scilab://repmat">repmat</a><span class="scilabopenclose">(</span><span class="scilabconstants">%inf</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">4</span><span class="scilabopenclose">)</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">// Equality Constraints</span>
+<span class="scilabid">Aeq</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">5</span><span class="scilabdefault">,</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilabnumber">4</span><span class="scilabdefault">,</span><span class="scilabnumber">6</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">5</span><span class="scilaboperator">*</span><span class="scilabnumber">0.05</span><span class="scilabdefault">,</span><span class="scilabnumber">3</span><span class="scilaboperator">*</span><span class="scilabnumber">0.04</span><span class="scilabdefault">,</span><span class="scilabnumber">4</span><span class="scilaboperator">*</span><span class="scilabnumber">0.05</span><span class="scilabdefault">,</span><span class="scilabnumber">6</span><span class="scilaboperator">*</span><span class="scilabnumber">0.03</span><span class="scilabdefault">,</span><span class="scilabnumber">0.08</span><span class="scilabdefault">,</span><span class="scilabnumber">0.07</span><span class="scilabdefault">,</span><span class="scilabnumber">0.06</span><span class="scilabdefault">,</span><span class="scilabnumber">0.03</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">5</span><span class="scilaboperator">*</span><span class="scilabnumber">0.03</span><span class="scilabdefault">,</span><span class="scilabnumber">3</span><span class="scilaboperator">*</span><span class="scilabnumber">0.03</span><span class="scilabdefault">,</span><span class="scilabnumber">4</span><span class="scilaboperator">*</span><span class="scilabnumber">0.04</span><span class="scilabdefault">,</span><span class="scilabnumber">6</span><span class="scilaboperator">*</span><span class="scilabnumber">0.04</span><span class="scilabdefault">,</span><span class="scilabnumber">0.06</span><span class="scilabdefault">,</span><span class="scilabnumber">0.07</span><span class="scilabdefault">,</span><span class="scilabnumber">0.08</span><span class="scilabdefault">,</span><span class="scilabnumber">0.09</span><span class="scilabdefault">;</span><span class="scilabopenclose">]</span>
+<span class="scilabid">beq</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span> <span class="scilabnumber">25</span><span class="scilabdefault">,</span> <span class="scilabnumber">1.25</span><span class="scilabdefault">,</span> <span class="scilabnumber">1.25</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+ <span class="scilabcomment">//Integer Constraints</span>
+<span class="scilabid">intcon</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span> <span class="scilabnumber">2</span> <span class="scilabnumber">3</span> <span class="scilabnumber">4</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">// Calling CBC</span>
+<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">f</span><span class="scilabdefault">,</span><span class="scilabid">status</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">cbcintlinprog</span><span class="scilabopenclose">(</span><span class="scilabid">c</span><span class="scilabdefault">,</span><span class="scilabid">intcon</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabid">Aeq</span><span class="scilabdefault">,</span><span class="scilabid">beq</span><span class="scilabdefault">,</span><span class="scilabid">lb</span><span class="scilabdefault">,</span><span class="scilabid">ub</span><span class="scilabopenclose">)</span>
+<span class="scilabcomment">// Press ENTER to continue</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Example</h3>
+ <p class="para">Primal Infeasible Problems: Find x in R^8 such that it minimizes:</p>
+ <p class="para">Find x in R^8 such that it minimizes:</p>
+ <p class="para"><span><img src='./_LaTeX_cbcintlinprog.xml_5.png' style='position:relative;top:12px;width:666px;height:146px'/></span></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Example 4:</span>
+<span class="scilabcomment">// Reference: Westerberg, Carl-Henrik, Bengt Bjorklund, and Eskil Hultman. </span><span class="scilabcomment">&#0034;</span><span class="scilabcomment">An application of mixed integer </span>
+<span class="scilabcomment">// programming in a Swedish steel mill.</span><span class="scilabcomment">&#0034;</span><span class="scilabcomment"> Interfaces 7, no. 2 (1977): 39-43. Modified acc. to requirements.</span>
+<span class="scilabid">c</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">350</span><span class="scilaboperator">*</span><span class="scilabnumber">5</span><span class="scilabdefault">,</span><span class="scilabnumber">330</span><span class="scilaboperator">*</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilabnumber">310</span><span class="scilaboperator">*</span><span class="scilabnumber">4</span><span class="scilabdefault">,</span><span class="scilabnumber">280</span><span class="scilaboperator">*</span><span class="scilabnumber">6</span><span class="scilabdefault">,</span><span class="scilabnumber">500</span><span class="scilabdefault">,</span><span class="scilabnumber">450</span><span class="scilabdefault">,</span><span class="scilabnumber">400</span><span class="scilabdefault">,</span><span class="scilabnumber">100</span><span class="scilabopenclose">]</span><span class="scilaboperator">&#0039;</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Inequality constraints </span>
+<span class="scilabid">A</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">6</span><span class="scilabdefault">,</span><span class="scilabnumber">4.25</span><span class="scilabdefault">,</span> <span class="scilabnumber">5.5</span><span class="scilabdefault">,</span> <span class="scilabnumber">7.75</span><span class="scilabdefault">,</span> <span class="scilabnumber">3</span><span class="scilabdefault">,</span> <span class="scilabnumber">3.25</span><span class="scilabdefault">,</span> <span class="scilabnumber">3.5</span><span class="scilabdefault">,</span><span class="scilabnumber">3.75</span><span class="scilabdefault">;</span>
+ <span class="scilabnumber">1.25</span><span class="scilabdefault">,</span><span class="scilabnumber">1.37</span><span class="scilabdefault">,</span><span class="scilabnumber">1.7</span><span class="scilabdefault">,</span><span class="scilabnumber">1.93</span><span class="scilabdefault">,</span><span class="scilabnumber">2.08</span><span class="scilabdefault">,</span><span class="scilabnumber">2.32</span><span class="scilabdefault">,</span><span class="scilabnumber">2.56</span><span class="scilabdefault">,</span><span class="scilabnumber">2.78</span><span class="scilabdefault">;</span>
+ <span class="scilabnumber">1.15</span><span class="scilabdefault">,</span><span class="scilabnumber">1.34</span><span class="scilabdefault">,</span><span class="scilabnumber">1.66</span><span class="scilabdefault">,</span><span class="scilabnumber">1.99</span><span class="scilabdefault">,</span><span class="scilabnumber">2.06</span><span class="scilabdefault">,</span><span class="scilabnumber">2.32</span><span class="scilabdefault">,</span><span class="scilabnumber">2.58</span><span class="scilabdefault">,</span><span class="scilabnumber">2.84</span> <span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">26.333</span> <span class="scilabdefault">,</span><span class="scilabnumber">3.916</span> <span class="scilabdefault">,</span><span class="scilabnumber">5.249</span> <span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+ <span class="scilabcomment">//Integer Constraints</span>
+<span class="scilabid">intcon</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span> <span class="scilabnumber">2</span> <span class="scilabnumber">3</span> <span class="scilabnumber">4</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+
+<span class="scilabcomment">// Calling CBC</span>
+
+<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">f</span><span class="scilabdefault">,</span><span class="scilabid">status</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">cbcintlinprog</span><span class="scilabopenclose">(</span><span class="scilabid">c</span><span class="scilabdefault">,</span><span class="scilabid">intcon</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabopenclose">)</span>
+<span class="scilabcomment">// Press ENTER to continue</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Example</h3>
+ <p class="para">Unbounded Problems. Find x in R^8 such that it minimizes:</p>
+ <p class="para"><span><img src='./_LaTeX_cbcintlinprog.xml_6.png' style='position:relative;top:12px;width:650px;height:146px'/></span></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Example 5:</span>
+<span class="scilabcomment">// Reference: Westerberg, Carl-Henrik, Bengt Bjorklund, and Eskil Hultman. </span><span class="scilabcomment">&#0034;</span><span class="scilabcomment">An application of mixed integer</span>
+<span class="scilabcomment">// programming in a Swedish steel mill.</span><span class="scilabcomment">&#0034;</span><span class="scilabcomment"> Interfaces 7, no. 2 (1977): 39-43. Modified acc. to requirements.</span>
+<span class="scilabid">c</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">350</span><span class="scilaboperator">*</span><span class="scilabnumber">5</span><span class="scilabdefault">,</span><span class="scilabnumber">330</span><span class="scilaboperator">*</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilabnumber">310</span><span class="scilaboperator">*</span><span class="scilabnumber">4</span><span class="scilabdefault">,</span><span class="scilabnumber">280</span><span class="scilaboperator">*</span><span class="scilabnumber">6</span><span class="scilabdefault">,</span><span class="scilabnumber">500</span><span class="scilabdefault">,</span><span class="scilabnumber">450</span><span class="scilabdefault">,</span><span class="scilabnumber">400</span><span class="scilabdefault">,</span><span class="scilabnumber">100</span><span class="scilabopenclose">]</span><span class="scilaboperator">&#0039;</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Inequality constraints</span>
+<span class="scilabid">A</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">// Equality Constraints</span>
+<span class="scilabid">Aeq</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">5</span><span class="scilabdefault">,</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilabnumber">4</span><span class="scilabdefault">,</span><span class="scilabnumber">6</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">5</span><span class="scilaboperator">*</span><span class="scilabnumber">0.05</span><span class="scilabdefault">,</span><span class="scilabnumber">3</span><span class="scilaboperator">*</span><span class="scilabnumber">0.04</span><span class="scilabdefault">,</span><span class="scilabnumber">4</span><span class="scilaboperator">*</span><span class="scilabnumber">0.05</span><span class="scilabdefault">,</span><span class="scilabnumber">6</span><span class="scilaboperator">*</span><span class="scilabnumber">0.03</span><span class="scilabdefault">,</span><span class="scilabnumber">0.08</span><span class="scilabdefault">,</span><span class="scilabnumber">0.07</span><span class="scilabdefault">,</span><span class="scilabnumber">0.06</span><span class="scilabdefault">,</span><span class="scilabnumber">0.03</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">5</span><span class="scilaboperator">*</span><span class="scilabnumber">0.03</span><span class="scilabdefault">,</span><span class="scilabnumber">3</span><span class="scilaboperator">*</span><span class="scilabnumber">0.03</span><span class="scilabdefault">,</span><span class="scilabnumber">4</span><span class="scilaboperator">*</span><span class="scilabnumber">0.04</span><span class="scilabdefault">,</span><span class="scilabnumber">6</span><span class="scilaboperator">*</span><span class="scilabnumber">0.04</span><span class="scilabdefault">,</span><span class="scilabnumber">0.06</span><span class="scilabdefault">,</span><span class="scilabnumber">0.07</span><span class="scilabdefault">,</span><span class="scilabnumber">0.08</span><span class="scilabdefault">,</span><span class="scilabnumber">0.09</span><span class="scilabdefault">;</span><span class="scilabopenclose">]</span>
+<span class="scilabid">beq</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span> <span class="scilabnumber">25</span><span class="scilabdefault">,</span> <span class="scilabnumber">1.25</span><span class="scilabdefault">,</span> <span class="scilabnumber">1.25</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+ <span class="scilabcomment">//Integer Constraints</span>
+<span class="scilabid">intcon</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span> <span class="scilabnumber">2</span> <span class="scilabnumber">3</span> <span class="scilabnumber">4</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">// Calling CBC</span>
+<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">f</span><span class="scilabdefault">,</span><span class="scilabid">status</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">cbcintlinprog</span><span class="scilabopenclose">(</span><span class="scilabid">c</span><span class="scilabdefault">,</span><span class="scilabid">intcon</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabid">Aeq</span><span class="scilabdefault">,</span><span class="scilabid">beq</span><span class="scilabopenclose">)</span>
+<span class="scilabcomment">// Press ENTER to continue</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Authors</h3>
+ <ul class="itemizedlist"><li class="member">Akshay Miterani and Pranav Deshpande</li></ul></div>
+ <br />
+
+ <div class="manualnavbar">
+ <table width="100%">
+ <tr><td colspan="3" class="next"><a href="http://bugzilla.scilab.org/enter_bug.cgi?product=Scilab%20software&component=Documentation%20pages" class="ulink">Report an issue</a></td></tr>
+<tr>
+ <td width="30%">
+ <span class="previous"><a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">&lt;&lt; FOSSEE Optimization Toolbox</a></span>
+
+ </td>
+ <td width="40%" class="center">
+ <span class="top"><a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a></span>
+
+ </td>
+ <td width="30%" class="next">
+ <span class="next"><a href="fgoalattain.html">fgoalattain &gt;&gt;</a></span>
+
+ </td>
+ </tr></table>
+ <hr />
+ </div>
+ </body>
+</html>
diff --git a/help/en_US/scilab_en_US_help/fgoalattain.html b/help/en_US/scilab_en_US_help/fgoalattain.html
index 6f9a43a..5e97f2e 100644
--- a/help/en_US/scilab_en_US_help/fgoalattain.html
+++ b/help/en_US/scilab_en_US_help/fgoalattain.html
@@ -12,11 +12,11 @@
<div class="manualnavbar">
<table width="100%"><tr>
<td width="30%">
- <span class="previous"><a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">&lt;&lt; FOSSEE Optimization Toolbox</a></span>
+ <span class="previous"><a href="cbcintlinprog.html">&lt;&lt; cbcintlinprog</a></span>
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a></span>
+ <span class="top"><a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; fgoalattain</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; fgoalattain</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">fgoalattain</h1>
@@ -49,92 +49,78 @@
<span class="default">[</span><span class="default">xopt</span><span class="default">,</span><span class="default">fval</span><span class="default">,</span><span class="default">attainfactor</span><span class="default">,</span><span class="default">exitflag</span><span class="default">,</span><span class="default">output</span><span class="default">] = </span><span class="functionid">fgoalattain</span><span class="default">(...)</span>
<span class="default">[</span><span class="default">xopt</span><span class="default">,</span><span class="default">fval</span><span class="default">,</span><span class="default">attainfactor</span><span class="default">,</span><span class="default">exitflag</span><span class="default">,</span><span class="default">output</span><span class="default">,</span><span class="default">lambda</span><span class="default">] = </span><span class="functionid">fgoalattain</span><span class="default">(...)</span></pre></div></div>
-<div class="refsection"><h3 class="title">Parameters</h3>
+<div class="refsection"><h3 class="title">Input Parameters</h3>
<dl><dt><span class="term">fun:</span>
- <dd><p class="para">a function that accepts a vector x and returns a vector F</p></dd></dt>
+ <dd><p class="para">A function that accepts a vector x as input and returns the value of objective function at x.</p></dd></dt>
<dt><span class="term">x0 :</span>
- <dd><p class="para">a vector of double, contains initial guess of variables.</p></dd></dt>
+ <dd><p class="para">A vector of doubles, containing the starting values of variables of size (1 X n) or (n X 1) where &#0039;n&#0039; is the number of variables.</p></dd></dt>
+ <dt><span class="term">goal :</span>
+ <dd><p class="para">A vector of doubles, containing the goals, which are the values the objective functions are supposed to achieve.</p></dd></dt>
+ <dt><span class="term">weights:</span>
+ <dd><p class="para">A vector of doubles, containing the weights assigned to each objective function.</p></dd></dt>
<dt><span class="term">A :</span>
- <dd><p class="para">a matrix of double, represents the linear coefficients in the inequality constraints A⋅x ≤ b.</p></dd></dt>
+ <dd><p class="para">A matrix of doubles, containing the coefficients of linear inequality constraints of size (m X n) where &#0039;m&#0039; is the number of linear inequality constraints.</p></dd></dt>
<dt><span class="term">b :</span>
- <dd><p class="para">a vector of double, represents the linear coefficients in the inequality constraints A⋅x ≤ b.</p></dd></dt>
+ <dd><p class="para">A vector of doubles, related to &#0039;A&#0039; and represents the linear coefficients in the linear inequality constraints of size (m X 1).</p></dd></dt>
<dt><span class="term">Aeq :</span>
- <dd><p class="para">a matrix of double, represents the linear coefficients in the equality constraints Aeq⋅x = beq.</p></dd></dt>
+ <dd><p class="para">A matrix of doubles, containing the coefficients of linear equality constraints of size (m1 X n) where &#0039;m1&#0039; is the number of linear equality constraints.</p></dd></dt>
<dt><span class="term">beq :</span>
- <dd><p class="para">a vector of double, represents the linear coefficients in the equality constraints Aeq⋅x = beq.</p></dd></dt>
+ <dd><p class="para">A vector of double, vector of doubles, related to &#0039;Aeq&#0039; and represents the linear coefficients in the equality constraints of size (m1 X 1)</p></dd></dt>
<dt><span class="term">lb :</span>
- <dd><p class="para">a vector of double, contains lower bounds of the variables.</p></dd></dt>
+ <dd><p class="para">A vector of doubles, containing the lower bounds of the variables of size (1 X n) or (n X 1) where &#0039;n&#0039; is the number of variables.</p></dd></dt>
<dt><span class="term">ub :</span>
- <dd><p class="para">a vector of double, contains upper bounds of the variables.</p></dd></dt>
+ <dd><p class="para">A vector of doubles, containing the upper bounds of the variables of size (1 X n) or (n X 1) where &#0039;n&#0039; is the number of variables.</p></dd></dt>
<dt><span class="term">nonlcon:</span>
- <dd><p class="para">a function, the nonlinear constraints</p></dd></dt>
+ <dd><p class="para">A function, representing the Non-linear Constraints functions(both Equality and Inequality) of the problem. It is declared in such a way that non-linear inequality constraints (c), and the non-linear equality constraints (ceq) are defined as separate single row vectors.</p></dd></dt>
<dt><span class="term">options :</span>
- <dd><p class="para">a list, containing the option for user to specify. See below for details.</p></dd></dt>
- <dt><span class="term">xopt :</span>
- <dd><p class="para">a vector of double, the computed solution of the optimization problem.</p></dd></dt>
- <dt><span class="term">fopt :</span>
- <dd><p class="para">a double, the value of the function at x.</p></dd></dt>
+ <dd><p class="para">A list, containing the option for user to specify. See below for details.</p></dd></dt></dl></div>
+<div class="refsection"><h3 class="title">Outputs</h3>
+ <dl><dt><span class="term">xopt :</span>
+ <dd><p class="para">A vector of doubles, containing the computed solution of the optimization problem.</p></dd></dt>
+ <dt><span class="term">fval :</span>
+ <dd><p class="para">A vector of doubles, containing the values of the objective functions at the end of the optimization problem.</p></dd></dt>
<dt><span class="term">attainfactor:</span>
- <dd><p class="para">The amount of over- or underachievement of the goals,γ at the solution.</p></dd></dt>
+ <dd><p class="para">The amount of over or underachievement of the goals (<span><img src='./_LaTeX_fgoalattain.xml_1.png' style='position:relative;top:6px;width:13px;height:15px'/></span>) at the solution.</p></dd></dt>
<dt><span class="term">exitflag :</span>
- <dd><p class="para">The exit status. See below for details.</p></dd></dt>
+ <dd><p class="para">An integer, containing the flag which denotes the reason for termination of algorithm. See below for details.</p></dd></dt>
<dt><span class="term">output :</span>
- <dd><p class="para">The structure consist of statistics about the optimization. See below for details.</p></dd></dt>
+ <dd><p class="para">A structure, containing the information about the optimization. See below for details.</p></dd></dt>
<dt><span class="term">lambda :</span>
- <dd><p class="para">The structure consist of the Lagrange multipliers at the solution of problem. See below for details.</p></dd></dt></dl></div>
+ <dd><p class="para">A structure, containing the Lagrange multipliers of lower bound, upper bound and constraints at the optimized point. See below for details.</p></dd></dt></dl></div>
<div class="refsection"><h3 class="title">Description</h3>
- <p class="para">fgoalattain solves the goal attainment problem, which is one formulation for minimizing a multiobjective optimization problem.
-Finds the minimum of a problem specified by:
-Minimise Y such that</p>
- <p class="para"><span><img src='./_LaTeX_fgoalattain.xml_1.png' style='position:relative;top:64px;width:276px;height:136px'/></span></p>
- <p class="para">The solver makes use of fmincon to find the minimum.</p>
- <p class="para">The fgoalattain finds out the maximum value of Y for the objectives evaluated at the starting point and
-adds that as another variable to the vector x
-This is passed to the fmincon function to get the optimised value of Y
-Hence, the algorithm used mainly is &#0034;ipopt&#0034; to obtain the optimum solution
-The relations between f(x), Y, weights and goals are added as additional non-linear inequality constraints</p>
- <p class="para">The options allows the user to set various parameters of the Optimization problem.
-It should be defined as type &#0034;list&#0034; and contains the following fields.
-<ul class="itemizedlist"><li>Syntax : options= list(&#0034;MaxIter&#0034;, [---], &#0034;CpuTime&#0034;, [---], &#0034;GradObj&#0034;, ---, &#0034;GradCon&#0034;, ---);</li>
-<li>MaxIter : a Scalar, containing the Maximum Number of Iteration that the solver should take.</li>
-<li>CpuTime : a Scalar, containing the Maximum amount of CPU Time that the solver should take.</li>
-<li>GradObj : a function, representing the gradient function of the Objective in Vector Form.</li>
-<li>GradCon : a function, representing the gradient of the Non-Linear Constraints (both Equality and Inequality) of the problem. It is declared in such a way that gradient of non-linear inequality constraints are defined first as a separate Matrix (cg of size m2 X n or as an empty), followed by gradient of non-linear equality constraints as a separate Matrix (ceqg of size m2 X n or as an empty) where m2 &amp; m3 are number of non-linear inequality and equality constraints respectively.</li>
-<li>Default Values : options = list(&#0034;MaxIter&#0034;, [3000], &#0034;CpuTime&#0034;, [600]);</li></ul></p>
- <p class="para">By default, the gradient options for fminimax are turned off and and fmincon does the gradient opproximation of gattainObjfun. In case the GradObj option is off and GradConstr option is on, fminimax approximates gattainObjfun gradient using numderivative toolbox.</p>
- <p class="para">If we can provide exact gradients, we should do so since it improves the convergence speed of the optimization algorithm.</p>
- <p class="para">Furthermore, we must enable the &#0034;GradObj&#0034; option with the statement :
-<div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabid">minimaxOptions</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">GradObj</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span><span class="scilabid">fGrad</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div>
-This will let fminimax know that the exact gradient of the objective function is known, so that it can change the calling sequence to the objective function. Note that, fGrad should be mentioned in the form of N x n where n is the number of variables, N is the number of functions in objective function.</p>
- <p class="para">The constraint function must have header :
-<div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabopenclose">[</span><span class="scilabid">c</span><span class="scilabdefault">,</span> <span class="scilabid">ceq</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">confun</span><span class="scilabopenclose">(</span><span class="scilabid">x</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div>
-where x is a n x 1 matrix of doubles, c is a 1 x nni matrix of doubles and ceq is a 1 x nne matrix of doubles (nni : number of nonlinear inequality constraints, nne : number of nonlinear equality constraints).
-On input, the variable x contains the current point and, on output, the variable c must contain the nonlinear inequality constraints and ceq must contain the nonlinear equality constraints.</p>
- <p class="para">By default, the gradient options for fminimax are turned off and and fmincon does the gradient opproximation of confun. In case the GradObj option is on and GradCons option is off, fminimax approximates confun gradient using numderivative toolbox.</p>
- <p class="para">If we can provide exact gradients, we should do so since it improves the convergence speed of the optimization algorithm.</p>
- <p class="para">Furthermore, we must enable the &#0034;GradCon&#0034; option with the statement :
-<div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabid">minimaxOptions</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">GradCon</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span><span class="scilabid">confunGrad</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div>
-This will let fminimax know that the exact gradient of the objective function is known, so that it can change the calling sequence to the objective function.</p>
- <p class="para">The constraint derivative function must have header :
-<div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabopenclose">[</span><span class="scilabid">dc</span><span class="scilabdefault">,</span><span class="scilabid">dceq</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">confungrad</span><span class="scilabopenclose">(</span><span class="scilabid">x</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div>
-where dc is a nni x n matrix of doubles and dceq is a nne x n matrix of doubles.</p>
- <p class="para">The exitflag allows to know the status of the optimization which is given back by Ipopt.
-<ul class="itemizedlist"><li>exitflag=0 : Optimal Solution Found</li>
-<li>exitflag=1 : Maximum Number of Iterations Exceeded. Output may not be optimal.</li>
-<li>exitflag=2 : Maximum amount of CPU Time exceeded. Output may not be optimal.</li>
-<li>exitflag=3 : Stop at Tiny Step.</li>
-<li>exitflag=4 : Solved To Acceptable Level.</li>
-<li>exitflag=5 : Converged to a point of local infeasibility.</li></ul></p>
- <p class="para">For more details on exitflag see the ipopt documentation, go to http://www.coin-or.org/Ipopt/documentation/</p>
- <p class="para">The output data structure contains detailed informations about the optimization process.
-It has type &#0034;struct&#0034; and contains the following fields.
-<ul class="itemizedlist"><li>output.Iterations: The number of iterations performed during the search</li>
-<li>output.Cpu_Time: The total cpu-time spend during the search</li>
-<li>output.Objective_Evaluation: The number of Objective Evaluations performed during the search</li>
-<li>output.Dual_Infeasibility: The Dual Infeasiblity of the final soution</li></ul></p>
- <p class="para">The lambda data structure contains the Lagrange multipliers at the end
-of optimization. In the current version the values are returned only when the the solution is optimal.
+ <p class="para">fgoalattain solves the goal attainment problem, which is a formulation for minimizing a multiobjective optimization problem. Find the minimum of a problem specified by:</p>
+ <p class="para">Minimise <span><img src='./_LaTeX_fgoalattain.xml_2.png' style='position:relative;top:6px;width:13px;height:15px'/></span> such that:</p>
+ <p class="para"><span><img src='./_LaTeX_fgoalattain.xml_3.png' style='position:relative;top:64px;width:214px;height:185px'/></span></p>
+ <p class="para"></p>
+ <p class="para">The solver makes use of fmincon, which uses the Ipopt solver, an optimization library written in C++, to solve the problem.</p>
+<h3 class="title">Options</h3>
+<p class="para">The options allow the user to set various parameters of the Optimization problem. The syntax for the options is given by:</p>
+ <p class="para">options= list(&#0034;MaxIter&#0034;, [---], &#0034;CpuTime&#0034;, [---], &#0034;GradObj&#0034;, ---, &#0034;Hessian&#0034;, ---, &#0034;GradCon&#0034;, ---);</p>
+ <p class="para">The options should be defined as type &#0034;list&#0034; and consist of the following fields:
+<ul class="itemizedlist"><li>MaxIter : A Scalar, specifying the maximum number of iterations that the solver should take.</li>
+<li>CpuTime : A Scalar, specifying the maximum amount of CPU time in seconds that the solver should take.</li>
+<li>GradObj : A function, representing the gradient function of the Objective in Vector Form.</li>
+<li>GradCon : A function, representing the gradient of the Non-Linear Constraints (both Equality and Inequality) of the problem. It is declared in such a way that gradient of non-linear inequality constraints are defined first as a separate Matrix (cg of size m2 X n or as an empty), followed by gradient of non-linear equality constraints as a separate matrix (ceqg of size m2 X n or as an empty) where m2 &amp;amp; m3 are number of non-linear inequality and equality constraints respectively.</li></ul>
+The default values for the various items are given as:</p>
+ <p class="para">options = list(&#0034;MaxIter&#0034;, [3000], &#0034;CpuTime&#0034;, [600]);</p>
+
+ <p class="para">The exitflag allows the user to know the status of the optimization which is returned by Ipopt. The values it can take and what they indicate is described below:
+<ul class="itemizedlist"><li>0 : Optimal Solution Found</li>
+<li>1 : Maximum Number of Iterations Exceeded. Output may not be optimal.</li>
+<li>2 : Maximum amount of CPU Time exceeded. Output may not be optimal.</li>
+<li>3 : Stop at Tiny Step.</li>
+<li>4 : Solved To Acceptable Level.</li>
+<li>5 : Converged to a point of local infeasibility.</li></ul></p>
+ <p class="para">For more details on exitflag, see the Ipopt documentation which can be found on http://www.coin-or.org/Ipopt/documentation/</p>
+ <p class="para">The output data structure contains detailed information about the optimization process.
+It is of type &#0034;struct&#0034; and contains the following fields.
+<ul class="itemizedlist"><li>output.Iterations: The number of iterations performed.</li>
+<li>output.Cpu_Time : The total cpu-time taken.</li>
+<li>output.Objective_Evaluation: The number of Objective Evaluations performed.</li>
+<li>output.Dual_Infeasibility : The Dual Infeasiblity of the final soution.</li>
+<li>output.Message: The output message for the problem.</li></ul></p>
+ <p class="para">The lambda data structure contains the Lagrange multipliers at the end of optimization. In the current version the values are returned only when the the solution is optimal.
It has type &#0034;struct&#0034; and contains the following fields.
<ul class="itemizedlist"><li>lambda.lower: The Lagrange multipliers for the lower bound constraints.</li>
<li>lambda.upper: The Lagrange multipliers for the upper bound constraints.</li>
@@ -144,22 +130,223 @@ It has type &#0034;struct&#0034; and contains the following fields.
<li>lambda.ineqnonlin: The Lagrange multipliers for the non-linear inequality constraints.</li></ul></p>
<p class="para"></p></div>
-<div class="refsection"><h3 class="title">Examples</h3>
- <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabfkeyword">function</span> <span class="scilabinputoutputargs">f1</span><span class="scilaboperator">=</span><span class="scilabfunctionid">gattainObjfun</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
+<p class="para">A few examples displaying the various functionalities of fgoalattain have been provided below. You will find a series of problems and the appropriate code snippets to solve them.</p>
+<div class="refsection"><h3 class="title">Example</h3>
+ Here we solve a simple objective function, subjected to no constraints.
+<p class="para"><span><img src='./_LaTeX_fgoalattain.xml_4.png' style='position:relative;top:61px;width:460px;height:205px'/></span></p>
+ <p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 1:</span>
+<span class="scilabcomment">// Objective function</span>
+<span class="scilabfkeyword">function</span> <span class="scilabinputoutputargs">f1</span><span class="scilaboperator">=</span><span class="scilabfunctionid">gattainObjfun</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
<span class="scilabinputoutputargs">f1</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span><span class="scilabnumber">2</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">+</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">-</span><span class="scilabnumber">48</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">-</span><span class="scilabnumber">40</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">+</span><span class="scilabnumber">304</span>
<span class="scilabinputoutputargs">f1</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span><span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">-</span><span class="scilabnumber">3</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span>
<span class="scilabinputoutputargs">f1</span><span class="scilabopenclose">(</span><span class="scilabnumber">3</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">+</span><span class="scilabnumber">3</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">-</span><span class="scilabnumber">18</span>
<span class="scilabinputoutputargs">f1</span><span class="scilabopenclose">(</span><span class="scilabnumber">4</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span><span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span>
<span class="scilabinputoutputargs">f1</span><span class="scilabopenclose">(</span><span class="scilabnumber">5</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">+</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">-</span><span class="scilabnumber">8</span>
<span class="scilabfkeyword">endfunction</span>
+<span class="scilabcomment">// The initial guess</span>
<span class="scilabid">x0</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Specifying the goal and the weights</span>
<span class="scilabid">goal</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">5</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">4</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
<span class="scilabid">weight</span><span class="scilaboperator">=</span><a class="scilabcommand" href="scilab://abs">abs</a><span class="scilabopenclose">(</span><span class="scilabid">goal</span><span class="scilabopenclose">)</span>
-<span class="scilabcomment">//gval =[- 0.0000011 -63.999998 -2.0000002 -8 3.485D-08]</span>
-<span class="scilabcomment">//z = [4 3.99]</span>
<span class="scilabcomment">//Run fgoalattain</span>
<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">fval</span><span class="scilabdefault">,</span><span class="scilabid">attainfactor</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span><span class="scilabid">fgoalattain</span><span class="scilabopenclose">(</span><span class="scilabfunctionid">gattainObjfun</span><span class="scilabdefault">,</span><span class="scilabid">x0</span><span class="scilabdefault">,</span><span class="scilabid">goal</span><span class="scilabdefault">,</span><span class="scilabid">weight</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+<div class="refsection"><h3 class="title">Example</h3>
+ We proceed to add simple linear inequality constraints.
+ <p class="para"><span><img src='./_LaTeX_fgoalattain.xml_5.png' style='position:relative;top:29px;width:225px;height:66px'/></span></p>
+ <p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 2:</span>
+<span class="scilabcomment">// Objective function</span>
+<span class="scilabfkeyword">function</span> <span class="scilabinputoutputargs">f1</span><span class="scilaboperator">=</span><span class="scilabfunctionid">gattainObjfun</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">f1</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span><span class="scilabnumber">2</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">+</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">-</span><span class="scilabnumber">48</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">-</span><span class="scilabnumber">40</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">+</span><span class="scilabnumber">304</span>
+<span class="scilabinputoutputargs">f1</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span><span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">-</span><span class="scilabnumber">3</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">f1</span><span class="scilabopenclose">(</span><span class="scilabnumber">3</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">+</span><span class="scilabnumber">3</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">-</span><span class="scilabnumber">18</span>
+<span class="scilabinputoutputargs">f1</span><span class="scilabopenclose">(</span><span class="scilabnumber">4</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span><span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">f1</span><span class="scilabopenclose">(</span><span class="scilabnumber">5</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">+</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">-</span><span class="scilabnumber">8</span>
+<span class="scilabfkeyword">endfunction</span>
+<span class="scilabcomment">// The initial guess</span>
+<span class="scilabid">x0</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Specifying the goal and the weights</span>
+<span class="scilabid">goal</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">5</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">4</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">weight</span><span class="scilaboperator">=</span><a class="scilabcommand" href="scilab://abs">abs</a><span class="scilabopenclose">(</span><span class="scilabid">goal</span><span class="scilabopenclose">)</span>
+<span class="scilabcomment">//Linear Inequality constraints</span>
+<span class="scilabid">A</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span> <span class="scilabdefault">;</span> <span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilaboperator">/</span><span class="scilabnumber">4</span> <span class="scilabdefault">;</span> <span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">2</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Run fgoalattain</span>
+<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">fval</span><span class="scilabdefault">,</span><span class="scilabid">attainfactor</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span><span class="scilabid">fgoalattain</span><span class="scilabopenclose">(</span><span class="scilabfunctionid">gattainObjfun</span><span class="scilabdefault">,</span><span class="scilabid">x0</span><span class="scilabdefault">,</span><span class="scilabid">goal</span><span class="scilabdefault">,</span><span class="scilabid">weight</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Example</h3>
+Here we build up on the previous example by adding linear equality constraints.
+We add the following constraints to the problem specified above: <p class="para"><span><img src='./_LaTeX_fgoalattain.xml_6.png' style='position:relative;top:17px;width:134px;height:42px'/></span></p>
+ <p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 3:</span>
+<span class="scilabcomment">// Objective function</span>
+<span class="scilabfkeyword">function</span> <span class="scilabinputoutputargs">f1</span><span class="scilaboperator">=</span><span class="scilabfunctionid">gattainObjfun</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">f1</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span><span class="scilabnumber">2</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">+</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">-</span><span class="scilabnumber">48</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">-</span><span class="scilabnumber">40</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">+</span><span class="scilabnumber">304</span>
+<span class="scilabinputoutputargs">f1</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span><span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">-</span><span class="scilabnumber">3</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">f1</span><span class="scilabopenclose">(</span><span class="scilabnumber">3</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">+</span><span class="scilabnumber">3</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">-</span><span class="scilabnumber">18</span>
+<span class="scilabinputoutputargs">f1</span><span class="scilabopenclose">(</span><span class="scilabnumber">4</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span><span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">f1</span><span class="scilabopenclose">(</span><span class="scilabnumber">5</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">+</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">-</span><span class="scilabnumber">8</span>
+<span class="scilabfkeyword">endfunction</span>
+<span class="scilabcomment">// The initial guess</span>
+<span class="scilabid">x0</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Specifying the goal and the weights</span>
+<span class="scilabid">goal</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">5</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">4</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">weight</span><span class="scilaboperator">=</span><a class="scilabcommand" href="scilab://abs">abs</a><span class="scilabopenclose">(</span><span class="scilabid">goal</span><span class="scilabopenclose">)</span>
+<span class="scilabcomment">//Linear Inequality constraints</span>
+<span class="scilabid">A</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span> <span class="scilabdefault">;</span> <span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilaboperator">/</span><span class="scilabnumber">4</span> <span class="scilabdefault">;</span> <span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">2</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//We specify the linear equality constraints below.</span>
+<span class="scilabid">Aeq</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span> <span class="scilabnumber">2</span><span class="scilabdefault">,</span> <span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">beq</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilabnumber">2</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Run fgoalattain</span>
+<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">fval</span><span class="scilabdefault">,</span><span class="scilabid">attainfactor</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span><span class="scilabid">fgoalattain</span><span class="scilabopenclose">(</span><span class="scilabfunctionid">gattainObjfun</span><span class="scilabdefault">,</span><span class="scilabid">x0</span><span class="scilabdefault">,</span><span class="scilabid">goal</span><span class="scilabdefault">,</span><span class="scilabid">weight</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabid">Aeq</span><span class="scilabdefault">,</span><span class="scilabid">beq</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Example</h3>
+In this example, we proceed to add the upper and lower bounds to the objective function.
+ <p class="para"><span><img src='./_LaTeX_fgoalattain.xml_7.png' style='position:relative;top:17px;width:145px;height:42px'/></span></p>
+ <p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 4:</span>
+<span class="scilabcomment">// Objective function</span>
+<span class="scilabfkeyword">function</span> <span class="scilabinputoutputargs">f1</span><span class="scilaboperator">=</span><span class="scilabfunctionid">gattainObjfun</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">f1</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span><span class="scilabnumber">2</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">+</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">-</span><span class="scilabnumber">48</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">-</span><span class="scilabnumber">40</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">+</span><span class="scilabnumber">304</span>
+<span class="scilabinputoutputargs">f1</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span><span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">-</span><span class="scilabnumber">3</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">f1</span><span class="scilabopenclose">(</span><span class="scilabnumber">3</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">+</span><span class="scilabnumber">3</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">-</span><span class="scilabnumber">18</span>
+<span class="scilabinputoutputargs">f1</span><span class="scilabopenclose">(</span><span class="scilabnumber">4</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span><span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">f1</span><span class="scilabopenclose">(</span><span class="scilabnumber">5</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">+</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">-</span><span class="scilabnumber">8</span>
+<span class="scilabfkeyword">endfunction</span>
+<span class="scilabcomment">// The initial guess</span>
+<span class="scilabid">x0</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Specifying the goal and the weights</span>
+<span class="scilabid">goal</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">5</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">4</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">weight</span><span class="scilaboperator">=</span><a class="scilabcommand" href="scilab://abs">abs</a><span class="scilabopenclose">(</span><span class="scilabid">goal</span><span class="scilabopenclose">)</span>
+<span class="scilabcomment">//Linear Inequality constraints</span>
+<span class="scilabid">A</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span> <span class="scilabdefault">;</span> <span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilaboperator">/</span><span class="scilabnumber">4</span> <span class="scilabdefault">;</span> <span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">2</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//We specify the linear equality constraints below.</span>
+<span class="scilabid">Aeq</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span> <span class="scilabnumber">2</span><span class="scilabdefault">,</span> <span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">beq</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilabnumber">2</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//The upper and lower bounds for the objective function are defined in simple vectors as shown below.</span>
+<span class="scilabid">lb</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilaboperator">-</span><span class="scilabconstants">%inf</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">ub</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabconstants">%inf</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span> <span class="scilabcomment">//</span>
+<span class="scilabcomment">//Run fgoalattain</span>
+<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">fval</span><span class="scilabdefault">,</span><span class="scilabid">attainfactor</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span><span class="scilabid">fgoalattain</span><span class="scilabopenclose">(</span><span class="scilabfunctionid">gattainObjfun</span><span class="scilabdefault">,</span><span class="scilabid">x0</span><span class="scilabdefault">,</span><span class="scilabid">goal</span><span class="scilabdefault">,</span><span class="scilabid">weight</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabid">Aeq</span><span class="scilabdefault">,</span><span class="scilabid">beq</span><span class="scilabdefault">,</span><span class="scilabid">lb</span><span class="scilabdefault">,</span><span class="scilabid">ub</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+
+<div class="refsection"><h3 class="title">Example</h3>
+Finally, we add the non-linear constraints to the problem. Note that there is a notable difference in the way this is done as compared to defining the linear constraints.
+ <p class="para"><span><img src='./_LaTeX_fgoalattain.xml_8.png' style='position:relative;top:22px;width:139px;height:52px'/></span></p>
+ <p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 5:</span>
+<span class="scilabcomment">// Objective function</span>
+<span class="scilabfkeyword">function</span> <span class="scilabinputoutputargs">f1</span><span class="scilaboperator">=</span><span class="scilabfunctionid">gattainObjfun</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">f1</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span><span class="scilabnumber">2</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">+</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">-</span><span class="scilabnumber">48</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">-</span><span class="scilabnumber">40</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">+</span><span class="scilabnumber">304</span>
+<span class="scilabinputoutputargs">f1</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span><span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">-</span><span class="scilabnumber">3</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">f1</span><span class="scilabopenclose">(</span><span class="scilabnumber">3</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">+</span><span class="scilabnumber">3</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">-</span><span class="scilabnumber">18</span>
+<span class="scilabinputoutputargs">f1</span><span class="scilabopenclose">(</span><span class="scilabnumber">4</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span><span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">f1</span><span class="scilabopenclose">(</span><span class="scilabnumber">5</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">+</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">-</span><span class="scilabnumber">8</span>
+<span class="scilabfkeyword">endfunction</span>
+<span class="scilabcomment">// The initial guess</span>
+<span class="scilabid">x0</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Specifying the goal and the weights</span>
+<span class="scilabid">goal</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">5</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">4</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">weight</span><span class="scilaboperator">=</span><a class="scilabcommand" href="scilab://abs">abs</a><span class="scilabopenclose">(</span><span class="scilabid">goal</span><span class="scilabopenclose">)</span>
+<span class="scilabcomment">//Linear Inequality constraints</span>
+<span class="scilabid">A</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span> <span class="scilabdefault">;</span> <span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilaboperator">/</span><span class="scilabnumber">4</span> <span class="scilabdefault">;</span> <span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">2</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//We specify the linear equality constraints below.</span>
+<span class="scilabid">Aeq</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span> <span class="scilabnumber">2</span><span class="scilabdefault">,</span> <span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">beq</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilabnumber">2</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//The upper and lower bounds for the objective function are defined in simple vectors as shown below.</span>
+<span class="scilabid">lb</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilaboperator">-</span><span class="scilabconstants">%inf</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">ub</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabconstants">%inf</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span> <span class="scilabcomment">//</span>
+<span class="scilabcomment">//Nonlinear constraints are required to be defined as a single function with the inequality and equality constraints in separate vectors.</span>
+<span class="scilabfkeyword">function</span> <span class="scilabopenclose">[</span><span class="scilabinputoutputargs">c</span><span class="scilabdefault">, </span><span class="scilabinputoutputargs">ceq</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span><span class="scilabfunctionid">nlc</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">c</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilaboperator">-</span><span class="scilabnumber">5</span><span class="scilabdefault">,</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilaboperator">+</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilaboperator">-</span><span class="scilabnumber">8</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">ceq</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabfkeyword">endfunction</span>
+<span class="scilabcomment">//Run fgoalattain</span>
+<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">fval</span><span class="scilabdefault">,</span><span class="scilabid">attainfactor</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span><span class="scilabid">fgoalattain</span><span class="scilabopenclose">(</span><span class="scilabfunctionid">gattainObjfun</span><span class="scilabdefault">,</span><span class="scilabid">x0</span><span class="scilabdefault">,</span><span class="scilabid">goal</span><span class="scilabdefault">,</span><span class="scilabid">weight</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabid">Aeq</span><span class="scilabdefault">,</span><span class="scilabid">beq</span><span class="scilabdefault">,</span><span class="scilabid">lb</span><span class="scilabdefault">,</span><span class="scilabid">ub</span><span class="scilabdefault">,</span><span class="scilabfunctionid">nlc</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+
+<div class="refsection"><h3 class="title">Example</h3>
+ <p class="para">We can further enhance the functionality of fgoalattain by setting input options. We can pre-define the gradient of the objective function and/or the hessian of the lagrange function and thereby improve the speed of computation. This is elaborated on in example 6. We take the following problem, specify the gradients, and the jacobian matrix of the constraints. We also set solver parameters using the options.</p>
+<p class="para"><span><img src='./_LaTeX_fgoalattain.xml_9.png' style='position:relative;top:17px;width:205px;height:42px'/></span></p>
+ <p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 6: Using the available options</span>
+<span class="scilabfkeyword">function</span> <span class="scilabinputoutputargs">f1</span><span class="scilaboperator">=</span><span class="scilabfunctionid">gattainObjfun</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">f1</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span><span class="scilabnumber">2</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">+</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">-</span><span class="scilabnumber">48</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">-</span><span class="scilabnumber">40</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">+</span><span class="scilabnumber">304</span>
+<span class="scilabinputoutputargs">f1</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span><span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">-</span><span class="scilabnumber">3</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">f1</span><span class="scilabopenclose">(</span><span class="scilabnumber">3</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">+</span><span class="scilabnumber">3</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">-</span><span class="scilabnumber">18</span>
+<span class="scilabinputoutputargs">f1</span><span class="scilabopenclose">(</span><span class="scilabnumber">4</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span><span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">f1</span><span class="scilabopenclose">(</span><span class="scilabnumber">5</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">+</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">-</span><span class="scilabnumber">8</span>
+<span class="scilabfkeyword">endfunction</span>
+<span class="scilabcomment">// The initial guess</span>
+<span class="scilabid">x0</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Specifying the goal and the weights</span>
+<span class="scilabid">goal</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">5</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">4</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">weight</span><span class="scilaboperator">=</span><a class="scilabcommand" href="scilab://abs">abs</a><span class="scilabopenclose">(</span><span class="scilabid">goal</span><span class="scilabopenclose">)</span>
+<span class="scilabcomment">// Defining gradient of myfun</span>
+<span class="scilabfkeyword">function</span> <span class="scilabinputoutputargs">G</span><span class="scilaboperator">=</span><span class="scilabfunctionid">myfungrad</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">G</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span> <span class="scilabnumber">4</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span> <span class="scilabnumber">48</span><span class="scilabdefault">,</span> <span class="scilaboperator">-</span><span class="scilabnumber">2</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilabdefault">,</span> <span class="scilabnumber">1</span><span class="scilabdefault">,</span> <span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span> <span class="scilabnumber">1</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">2</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span> <span class="scilabnumber">40</span><span class="scilabdefault">,</span> <span class="scilaboperator">-</span><span class="scilabnumber">6</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilabdefault">,</span> <span class="scilabnumber">3</span><span class="scilabdefault">,</span> <span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span> <span class="scilabnumber">1</span><span class="scilabdefault">;</span> <span class="scilabopenclose">]</span><span class="scilaboperator">&#0039;</span>
+<span class="scilabfkeyword">endfunction</span>
+<span class="scilabcomment">// The nonlinear constraints and the Jacobian</span>
+<span class="scilabcomment">// matrix of the constraints</span>
+<span class="scilabfkeyword">function</span> <span class="scilabopenclose">[</span><span class="scilabinputoutputargs">c</span><span class="scilabdefault">, </span><span class="scilabinputoutputargs">ceq</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span><span class="scilabfunctionid">confun</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
+<span class="scilabcomment">// Inequality constraints</span>
+<span class="scilabinputoutputargs">c</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1.5</span> <span class="scilaboperator">+</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilabdefault">,</span> <span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span> <span class="scilabnumber">10</span><span class="scilabopenclose">]</span>
+<span class="scilabcomment">// No nonlinear equality constraints</span>
+<span class="scilabinputoutputargs">ceq</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span>
+<span class="scilabfkeyword">endfunction</span>
+<span class="scilabcomment">// Defining gradient of confungrad</span>
+<span class="scilabfkeyword">function</span> <span class="scilabopenclose">[</span><span class="scilabinputoutputargs">DC</span><span class="scilabdefault">, </span><span class="scilabinputoutputargs">DCeq</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span><span class="scilabfunctionid">cgrad</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
+<span class="scilabcomment">// DC(:,i) = gradient of the i-th constraint</span>
+<span class="scilabcomment">// DC = [</span>
+<span class="scilabcomment">// Dc1/Dx1 Dc1/Dx2</span>
+<span class="scilabcomment">// Dc2/Dx1 Dc2/Dx2</span>
+<span class="scilabcomment">// ]</span>
+<span class="scilabinputoutputargs">DC</span><span class="scilaboperator">=</span> <span class="scilabopenclose">[</span>
+<span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span> <span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span> <span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span>
+<span class="scilabopenclose">]</span><span class="scilaboperator">&#0039;</span>
+<span class="scilabinputoutputargs">DCeq</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilaboperator">&#0039;</span>
+<span class="scilabfkeyword">endfunction</span>
+<span class="scilabcomment">// Test with both gradient of objective and gradient of constraints</span>
+<span class="scilabid">Options</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">MaxIter</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabopenclose">[</span><span class="scilabnumber">3000</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span> <span class="scilabstring">&#0034;</span><span class="scilabstring">CpuTime</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabopenclose">[</span><span class="scilabnumber">600</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span><span class="scilabstring">&#0034;</span><span class="scilabstring">GradObj</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span><span class="scilabfunctionid">myfungrad</span><span class="scilabdefault">,</span><span class="scilabstring">&#0034;</span><span class="scilabstring">GradCon</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span><span class="scilabfunctionid">cgrad</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">// The initial guess</span>
+
+<span class="scilabcomment">// Run fgoalattain</span>
+<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">fval</span><span class="scilabdefault">,</span><span class="scilabid">maxfval</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">fgoalattain</span><span class="scilabopenclose">(</span><span class="scilabid">myfun</span><span class="scilabdefault">,</span><span class="scilabid">x0</span><span class="scilabdefault">,</span><span class="scilabid">goal</span><span class="scilabdefault">,</span><span class="scilabid">weight</span><span class="scilabdefault">,</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span> <span class="scilabfunctionid">confun</span><span class="scilabdefault">,</span> <span class="scilabid">Options</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Example</h3>
+Infeasible Problems: Find x in R^2 such that it minimizes the objective function used above under the following constraints:
+<p class="para"><span><img src='./_LaTeX_fgoalattain.xml_10.png' style='position:relative;top:19px;width:158px;height:46px'/></span></p>
+<p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 7:</span>
+<span class="scilabcomment">//Objective function</span>
+<span class="scilabfkeyword">function</span> <span class="scilabinputoutputargs">f1</span><span class="scilaboperator">=</span><span class="scilabfunctionid">gattainObjfun</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">f1</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span><span class="scilabnumber">2</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">+</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">-</span><span class="scilabnumber">48</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">-</span><span class="scilabnumber">40</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">+</span><span class="scilabnumber">304</span>
+<span class="scilabinputoutputargs">f1</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span><span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">-</span><span class="scilabnumber">3</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">f1</span><span class="scilabopenclose">(</span><span class="scilabnumber">3</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">+</span><span class="scilabnumber">3</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">-</span><span class="scilabnumber">18</span>
+<span class="scilabinputoutputargs">f1</span><span class="scilabopenclose">(</span><span class="scilabnumber">4</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span><span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">f1</span><span class="scilabopenclose">(</span><span class="scilabnumber">5</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">+</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">-</span><span class="scilabnumber">8</span>
+<span class="scilabfkeyword">endfunction</span>
+<span class="scilabcomment">// The initial guess</span>
+<span class="scilabid">x0</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Specifying goals and weights</span>
+<span class="scilabid">goal</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">5</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">4</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">weight</span><span class="scilaboperator">=</span><a class="scilabcommand" href="scilab://abs">abs</a><span class="scilabopenclose">(</span><span class="scilabid">goal</span><span class="scilabopenclose">)</span>
+<span class="scilabcomment">//Linear Inequality constraints</span>
+<span class="scilabid">A</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span> <span class="scilabdefault">;</span> <span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilaboperator">/</span><span class="scilabnumber">4</span> <span class="scilabdefault">;</span> <span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">2</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//We specify the linear equality constraints below.</span>
+<span class="scilabid">Aeq</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilaboperator">/</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">5</span><span class="scilabdefault">;</span> <span class="scilabnumber">2</span><span class="scilabdefault">,</span> <span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">beq</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">11</span><span class="scilabdefault">;</span><span class="scilabnumber">8</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">// Run fminimax</span>
+<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">fval</span><span class="scilabdefault">,</span><span class="scilabid">maxfval</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">fgoalattain</span><span class="scilabopenclose">(</span><span class="scilabfunctionid">gattainObjfun</span><span class="scilabdefault">,</span><span class="scilabid">x0</span><span class="scilabdefault">,</span><span class="scilabid">goal</span><span class="scilabdefault">,</span><span class="scilabid">weight</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabid">Aeq</span><span class="scilabdefault">,</span><span class="scilabid">beq</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
<div class="refsection"><h3 class="title">Authors</h3>
<ul class="itemizedlist"><li class="member">Prajwala TM, Sheetal Shalini , 2015</li></ul></div>
<br />
@@ -169,11 +356,11 @@ It has type &#0034;struct&#0034; and contains the following fields.
<tr><td colspan="3" class="next"><a href="http://bugzilla.scilab.org/enter_bug.cgi?product=Scilab%20software&component=Documentation%20pages" class="ulink">Report an issue</a></td></tr>
<tr>
<td width="30%">
- <span class="previous"><a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">&lt;&lt; FOSSEE Optimization Toolbox</a></span>
+ <span class="previous"><a href="cbcintlinprog.html">&lt;&lt; cbcintlinprog</a></span>
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a></span>
+ <span class="top"><a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/fminbnd.html b/help/en_US/scilab_en_US_help/fminbnd.html
index d60efaa..7e71531 100644
--- a/help/en_US/scilab_en_US_help/fminbnd.html
+++ b/help/en_US/scilab_en_US_help/fminbnd.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a></span>
+ <span class="top"><a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; fminbnd</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; fminbnd</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">fminbnd</h1>
@@ -44,53 +44,58 @@
<span class="default">[</span><span class="default">xopt</span><span class="default">,</span><span class="default">fopt</span><span class="default">,</span><span class="default">exitflag</span><span class="default">,</span><span class="default">output</span><span class="default">]=</span><span class="functionid">fminbnd</span><span class="default">(.....)</span>
<span class="default">[</span><span class="default">xopt</span><span class="default">,</span><span class="default">fopt</span><span class="default">,</span><span class="default">exitflag</span><span class="default">,</span><span class="default">output</span><span class="default">,</span><span class="default">lambda</span><span class="default">]=</span><span class="functionid">fminbnd</span><span class="default">(.....)</span></pre></div></div>
-<div class="refsection"><h3 class="title">Parameters</h3>
+<div class="refsection"><h3 class="title">Input Parameters</h3>
<dl><dt><span class="term">f :</span>
- <dd><p class="para">a function, representing the objective function of the problem</p></dd></dt>
- <dt><span class="term">x1 :</span>
- <dd><p class="para">a vector, containing the lower bound of the variables of size (1 X n) or (n X 1) where &#0039;n&#0039; is the number of Variables, where n is number of Variables</p></dd></dt>
- <dt><span class="term">x2 :</span>
- <dd><p class="para">a vector, containing the upper bound of the variables of size (1 X n) or (n X 1) or (0 X 0) where &#0039;n&#0039; is the number of Variables. If x2 is empty it means upper bound is +infinity</p></dd></dt>
+ <dd><p class="para">A function, representing the objective function of the problem.</p></dd></dt>
+ <dt><span class="term"><span><img src='./_LaTeX_fminbnd.xml_1.png' style='position:relative;top:5px;width:19px;height:14px'/></span> :</span>
+ <dd><p class="para">A vector, containing the lower bound of the variables of size (1 X n) or (n X 1) where n is number of variables. If it is empty it means that the lower bound is <span><img src='./_LaTeX_fminbnd.xml_2.png' style='position:relative;top:4px;width:33px;height:16px'/></span>.</p></dd></dt>
+ <dt><span class="term"><span><img src='./_LaTeX_fminbnd.xml_3.png' style='position:relative;top:5px;width:19px;height:14px'/></span> :</span>
+ <dd><p class="para">A vector, containing the upper bound of the variables of size (1 X n) or (n X 1) or (0 X 0) where n is the number of variables. If it is empty it means that the upper bound is <span><img src='./_LaTeX_fminbnd.xml_4.png' style='position:relative;top:2px;width:20px;height:11px'/></span>.</p></dd></dt>
<dt><span class="term">options :</span>
- <dd><p class="para">a list, containing the option for user to specify. See below for details.</p></dd></dt>
- <dt><span class="term">xopt :</span>
- <dd><p class="para">a vector of doubles, containing the the computed solution of the optimization problem.</p></dd></dt>
+ <dd><p class="para">A list, containing the options for user to specify. See below for details.</p></dd></dt></dl></div>
+ <div class="refsection"><h3 class="title">Outputs</h3>
+ <dl><dt><span class="term">xopt :</span>
+ <dd><p class="para">A vector of doubles, containing the computed solution of the optimization problem.</p></dd></dt>
<dt><span class="term">fopt :</span>
- <dd><p class="para">a scalar of double, containing the the function value at x.</p></dd></dt>
+ <dd><p class="para">A double, containing the the function value at x.</p></dd></dt>
<dt><span class="term">exitflag :</span>
- <dd><p class="para">a scalar of integer, containing the flag which denotes the reason for termination of algorithm. See below for details.</p></dd></dt>
+ <dd><p class="para">An integer, containing the flag which denotes the reason for termination of algorithm. See below for details.</p></dd></dt>
<dt><span class="term">output :</span>
- <dd><p class="para">a structure, containing the information about the optimization. See below for details.</p></dd></dt>
+ <dd><p class="para">A structure, containing the information about the optimization. See below for details.</p></dd></dt>
<dt><span class="term">lambda :</span>
- <dd><p class="para">a structure, containing the Lagrange multipliers of lower bound and upper bound at the optimized point. See below for details.</p></dd></dt></dl></div>
+ <dd><p class="para">A structure, containing the Lagrange multipliers of lower bound, upper bound and constraints at the optimized point. See below for details.</p></dd></dt></dl></div>
<div class="refsection"><h3 class="title">Description</h3>
<p class="para">Search the minimum of a multi-variable function on bounded interval specified by :
Find the minimum of f(x) such that</p>
- <p class="para"><span><img src='./_LaTeX_fminbnd.xml_1.png' style='position:relative;top:20px;width:219px;height:48px'/></span></p>
- <p class="para">The routine calls Ipopt for solving the Bounded Optimization problem, Ipopt is a library written in C++.</p>
- <p class="para">The options allows the user to set various parameters of the Optimization problem.
-It should be defined as type &#0034;list&#0034; and contains the following fields.
-<ul class="itemizedlist"><li>Syntax : options= list(&#0034;MaxIter&#0034;, [---], &#0034;CpuTime&#0034;, [---], TolX, [----]);</li>
-<li>MaxIter : a Scalar, containing the Maximum Number of Iteration that the solver should take.</li>
-<li>CpuTime : a Scalar, containing the Maximum amount of CPU Time that the solver should take.</li>
-<li>TolX : a Scalar, containing the Tolerance value that the solver should take.</li>
-<li>Default Values : options = list(&#0034;MaxIter&#0034;, [3000], &#0034;CpuTime&#0034;, [600], TolX, [1e-4]);</li></ul></p>
- <p class="para">The exitflag allows to know the status of the optimization which is given back by Ipopt.
-<ul class="itemizedlist"><li>exitflag=0 : Optimal Solution Found</li>
-<li>exitflag=1 : Maximum Number of Iterations Exceeded. Output may not be optimal.</li>
-<li>exitflag=2 : Maximum CPU Time exceeded. Output may not be optimal.</li>
-<li>exitflag=3 : Stop at Tiny Step.</li>
-<li>exitflag=4 : Solved To Acceptable Level.</li>
-<li>exitflag=5 : Converged to a point of local infeasibility.</li></ul></p>
- <p class="para">For more details on exitflag see the ipopt documentation, go to http://www.coin-or.org/Ipopt/documentation/</p>
+ <p class="para"><span><img src='./_LaTeX_fminbnd.xml_5.png' style='position:relative;top:30px;width:179px;height:68px'/></span></p>
+ <p class="para">fminbnd calls Ipopt which is an optimization library written in C++, to solve the bound optimization problem.</p>
+
+<p class="para"><h3 class="title">Options</h3>
+The options allow the user to set various parameters of the Optimization problem. The syntax for the options is given by:</p>
+ <p class="para">options= list(&#0034;MaxIter&#0034;, [---], &#0034;CpuTime&#0034;, [---], &#0034;TolX&#0034;, [---]);</p>
+ <p class="para">The options should be defined as type &#0034;list&#0034; and consist of the following fields:
+<ul class="itemizedlist"><li>MaxIter : A scalar, specifying the maximum number of iterations that the solver should take.</li>
+<li>CpuTime : A scalar, specifying the maximum amount of CPU Time in seconds that the solver should take.</li>
+<li>TolX : A scalar, containing the tolerance value that the solver should take.</li></ul>
+The default values for the various items are given as:</p>
+ <p class="para">options = list(&#0034;MaxIter&#0034;, [3000], &#0034;CpuTime&#0034;, [600]);</p>
+
+ <p class="para">The exitflag allows the user to know the status of the optimization which is returned by Ipopt. The values it can take and what they indicate is described below:
+<ul class="itemizedlist"><li>0 : Optimal Solution Found</li>
+<li>1 : Maximum Number of Iterations Exceeded. Output may not be optimal.</li>
+<li>2 : Maximum amount of CPU Time exceeded. Output may not be optimal.</li>
+<li>3 : Stop at Tiny Step.</li>
+<li>4 : Solved To Acceptable Level.</li>
+<li>5 : Converged to a point of local infeasibility.</li></ul></p>
+ <p class="para">For more details on exitflag, see the ipopt documentation which can be found on http://www.coin-or.org/Ipopt/documentation/</p>
<p class="para">The output data structure contains detailed informations about the optimization process.
-It has type &#0034;struct&#0034; and contains the following fields.
-<ul class="itemizedlist"><li>output.Iterations: The number of iterations performed during the search</li>
-<li>output.Cpu_Time: The total cpu-time spend during the search</li>
-<li>output.Objective_Evaluation: The number of Objective Evaluations performed during the search</li>
-<li>output.Dual_Infeasibility: The Dual Infeasiblity of the final soution</li>
-<li>output.Message: The output message for the problem</li></ul></p>
+It is of type &#0034;struct&#0034; and contains the following fields.
+<ul class="itemizedlist"><li>output.Iterations: The number of iterations performed.</li>
+<li>output.Cpu_Time : The total cpu-time taken.</li>
+<li>output.Objective_Evaluation: The number of Objective Evaluations performed.</li>
+<li>output.Dual_Infeasibility : The Dual Infeasiblity of the final soution.</li>
+<li>output.Message: The output message for the problem.</li></ul></p>
<p class="para">The lambda data structure contains the Lagrange multipliers at the end
of optimization. In the current version the values are returned only when the the solution is optimal.
It has type &#0034;struct&#0034; and contains the following fields.
@@ -98,10 +103,30 @@ It has type &#0034;struct&#0034; and contains the following fields.
<li>lambda.upper: The Lagrange multipliers for the upper bound constraints.</li></ul></p>
<p class="para"></p></div>
-<div class="refsection"><h3 class="title">Examples</h3>
- <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Find x in R^6 such that it minimizes:</span>
-<span class="scilabcomment">//f(x)= sin(x1) + sin(x2) + sin(x3) + sin(x4) + sin(x5) + sin(x6)</span>
-<span class="scilabcomment">//-2 </span><span class="scilabcomment">&#0060;</span><span class="scilabcomment">= x1,x2,x3,x4,x5,x6 </span><span class="scilabcomment">&#0060;</span><span class="scilabcomment">= 2</span>
+ <p class="para">A few examples displaying the various functionalities of fminbnd have been provided below. You will find a series of problems and the appropriate code snippets to solve them.</p>
+<div class="refsection"><h3 class="title">Example</h3>
+<p class="para">Here we solve a simple non-linear objective function, bounded in the interval [0,1000].</p>
+ <p class="para">Find x in R such that it minimizes:</p>
+ <p class="para"><span><img src='./_LaTeX_fminbnd.xml_6.png' style='position:relative;top:7px;width:221px;height:88px'/></span></p>
+ <p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabid">Example</span> <span class="scilabnumber">1</span><span class="scilabspecial">:</span> <span class="scilabid">Minimizing</span> <span class="scilabid">a</span> <span class="scilabid">bound</span> <span class="scilabfkeyword">function</span> <span class="scilabid">R</span><span class="scilaboperator">.</span>
+<span class="scilabcomment">//Objective function to be minimised</span>
+<span class="scilabfkeyword">function</span> <span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span><span class="scilabfunctionid">f</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span><span class="scilabnumber">1</span><span class="scilaboperator">/</span><span class="scilabinputoutputargs">x</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span>
+<span class="scilabfkeyword">endfunction</span>
+<span class="scilabcomment">//Variable bounds</span>
+<span class="scilabid">x1</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">0</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">x2</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1000</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Calling Ipopt</span>
+<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">fval</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span><span class="scilabid">fminbnd</span><span class="scilabopenclose">(</span><span class="scilabfunctionid">f</span><span class="scilabdefault">,</span> <span class="scilabid">x1</span><span class="scilabdefault">,</span> <span class="scilabid">x2</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+
+<div class="refsection"><h3 class="title">Example</h3>
+<p class="para">Here we solve a bounded objective function in R^6. We use this function to illustrate how we can further enhance the functionality of fminbnd by setting input options. We can pre-define the gradient of the objective function and/or the hessian of the lagrange function and thereby improve the speed of computation. This is elaborated on in example 2. We also set solver parameters using the options.</p>
+ <p class="para">Find x in R^6 such that it minimizes:</p>
+ <p class="para"><span><img src='./_LaTeX_fminbnd.xml_7.png' style='position:relative;top:8px;width:506px;height:73px'/></span></p>
+<p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 2: Solving an objective function in R^6.</span>
<span class="scilabcomment">//Objective function to be minimised</span>
<span class="scilabfkeyword">function</span> <span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span><span class="scilabfunctionid">f</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
<span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span><span class="scilabnumber">0</span>
@@ -115,29 +140,13 @@ It has type &#0034;struct&#0034; and contains the following fields.
<span class="scilabcomment">//Options</span>
<span class="scilabid">options</span><span class="scilaboperator">=</span><a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">MaxIter</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span><span class="scilabopenclose">[</span><span class="scilabnumber">1500</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span><span class="scilabstring">&#0034;</span><span class="scilabstring">CpuTime</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabopenclose">[</span><span class="scilabnumber">100</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span><span class="scilabstring">&#0034;</span><span class="scilabstring">TolX</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span><span class="scilabopenclose">[</span><span class="scilabnumber">1e-6</span><span class="scilabopenclose">]</span><span class="scilabopenclose">)</span>
<span class="scilabcomment">//Calling Ipopt</span>
-<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">fval</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span><span class="scilabid">fminbnd</span><span class="scilabopenclose">(</span><span class="scilabfunctionid">f</span><span class="scilabdefault">,</span> <span class="scilabid">x1</span><span class="scilabdefault">,</span> <span class="scilabid">x2</span><span class="scilabdefault">,</span> <span class="scilabid">options</span><span class="scilabopenclose">)</span>
-<span class="scilabcomment">// Press ENTER to continue</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">fval</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span><span class="scilabid">fminbnd</span><span class="scilabopenclose">(</span><span class="scilabfunctionid">f</span><span class="scilabdefault">,</span> <span class="scilabid">x1</span><span class="scilabdefault">,</span> <span class="scilabid">x2</span><span class="scilabdefault">,</span> <span class="scilabid">options</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
-<div class="refsection"><h3 class="title">Examples</h3>
- <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Find x in R such that it minimizes:</span>
-<span class="scilabcomment">//f(x)= 1/x^2</span>
-<span class="scilabcomment">//0 </span><span class="scilabcomment">&#0060;</span><span class="scilabcomment">= x </span><span class="scilabcomment">&#0060;</span><span class="scilabcomment">= 1000</span>
-<span class="scilabcomment">//Objective function to be minimised</span>
-<span class="scilabfkeyword">function</span> <span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span><span class="scilabfunctionid">f</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
-<span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span><span class="scilabnumber">1</span><span class="scilaboperator">/</span><span class="scilabinputoutputargs">x</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span>
-<span class="scilabfkeyword">endfunction</span>
-<span class="scilabcomment">//Variable bounds</span>
-<span class="scilabid">x1</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">0</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
-<span class="scilabid">x2</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1000</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
-<span class="scilabcomment">//Calling Ipopt</span>
-<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">fval</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span><span class="scilabid">fminbnd</span><span class="scilabopenclose">(</span><span class="scilabfunctionid">f</span><span class="scilabdefault">,</span> <span class="scilabid">x1</span><span class="scilabdefault">,</span> <span class="scilabid">x2</span><span class="scilabopenclose">)</span>
-<span class="scilabcomment">// Press ENTER to continue</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
-
-<div class="refsection"><h3 class="title">Examples</h3>
- <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//The below problem is an unbounded problem:</span>
-<span class="scilabcomment">//Find x in R^2 such that it minimizes:</span>
-<span class="scilabcomment">//f(x)= -[(x1-1)^2 + (x2-1)^2]</span>
-<span class="scilabcomment">//-inf </span><span class="scilabcomment">&#0060;</span><span class="scilabcomment">= x1,x2 </span><span class="scilabcomment">&#0060;</span><span class="scilabcomment">= inf</span>
+<div class="refsection"><h3 class="title">Example</h3>
+<p class="para">Unbounded Problems: Find x in R^2 such that it minimizes:</p>
+ <p class="para"><span><img src='./_LaTeX_fminbnd.xml_8.png' style='position:relative;top:17px;width:237px;height:93px'/></span></p>
+ <p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 3: Unbounded objective function.</span>
<span class="scilabcomment">//Objective function to be minimised</span>
<span class="scilabfkeyword">function</span> <span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span><span class="scilabfunctionid">f</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
<span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span><span class="scilaboperator">-</span><span class="scilabopenclose">(</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilaboperator">+</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
@@ -163,7 +172,7 @@ It has type &#0034;struct&#0034; and contains the following fields.
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a></span>
+ <span class="top"><a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/fmincon.html b/help/en_US/scilab_en_US_help/fmincon.html
index 5dc1d2b..c36f58f 100644
--- a/help/en_US/scilab_en_US_help/fmincon.html
+++ b/help/en_US/scilab_en_US_help/fmincon.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a></span>
+ <span class="top"><a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a></span>
</td>
<td width="30%" class="next">
@@ -29,11 +29,11 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; fmincon</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; fmincon</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">fmincon</h1>
- <p class="refpurpose">Solves a multi-variable constrainted optimization problem</p></div>
+ <p class="refpurpose">Solves a multi-variable constrainted optimization problem.</p></div>
<div class="refsynopsisdiv"><h3 class="title">Calling Sequence</h3>
@@ -49,73 +49,75 @@
<span class="default">[</span><span class="default">xopt</span><span class="default">,</span><span class="default">fopt</span><span class="default">,</span><span class="default">exitflag</span><span class="default">,</span><span class="default">output</span><span class="default">,</span><span class="default">lambda</span><span class="default">,</span><span class="default">gradient</span><span class="default">]=</span><span class="functionid">fmincon</span><span class="default">(.....)</span>
<span class="default">[</span><span class="default">xopt</span><span class="default">,</span><span class="default">fopt</span><span class="default">,</span><span class="default">exitflag</span><span class="default">,</span><span class="default">output</span><span class="default">,</span><span class="default">lambda</span><span class="default">,</span><span class="default">gradient</span><span class="default">,</span><span class="default">hessian</span><span class="default">]=</span><span class="functionid">fmincon</span><span class="default">(.....)</span></pre></div></div>
-<div class="refsection"><h3 class="title">Parameters</h3>
+<div class="refsection"><h3 class="title">Input Parameters</h3>
<dl><dt><span class="term">f :</span>
- <dd><p class="para">a function, representing the objective function of the problem</p></dd></dt>
+ <dd><p class="para">A function, representing the objective function of the problem.</p></dd></dt>
<dt><span class="term">x0 :</span>
- <dd><p class="para">a vector of doubles, containing the starting values of variables of size (1 X n) or (n X 1) where &#0039;n&#0039; is the number of Variables</p></dd></dt>
+ <dd><p class="para">A vector of doubles, containing the starting values of variables of size (1 X n) or (n X 1) where &#0039;n&#0039; is the number of variables.</p></dd></dt>
<dt><span class="term">A :</span>
- <dd><p class="para">a matrix of doubles, containing the coefficients of linear inequality constraints of size (m X n) where &#0039;m&#0039; is the number of linear inequality constraints</p></dd></dt>
+ <dd><p class="para">A matrix of doubles, containing the coefficients of linear inequality constraints of size (m X n) where &#0039;m&#0039; is the number of linear inequality constraints.</p></dd></dt>
<dt><span class="term">b :</span>
- <dd><p class="para">a vector of doubles, related to &#0039;A&#0039; and containing the the Right hand side equation of the linear inequality constraints of size (m X 1)</p></dd></dt>
+ <dd><p class="para">A vector of doubles, related to &#0039;A&#0039; and represents the linear coefficients in the linear inequality constraints of size (m X 1).</p></dd></dt>
<dt><span class="term">Aeq :</span>
- <dd><p class="para">a matrix of doubles, containing the coefficients of linear equality constraints of size (m1 X n) where &#0039;m1&#0039; is the number of linear equality constraints</p></dd></dt>
+ <dd><p class="para">A matrix of doubles, containing the coefficients of linear equality constraints of size (m1 X n) where &#0039;m1&#0039; is the number of linear equality constraints.</p></dd></dt>
<dt><span class="term">beq :</span>
- <dd><p class="para">a vector of doubles, related to &#0039;Aeq&#0039; and containing the the Right hand side equation of the linear equality constraints of size (m1 X 1)</p></dd></dt>
+ <dd><p class="para">A vector of double, vector of doubles, related to &#0039;Aeq&#0039; and represents the linear coefficients in the equality constraints of size (m1 X 1).</p></dd></dt>
<dt><span class="term">lb :</span>
- <dd><p class="para">a vector of doubles, containing the lower bounds of the variables of size (1 X n) or (n X 1) where &#0039;n&#0039; is the number of Variables</p></dd></dt>
+ <dd><p class="para">A vector of doubles, containing the lower bounds of the variables of size (1 X n) or (n X 1) where &#0039;n&#0039; is the number of variables.</p></dd></dt>
<dt><span class="term">ub :</span>
- <dd><p class="para">a vector of doubles, containing the upper bounds of the variables of size (1 X n) or (n X 1) where &#0039;n&#0039; is the number of Variables</p></dd></dt>
+ <dd><p class="para">A vector of doubles, containing the upper bounds of the variables of size (1 X n) or (n X 1) where &#0039;n&#0039; is the number of variables.</p></dd></dt>
<dt><span class="term">nlc :</span>
- <dd><p class="para">a function, representing the Non-linear Constraints functions(both Equality and Inequality) of the problem. It is declared in such a way that non-linear inequality constraints are defined first as a single row vector (c), followed by non-linear equality constraints as another single row vector (ceq). Refer Example for definition of Constraint function.</p></dd></dt>
+ <dd><p class="para">A function, representing the Non-linear Constraints functions(both Equality and Inequality) of the problem. It is declared in such a way that non-linear inequality constraints (c), and the non-linear equality constraints (ceq) are defined as separate single row vectors.</p></dd></dt>
<dt><span class="term">options :</span>
- <dd><p class="para">a list, containing the option for user to specify. See below for details.</p></dd></dt>
- <dt><span class="term">xopt :</span>
- <dd><p class="para">a vector of doubles, cointating the computed solution of the optimization problem</p></dd></dt>
+ <dd><p class="para">A list, containing the option for user to specify. See below for details.</p></dd></dt></dl></div>
+<div class="refsection"><h3 class="title">Outputs</h3>
+ <dl><dt><span class="term">xopt :</span>
+ <dd><p class="para">A vector of doubles, containing the computed solution of the optimization problem.</p></dd></dt>
<dt><span class="term">fopt :</span>
- <dd><p class="para">a scalar of double, containing the the function value at x</p></dd></dt>
+ <dd><p class="para">A double, containing the value of the function at x.</p></dd></dt>
<dt><span class="term">exitflag :</span>
- <dd><p class="para">a scalar of integer, containing the flag which denotes the reason for termination of algorithm. See below for details.</p></dd></dt>
+ <dd><p class="para">An integer, containing the flag which denotes the reason for termination of algorithm. See below for details.</p></dd></dt>
<dt><span class="term">output :</span>
- <dd><p class="para">a structure, containing the information about the optimization. See below for details.</p></dd></dt>
+ <dd><p class="para">A structure, containing the information about the optimization. See below for details.</p></dd></dt>
<dt><span class="term">lambda :</span>
- <dd><p class="para">a structure, containing the Lagrange multipliers of lower bound, upper bound and constraints at the optimized point. See below for details.</p></dd></dt>
+ <dd><p class="para">A structure, containing the Lagrange multipliers of the lower bounds, upper bounds and constraints at the optimized point. See below for details.</p></dd></dt>
<dt><span class="term">gradient :</span>
- <dd><p class="para">a vector of doubles, containing the Objective&#0039;s gradient of the solution.</p></dd></dt>
+ <dd><p class="para">A vector of doubles, containing the objective&#0039;s gradient of the solution.</p></dd></dt>
<dt><span class="term">hessian :</span>
- <dd><p class="para">a matrix of doubles, containing the Lagrangian&#0039;s hessian of the solution.</p></dd></dt></dl></div>
+ <dd><p class="para">A matrix of doubles, containing the Lagrangian&#0039;s hessian of the solution.</p></dd></dt></dl></div>
<div class="refsection"><h3 class="title">Description</h3>
- <p class="para">Search the minimum of a constrained optimization problem specified by :
-Find the minimum of f(x) such that</p>
- <p class="para"><span><img src='./_LaTeX_fmincon.xml_1.png' style='position:relative;top:63px;width:221px;height:134px'/></span></p>
- <p class="para">The routine calls Ipopt for solving the Constrained Optimization problem, Ipopt is a library written in C++.</p>
- <p class="para">The options allows the user to set various parameters of the Optimization problem.
-It should be defined as type &#0034;list&#0034; and contains the following fields.
-<ul class="itemizedlist"><li>Syntax : options= list(&#0034;MaxIter&#0034;, [---], &#0034;CpuTime&#0034;, [---], &#0034;GradObj&#0034;, ---, &#0034;Hessian&#0034;, ---, &#0034;GradCon&#0034;, ---);</li>
-<li>MaxIter : a Scalar, containing the Maximum Number of Iteration that the solver should take.</li>
-<li>CpuTime : a Scalar, containing the Maximum amount of CPU Time that the solver should take.</li>
-<li>GradObj : a function, representing the gradient function of the Objective in Vector Form.</li>
-<li>Hessian : a function, representing the hessian function of the Lagrange in Symmetric Matrix Form with Input parameters x, Objective factor and Lambda. Refer Example for definition of Lagrangian Hessian function.</li>
-<li>GradCon : a function, representing the gradient of the Non-Linear Constraints (both Equality and Inequality) of the problem. It is declared in such a way that gradient of non-linear inequality constraints are defined first as a separate Matrix (cg of size m2 X n or as an empty), followed by gradient of non-linear equality constraints as a separate Matrix (ceqg of size m2 X n or as an empty) where m2 &amp; m3 are number of non-linear inequality and equality constraints respectively.</li>
-<li>Default Values : options = list(&#0034;MaxIter&#0034;, [3000], &#0034;CpuTime&#0034;, [600]);</li></ul></p>
- <p class="para">The exitflag allows to know the status of the optimization which is given back by Ipopt.
-<ul class="itemizedlist"><li>exitflag=0 : Optimal Solution Found</li>
-<li>exitflag=1 : Maximum Number of Iterations Exceeded. Output may not be optimal.</li>
-<li>exitflag=2 : Maximum amount of CPU Time exceeded. Output may not be optimal.</li>
-<li>exitflag=3 : Stop at Tiny Step.</li>
-<li>exitflag=4 : Solved To Acceptable Level.</li>
-<li>exitflag=5 : Converged to a point of local infeasibility.</li></ul></p>
- <p class="para">For more details on exitflag see the ipopt documentation, go to http://www.coin-or.org/Ipopt/documentation/</p>
- <p class="para">The output data structure contains detailed informations about the optimization process.
-It has type &#0034;struct&#0034; and contains the following fields.
-<ul class="itemizedlist"><li>output.Iterations: The number of iterations performed during the search</li>
-<li>output.Cpu_Time: The total cpu-time spend during the search</li>
-<li>output.Objective_Evaluation: The number of Objective Evaluations performed during the search</li>
-<li>output.Dual_Infeasibility: The Dual Infeasiblity of the final soution</li>
-<li>output.Message: The output message for the problem</li></ul></p>
- <p class="para">The lambda data structure contains the Lagrange multipliers at the end
-of optimization. In the current version the values are returned only when the the solution is optimal.
+ <p class="para">Search the minimum of a constrained optimization problem specified by:</p>
+ <p class="para">Find the minimum of f(x) such that</p>
+ <p class="para"><span><img src='./_LaTeX_fmincon.xml_1.png' style='position:relative;top:74px;width:220px;height:156px'/></span></p>
+ <p class="para">fmincon calls Ipopt, an optimization library written in C++, to solve the Constrained Optimization problem.</p>
+ <p class="para"><h3 class="title">Options</h3>
+The options allow the user to set various parameters of the Optimization problem. The syntax for the options is given by:</p>
+ <p class="para">options= list(&#0034;MaxIter&#0034;, [---], &#0034;CpuTime&#0034;, [---], &#0034;GradObj&#0034;, ---, &#0034;Hessian&#0034;, ---, &#0034;GradCon&#0034;, ---);</p>
+ <p class="para">The options should be defined as type &#0034;list&#0034; and consist of the following fields:
+<ul class="itemizedlist"><li>MaxIter : A Scalar, specifying the maximum number of iterations that the solver should take.</li>
+<li>CpuTime : A Scalar, specifying the maximum amount of CPU time in seconds that the solver should take.</li>
+<li>GradObj : A function, representing the gradient function of the Objective in vector form.</li>
+<li>Hessian : A function, representing the hessian function of the Lagrange in the form of a Symmetric Matrix with Input parameters as x, Objective factor and Lambda. Refer to Example 5 for definition of Lagrangian Hessian function.</li>
+<li>GradCon : A function, representing the gradient of the Non-Linear Constraints (both Equality and Inequality) of the problem. It is declared in such a way that gradient of non-linear inequality constraints are defined first as a separate Matrix (cg of size m2 X n or as an empty), followed by gradient of non-linear equality constraints as a separate matrix (ceqg of size m2 X n or as an empty) where m2 &amp;amp; m3 are number of non-linear inequality and equality constraints respectively.</li></ul>
+The default values for the various items are given as:</p>
+ <p class="para">options = list(&#0034;MaxIter&#0034;, [3000], &#0034;CpuTime&#0034;, [600]);</p>
+ <p class="para">The exitflag allows the user to know the status of the optimization which is returned by Ipopt. The values it can take and what they indicate is described below:
+<ul class="itemizedlist"><li>0 : Optimal Solution Found</li>
+<li>1 : Maximum Number of Iterations Exceeded. Output may not be optimal.</li>
+<li>2 : Maximum amount of CPU Time exceeded. Output may not be optimal.</li>
+<li>3 : Stop at Tiny Step.</li>
+<li>4 : Solved To Acceptable Level.</li>
+<li>5 : Converged to a point of local infeasibility.</li></ul></p>
+ <p class="para">For more details on exitflag, see the Ipopt documentation which can be found on http://www.coin-or.org/Ipopt/documentation/</p>
+ <p class="para">The output data structure contains detailed information about the optimization process.
+It is of type &#0034;struct&#0034; and contains the following fields.
+<ul class="itemizedlist"><li>output.Iterations: The number of iterations performed.</li>
+<li>output.Cpu_Time : The total cpu-time taken.</li>
+<li>output.Objective_Evaluation: The number of Objective Evaluations performed.</li>
+<li>output.Dual_Infeasibility : The Dual Infeasiblity of the final soution.</li>
+<li>output.Message: The output message for the problem.</li></ul></p>
+ <p class="para">The lambda data structure contains the Lagrange multipliers at the end of optimization. In the current version, the values are returned only when the the solution is optimal.
It has type &#0034;struct&#0034; and contains the following fields.
<ul class="itemizedlist"><li>lambda.lower: The Lagrange multipliers for the lower bound constraints.</li>
<li>lambda.upper: The Lagrange multipliers for the upper bound constraints.</li>
@@ -123,52 +125,99 @@ It has type &#0034;struct&#0034; and contains the following fields.
<li>lambda.ineqlin: The Lagrange multipliers for the linear inequality constraints.</li>
<li>lambda.eqnonlin: The Lagrange multipliers for the non-linear equality constraints.</li>
<li>lambda.ineqnonlin: The Lagrange multipliers for the non-linear inequality constraints.</li></ul></p>
- <p class="para"></p></div>
+ <p class="para">A few examples displaying the various functionalities of fmincon have been provided below. You will find a series problems and the appropriate code snippets to solve them.</p></div>
-<div class="refsection"><h3 class="title">Examples</h3>
- <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Find x in R^2 such that it minimizes:</span>
-<span class="scilabcomment">//f(x)= -x1 -x2/3</span>
-<span class="scilabcomment">//x0=[0,0]</span>
-<span class="scilabcomment">//constraint-1 (c1): x1 + x2 </span><span class="scilabcomment">&#0060;</span><span class="scilabcomment">= 2</span>
-<span class="scilabcomment">//constraint-2 (c2): x1 + x2/4 </span><span class="scilabcomment">&#0060;</span><span class="scilabcomment">= 1</span>
-<span class="scilabcomment">//constraint-3 (c3): x1 - x2 </span><span class="scilabcomment">&#0060;</span><span class="scilabcomment">= 2</span>
-<span class="scilabcomment">//constraint-4 (c4): -x1/4 - x2 </span><span class="scilabcomment">&#0060;</span><span class="scilabcomment">= 1</span>
-<span class="scilabcomment">//constraint-5 (c5): -x1 - x2 </span><span class="scilabcomment">&#0060;</span><span class="scilabcomment">= -1</span>
-<span class="scilabcomment">//constraint-6 (c6): -x1 + x2 </span><span class="scilabcomment">&#0060;</span><span class="scilabcomment">= 2</span>
-<span class="scilabcomment">//constraint-7 (c7): x1 + x2 = 2</span>
+<div class="refsection"><h3 class="title">Example</h3>
+<p class="para">Here we solve a simple non-linear objective function, subjected to three linear inequality constraints.</p>
+ <p class="para">Find x in R^2 such that it minimizes:</p>
+ <p class="para"><span><img src='./_LaTeX_fmincon.xml_2.png' style='position:relative;top:29px;width:230px;height:116px'/></span></p>
+ <p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 1:</span>
<span class="scilabcomment">//Objective function to be minimised</span>
<span class="scilabfkeyword">function</span> <span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span><span class="scilabfunctionid">f</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
-<span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span><span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">/</span><span class="scilabnumber">3</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">-</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">/</span><span class="scilabnumber">3</span> <span class="scilaboperator">+</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilabdefault">;</span>
<span class="scilabfkeyword">endfunction</span>
-<span class="scilabcomment">//Starting point, linear constraints and variable bounds</span>
+<span class="scilabcomment">//Starting point, and linear constraints. Since we haven</span><span class="scilabcomment">&#0039;</span><span class="scilabcomment">t added any eqaulity constraints or variable bounds, we need not specify them.</span>
<span class="scilabid">x0</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">0</span> <span class="scilabdefault">,</span> <span class="scilabnumber">0</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
-<span class="scilabid">A</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span> <span class="scilabdefault">;</span> <span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilaboperator">/</span><span class="scilabnumber">4</span> <span class="scilabdefault">;</span> <span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span> <span class="scilabdefault">;</span> <span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilaboperator">/</span><span class="scilabnumber">4</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span> <span class="scilabdefault">;</span> <span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span> <span class="scilabdefault">;</span> <span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
-<span class="scilabid">b</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">2</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilabnumber">2</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilabnumber">2</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
-<span class="scilabid">Aeq</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
-<span class="scilabid">beq</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">2</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
-<span class="scilabid">lb</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
-<span class="scilabid">ub</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
-<span class="scilabid">nlc</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
-<span class="scilabcomment">//Gradient of objective function</span>
-<span class="scilabfkeyword">function</span> <span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span><span class="scilabfunctionid">fGrad</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
-<span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilaboperator">/</span><span class="scilabnumber">3</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">A</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span> <span class="scilabdefault">;</span> <span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilaboperator">/</span><span class="scilabnumber">4</span> <span class="scilabdefault">;</span> <span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">2</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">fval</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabdefault">,</span><span class="scilabid">grad</span><span class="scilabdefault">,</span><span class="scilabid">hessian</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span><span class="scilabid">fmincon</span><span class="scilabopenclose">(</span><span class="scilabfunctionid">f</span><span class="scilabdefault">,</span> <span class="scilabid">x0</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Example</h3>
+<p class="para">Here we build up on the previous example by adding linear equality constraints.
+We add the following constraints to the problem specified above:</p>
+ <p class="para"><span><img src='./_LaTeX_fmincon.xml_3.png' style='position:relative;top:17px;width:134px;height:42px'/></span></p>
+<p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 2:</span>
+<span class="scilabcomment">//Objective function to be minimised</span>
+<span class="scilabfkeyword">function</span> <span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span><span class="scilabfunctionid">f</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">-</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">/</span><span class="scilabnumber">3</span> <span class="scilaboperator">+</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilabdefault">;</span>
<span class="scilabfkeyword">endfunction</span>
-<span class="scilabcomment">//Hessian of lagrangian</span>
-<span class="scilabfkeyword">function</span> <span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span><span class="scilabfunctionid">lHess</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabdefault">, </span><span class="scilabinputoutputargs">obj</span><span class="scilabdefault">, </span><span class="scilabinputoutputargs">lambda</span><span class="scilabopenclose">)</span>
-<span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span> <span class="scilabinputoutputargs">obj</span><span class="scilaboperator">*</span><span class="scilabopenclose">[</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">;</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabopenclose">]</span>
+<span class="scilabcomment">//Starting point, and linear constraints.</span>
+<span class="scilabid">x0</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">0</span> <span class="scilabdefault">,</span> <span class="scilabnumber">0</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">A</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span> <span class="scilabdefault">;</span> <span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilaboperator">/</span><span class="scilabnumber">4</span> <span class="scilabdefault">;</span> <span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">2</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilabnumber">2</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//We specify the linear equality constraints below.</span>
+<span class="scilabid">Aeq</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span> <span class="scilabnumber">2</span><span class="scilabdefault">,</span> <span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">beq</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilabnumber">2</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">fval</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabdefault">,</span><span class="scilabid">grad</span><span class="scilabdefault">,</span><span class="scilabid">hessian</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span><span class="scilabid">fmincon</span><span class="scilabopenclose">(</span><span class="scilabfunctionid">f</span><span class="scilabdefault">,</span> <span class="scilabid">x0</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabid">Aeq</span><span class="scilabdefault">,</span><span class="scilabid">beq</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Example</h3>
+<p class="para">In this example, we proceed to add the upper and lower bounds to the objective function.</p>
+ <p class="para"><span><img src='./_LaTeX_fmincon.xml_4.png' style='position:relative;top:17px;width:145px;height:42px'/></span></p>
+<p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 3:</span>
+<span class="scilabcomment">//Objective function to be minimised</span>
+<span class="scilabfkeyword">function</span> <span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span><span class="scilabfunctionid">f</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">-</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">/</span><span class="scilabnumber">3</span> <span class="scilaboperator">+</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilabdefault">;</span>
<span class="scilabfkeyword">endfunction</span>
-<span class="scilabcomment">//Options</span>
-<span class="scilabid">options</span><span class="scilaboperator">=</span><a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">GradObj</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabfunctionid">fGrad</span><span class="scilabdefault">,</span> <span class="scilabstring">&#0034;</span><span class="scilabstring">Hessian</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabfunctionid">lHess</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
-<span class="scilabcomment">//Calling Ipopt</span>
-<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">fval</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabdefault">,</span><span class="scilabid">grad</span><span class="scilabdefault">,</span><span class="scilabid">hessian</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span><span class="scilabid">fmincon</span><span class="scilabopenclose">(</span><span class="scilabfunctionid">f</span><span class="scilabdefault">,</span> <span class="scilabid">x0</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabid">Aeq</span><span class="scilabdefault">,</span><span class="scilabid">beq</span><span class="scilabdefault">,</span><span class="scilabid">lb</span><span class="scilabdefault">,</span><span class="scilabid">ub</span><span class="scilabdefault">,</span><span class="scilabid">nlc</span><span class="scilabdefault">,</span><span class="scilabid">options</span><span class="scilabopenclose">)</span>
-<span class="scilabcomment">// Press ENTER to continue</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+<span class="scilabcomment">//Starting point, and linear constraints.</span>
+<span class="scilabid">x0</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">0</span> <span class="scilabdefault">,</span> <span class="scilabnumber">0</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">A</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span> <span class="scilabdefault">;</span> <span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilaboperator">/</span><span class="scilabnumber">4</span> <span class="scilabdefault">;</span> <span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">2</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilabnumber">2</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//We specify the linear equality constraints below.</span>
+<span class="scilabid">Aeq</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span> <span class="scilabnumber">2</span><span class="scilabdefault">,</span> <span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">beq</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilabnumber">2</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//The upper and lower bounds for the objective function are defined in simple vectors as shown below.</span>
+<span class="scilabid">lb</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilaboperator">-</span><span class="scilabconstants">%inf</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">ub</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabconstants">%inf</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span> <span class="scilabcomment">//</span>
+<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">fval</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabdefault">,</span><span class="scilabid">grad</span><span class="scilabdefault">,</span><span class="scilabid">hessian</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span><span class="scilabid">fmincon</span><span class="scilabopenclose">(</span><span class="scilabfunctionid">f</span><span class="scilabdefault">,</span> <span class="scilabid">x0</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabid">Aeq</span><span class="scilabdefault">,</span><span class="scilabid">beq</span><span class="scilabdefault">,</span><span class="scilabid">lb</span><span class="scilabdefault">,</span><span class="scilabid">ub</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Press ENTER to continue</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
-<div class="refsection"><h3 class="title">Examples</h3>
- <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Find x in R^3 such that it minimizes:</span>
-<span class="scilabcomment">//f(x)= x1*x2 + x2*x3</span>
-<span class="scilabcomment">//x0=[0.1 , 0.1 , 0.1]</span>
-<span class="scilabcomment">//constraint-1 (c1): x1^2 - x2^2 + x3^2 </span><span class="scilabcomment">&#0060;</span><span class="scilabcomment">= 2</span>
-<span class="scilabcomment">//constraint-2 (c2): x1^2 + x2^2 + x3^2 </span><span class="scilabcomment">&#0060;</span><span class="scilabcomment">= 10</span>
+<div class="refsection"><h3 class="title">Example</h3>
+ <p class="para">Finally, we add the non-linear constraints to the problem. Note that there is a notable difference in the way this is done as compared to defining the linear constraints.</p>
+ <p class="para"><span><img src='./_LaTeX_fmincon.xml_5.png' style='position:relative;top:22px;width:139px;height:52px'/></span></p>
+<p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 4:</span>
+<span class="scilabcomment">//Objective function to be minimised</span>
+<span class="scilabfkeyword">function</span> <span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span><span class="scilabfunctionid">f</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">-</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">/</span><span class="scilabnumber">3</span> <span class="scilaboperator">+</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilabdefault">;</span>
+<span class="scilabfkeyword">endfunction</span>
+<span class="scilabcomment">//Starting point, and linear constraints.</span>
+<span class="scilabid">x0</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">0</span> <span class="scilabdefault">,</span> <span class="scilabnumber">0</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">A</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span> <span class="scilabdefault">;</span> <span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilaboperator">/</span><span class="scilabnumber">4</span> <span class="scilabdefault">;</span> <span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">2</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilabnumber">2</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//We specify the linear equality constraints below.</span>
+<span class="scilabid">Aeq</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span> <span class="scilabnumber">2</span><span class="scilabdefault">,</span> <span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">beq</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilabnumber">2</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//The upper and lower bound for the objective function are specified below.</span>
+<span class="scilabid">lb</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilaboperator">-</span><span class="scilabconstants">%inf</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">ub</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabconstants">%inf</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Nonlinear constraints are required to be defined as a single function with the inequality and equality constraints in separate vectors.</span>
+<span class="scilabfkeyword">function</span> <span class="scilabopenclose">[</span><span class="scilabinputoutputargs">c</span><span class="scilabdefault">, </span><span class="scilabinputoutputargs">ceq</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span><span class="scilabfunctionid">nlc</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">c</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilaboperator">+</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">ceq</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabfkeyword">endfunction</span>
+<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">fval</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabdefault">,</span><span class="scilabid">grad</span><span class="scilabdefault">,</span><span class="scilabid">hessian</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span><span class="scilabid">fmincon</span><span class="scilabopenclose">(</span><span class="scilabfunctionid">f</span><span class="scilabdefault">,</span> <span class="scilabid">x0</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabid">Aeq</span><span class="scilabdefault">,</span><span class="scilabid">beq</span><span class="scilabdefault">,</span><span class="scilabid">lb</span><span class="scilabdefault">,</span><span class="scilabid">ub</span><span class="scilabdefault">,</span><span class="scilabfunctionid">nlc</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Press ENTER to continue</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Example</h3>
+ <p class="para">Additional Functionality:</p>
+ <p class="para">We can further enhance the functionality of fmincon by setting input options. We can pre-define the gradient of the objective function and/or the hessian of the lagrange function and thereby improve the speed of computation. This is elaborated on in example 5. We take the following problem and add simple non-linear constraints, specify the gradients and the hessian of the Lagrange Function. We also set solver parameters using the options.</p>
+
+ <p class="para"><span><img src='./_LaTeX_fmincon.xml_6.png' style='position:relative;top:22px;width:266px;height:101px'/></span></p>
+ <p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 5:</span>
<span class="scilabcomment">//Objective function to be minimised</span>
<span class="scilabfkeyword">function</span> <span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span><span class="scilabfunctionid">f</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
<span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">+</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">3</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
@@ -190,7 +239,7 @@ It has type &#0034;struct&#0034; and contains the following fields.
<span class="scilabfkeyword">function</span> <span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span><span class="scilabfunctionid">fGrad</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
<span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilabdefault">,</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">+</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">3</span><span class="scilabopenclose">)</span><span class="scilabdefault">,</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
<span class="scilabfkeyword">endfunction</span>
-<span class="scilabcomment">//Hessian of the Lagrange Function</span>
+<span class="scilabcomment">//Hessian of the Lagrange Function, which has been pre-defined to improve solver speed.</span>
<span class="scilabfkeyword">function</span> <span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span><span class="scilabfunctionid">lHess</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabdefault">, </span><span class="scilabinputoutputargs">obj</span><span class="scilabdefault">, </span><span class="scilabinputoutputargs">lambda</span><span class="scilabopenclose">)</span>
<span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span> <span class="scilabinputoutputargs">obj</span><span class="scilaboperator">*</span><span class="scilabopenclose">[</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabopenclose">]</span> <span class="scilaboperator">+</span> <span class="scilabinputoutputargs">lambda</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabopenclose">[</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">;</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">;</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">2</span><span class="scilabopenclose">]</span> <span class="scilaboperator">+</span> <span class="scilabinputoutputargs">lambda</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabopenclose">[</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">;</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">;</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">2</span><span class="scilabopenclose">]</span>
<span class="scilabfkeyword">endfunction</span>
@@ -203,84 +252,38 @@ It has type &#0034;struct&#0034; and contains the following fields.
<span class="scilabid">options</span><span class="scilaboperator">=</span><a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">MaxIter</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1500</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span> <span class="scilabstring">&#0034;</span><span class="scilabstring">CpuTime</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabopenclose">[</span><span class="scilabnumber">500</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span> <span class="scilabstring">&#0034;</span><span class="scilabstring">GradObj</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabfunctionid">fGrad</span><span class="scilabdefault">,</span> <span class="scilabstring">&#0034;</span><span class="scilabstring">Hessian</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabfunctionid">lHess</span><span class="scilabdefault">,</span><span class="scilabstring">&#0034;</span><span class="scilabstring">GradCon</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabfunctionid">cGrad</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
<span class="scilabcomment">//Calling Ipopt</span>
<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">fval</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span><span class="scilabid">fmincon</span><span class="scilabopenclose">(</span><span class="scilabfunctionid">f</span><span class="scilabdefault">,</span> <span class="scilabid">x0</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabid">Aeq</span><span class="scilabdefault">,</span><span class="scilabid">beq</span><span class="scilabdefault">,</span><span class="scilabid">lb</span><span class="scilabdefault">,</span><span class="scilabid">ub</span><span class="scilabdefault">,</span><span class="scilabfunctionid">nlc</span><span class="scilabdefault">,</span><span class="scilabid">options</span><span class="scilabopenclose">)</span>
-<span class="scilabcomment">// Press ENTER to continue</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+<span class="scilabcomment">//Press ENTER to continue</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
-<div class="refsection"><h3 class="title">Examples</h3>
- <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//The below problem is an unbounded problem:</span>
-<span class="scilabcomment">//Find x in R^3 such that it minimizes:</span>
-<span class="scilabcomment">//f(x)= -(x1^2 + x2^2 + x3^2)</span>
-<span class="scilabcomment">//x0=[0.1 , 0.1 , 0.1]</span>
-<span class="scilabcomment">// x1 </span><span class="scilabcomment">&#0060;</span><span class="scilabcomment">= 0</span>
-<span class="scilabcomment">// x2 </span><span class="scilabcomment">&#0060;</span><span class="scilabcomment">= 0</span>
-<span class="scilabcomment">// x3 </span><span class="scilabcomment">&#0060;</span><span class="scilabcomment">= 0</span>
-<span class="scilabcomment">//Objective function to be minimised</span>
+<div class="refsection"><h3 class="title">Example</h3>
+
+ <p class="para">Infeasible Problems: Find x in R^2 such that it minimizes:</p>
+ <p class="para"><span><img src='./_LaTeX_fmincon.xml_7.png' style='position:relative;top:39px;width:225px;height:136px'/></span></p>
+ <p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 6:</span>
+<span class="scilabcomment">//Infeasible objective function.</span>
<span class="scilabfkeyword">function</span> <span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span><span class="scilabfunctionid">f</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
-<span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span><span class="scilaboperator">-</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilaboperator">+</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilaboperator">+</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">3</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">-</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">/</span><span class="scilabnumber">3</span> <span class="scilaboperator">+</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilabdefault">;</span>
<span class="scilabfkeyword">endfunction</span>
-<span class="scilabcomment">//Starting point, linear constraints and variable bounds</span>
-<span class="scilabid">x0</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">0.1</span> <span class="scilabdefault">,</span> <span class="scilabnumber">0.1</span> <span class="scilabdefault">,</span> <span class="scilabnumber">0.1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
-<span class="scilabid">A</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
-<span class="scilabid">b</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
-<span class="scilabid">Aeq</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
-<span class="scilabid">beq</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
-<span class="scilabid">lb</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
-<span class="scilabid">ub</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
-<span class="scilabcomment">//Options</span>
-<span class="scilabid">options</span><span class="scilaboperator">=</span><a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">MaxIter</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1500</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span> <span class="scilabstring">&#0034;</span><span class="scilabstring">CpuTime</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabopenclose">[</span><span class="scilabnumber">500</span><span class="scilabopenclose">]</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
-<span class="scilabcomment">//Calling Ipopt</span>
-<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">fval</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabdefault">,</span><span class="scilabid">grad</span><span class="scilabdefault">,</span><span class="scilabid">hessian</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span><span class="scilabid">fmincon</span><span class="scilabopenclose">(</span><span class="scilabfunctionid">f</span><span class="scilabdefault">,</span> <span class="scilabid">x0</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabid">Aeq</span><span class="scilabdefault">,</span><span class="scilabid">beq</span><span class="scilabdefault">,</span><span class="scilabid">lb</span><span class="scilabdefault">,</span><span class="scilabid">ub</span><span class="scilabdefault">,</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span><span class="scilabid">options</span><span class="scilabopenclose">)</span>
-<span class="scilabcomment">// Press ENTER to continue</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+<span class="scilabid">x0</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">0</span> <span class="scilabdefault">,</span> <span class="scilabnumber">0</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">A</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span> <span class="scilabdefault">;</span> <span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilaboperator">/</span><span class="scilabnumber">4</span> <span class="scilabdefault">;</span> <span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">2</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">Aeq</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">beq</span> <span class="scilaboperator">=</span> <span class="scilabnumber">3</span><span class="scilabdefault">;</span>
+<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">fval</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabdefault">,</span><span class="scilabid">grad</span><span class="scilabdefault">,</span><span class="scilabid">hessian</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span><span class="scilabid">fmincon</span><span class="scilabopenclose">(</span><span class="scilabfunctionid">f</span><span class="scilabdefault">,</span> <span class="scilabid">x0</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabid">Aeq</span><span class="scilabdefault">,</span><span class="scilabid">beq</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
-<div class="refsection"><h3 class="title">Examples</h3>
- <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//The below problem is an infeasible problem:</span>
-<span class="scilabcomment">//Find x in R^3 such that in minimizes:</span>
-<span class="scilabcomment">//f(x)=x1*x2 + x2*x3</span>
-<span class="scilabcomment">//x0=[1,1,1]</span>
-<span class="scilabcomment">//constraint-1 (c1): x1^2 </span><span class="scilabcomment">&#0060;</span><span class="scilabcomment">= 1</span>
-<span class="scilabcomment">//constraint-2 (c2): x1^2 + x2^2 </span><span class="scilabcomment">&#0060;</span><span class="scilabcomment">= 1</span>
-<span class="scilabcomment">//constraint-3 (c3): x3^2 </span><span class="scilabcomment">&#0060;</span><span class="scilabcomment">= 1</span>
-<span class="scilabcomment">//constraint-4 (c4): x1^3 = 0.5</span>
-<span class="scilabcomment">//constraint-5 (c5): x2^2 + x3^2 = 0.75</span>
-<span class="scilabcomment">// 0 </span><span class="scilabcomment">&#0060;</span><span class="scilabcomment">= x1 </span><span class="scilabcomment">&#0060;</span><span class="scilabcomment">=0.6</span>
-<span class="scilabcomment">// 0.2 </span><span class="scilabcomment">&#0060;</span><span class="scilabcomment">= x2 </span><span class="scilabcomment">&#0060;</span><span class="scilabcomment">= inf</span>
-<span class="scilabcomment">// -inf </span><span class="scilabcomment">&#0060;</span><span class="scilabcomment">= x3 </span><span class="scilabcomment">&#0060;</span><span class="scilabcomment">= 1</span>
-<span class="scilabcomment">//Objective function to be minimised</span>
+<div class="refsection"><h3 class="title">Example</h3>
+<p class="para">Unbounded Problems: Find x in R^2 such that it minimizes:</p>
+ <p class="para"><span><img src='./_LaTeX_fmincon.xml_8.png' style='position:relative;top:17px;width:209px;height:93px'/></span></p>
+ <p class="para"></p>
+<div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 7: Unbounded objective function.</span>
<span class="scilabfkeyword">function</span> <span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span><span class="scilabfunctionid">f</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
-<span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">+</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">3</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
-<span class="scilabfkeyword">endfunction</span>
-<span class="scilabcomment">//Starting point, linear constraints and variable bounds</span>
-<span class="scilabid">x0</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
-<span class="scilabid">A</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
-<span class="scilabid">b</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
-<span class="scilabid">Aeq</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
-<span class="scilabid">beq</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
-<span class="scilabid">lb</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">0</span> <span class="scilabnumber">0.2</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabconstants">%inf</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
-<span class="scilabid">ub</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">0.6</span> <span class="scilabconstants">%inf</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
-<span class="scilabcomment">//Nonlinear constraints</span>
-<span class="scilabfkeyword">function</span> <span class="scilabopenclose">[</span><span class="scilabinputoutputargs">c</span><span class="scilabdefault">, </span><span class="scilabinputoutputargs">ceq</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span><span class="scilabfunctionid">nlc</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
-<span class="scilabinputoutputargs">c</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilaboperator">+</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">3</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
-<span class="scilabinputoutputargs">ceq</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">3</span><span class="scilaboperator">-</span><span class="scilabnumber">0.5</span><span class="scilabdefault">,</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilaboperator">+</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">3</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilaboperator">-</span><span class="scilabnumber">0.75</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
-<span class="scilabfkeyword">endfunction</span>
-<span class="scilabcomment">//Gradient of objective function</span>
-<span class="scilabfkeyword">function</span> <span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span><span class="scilabfunctionid">fGrad</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
-<span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilabdefault">,</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">+</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">3</span><span class="scilabopenclose">)</span><span class="scilabdefault">,</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
-<span class="scilabfkeyword">endfunction</span>
-<span class="scilabcomment">//Hessian of the Lagrange Function</span>
-<span class="scilabfkeyword">function</span> <span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span><span class="scilabfunctionid">lHess</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabdefault">, </span><span class="scilabinputoutputargs">obj</span><span class="scilabdefault">, </span><span class="scilabinputoutputargs">lambda</span><span class="scilabopenclose">)</span>
-<span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span> <span class="scilabinputoutputargs">obj</span><span class="scilaboperator">*</span><span class="scilabopenclose">[</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabopenclose">]</span> <span class="scilaboperator">+</span> <span class="scilabinputoutputargs">lambda</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabopenclose">[</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">;</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">;</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabopenclose">]</span> <span class="scilaboperator">+</span> <span class="scilabspecial">..</span>
-<span class="scilabinputoutputargs">lambda</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabopenclose">[</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">;</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">;</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabopenclose">]</span> <span class="scilaboperator">+</span><span class="scilabinputoutputargs">lambda</span><span class="scilabopenclose">(</span><span class="scilabnumber">3</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabopenclose">[</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">;</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">;</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">2</span><span class="scilabopenclose">]</span> <span class="scilaboperator">+</span> <span class="scilabspecial">..</span>
-<span class="scilabinputoutputargs">lambda</span><span class="scilabopenclose">(</span><span class="scilabnumber">4</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabopenclose">[</span><span class="scilabnumber">6</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">;</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">;</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabopenclose">]</span> <span class="scilaboperator">+</span> <span class="scilabinputoutputargs">lambda</span><span class="scilabopenclose">(</span><span class="scilabnumber">5</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabopenclose">[</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">;</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">;</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">2</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span><span class="scilaboperator">-</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">-</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">/</span><span class="scilabnumber">3</span> <span class="scilaboperator">+</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
<span class="scilabfkeyword">endfunction</span>
-<span class="scilabcomment">//Gradient of Non-Linear Constraints</span>
-<span class="scilabfkeyword">function</span> <span class="scilabopenclose">[</span><span class="scilabinputoutputargs">cg</span><span class="scilabdefault">, </span><span class="scilabinputoutputargs">ceqg</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span><span class="scilabfunctionid">cGrad</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
-<span class="scilabinputoutputargs">cg</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">2</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">;</span><span class="scilabnumber">2</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilabdefault">,</span><span class="scilabnumber">2</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">;</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">2</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">3</span><span class="scilabopenclose">)</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
-<span class="scilabinputoutputargs">ceqg</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">3</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">;</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">2</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilabdefault">,</span><span class="scilabnumber">2</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">3</span><span class="scilabopenclose">)</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
-<span class="scilabfkeyword">endfunction</span>
-<span class="scilabcomment">//Options</span>
-<span class="scilabid">options</span><span class="scilaboperator">=</span><a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">MaxIter</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1500</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span> <span class="scilabstring">&#0034;</span><span class="scilabstring">CpuTime</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabopenclose">[</span><span class="scilabnumber">500</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span> <span class="scilabstring">&#0034;</span><span class="scilabstring">GradObj</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabfunctionid">fGrad</span><span class="scilabdefault">,</span> <span class="scilabstring">&#0034;</span><span class="scilabstring">Hessian</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabfunctionid">lHess</span><span class="scilabdefault">,</span><span class="scilabstring">&#0034;</span><span class="scilabstring">GradCon</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabfunctionid">cGrad</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
-<span class="scilabcomment">//Calling Ipopt</span>
-<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">fval</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabdefault">,</span><span class="scilabid">grad</span><span class="scilabdefault">,</span><span class="scilabid">hessian</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span><span class="scilabid">fmincon</span><span class="scilabopenclose">(</span><span class="scilabfunctionid">f</span><span class="scilabdefault">,</span> <span class="scilabid">x0</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabid">Aeq</span><span class="scilabdefault">,</span><span class="scilabid">beq</span><span class="scilabdefault">,</span><span class="scilabid">lb</span><span class="scilabdefault">,</span><span class="scilabid">ub</span><span class="scilabdefault">,</span><span class="scilabfunctionid">nlc</span><span class="scilabdefault">,</span><span class="scilabid">options</span><span class="scilabopenclose">)</span>
-<span class="scilabcomment">// Press ENTER to continue</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+<span class="scilabid">x0</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">0</span> <span class="scilabdefault">,</span> <span class="scilabnumber">0</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">A</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span> <span class="scilabdefault">;</span> <span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">2</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">fval</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabdefault">,</span><span class="scilabid">grad</span><span class="scilabdefault">,</span><span class="scilabid">hessian</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span><span class="scilabid">fmincon</span><span class="scilabopenclose">(</span><span class="scilabfunctionid">f</span><span class="scilabdefault">,</span> <span class="scilabid">x0</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
<div class="refsection"><h3 class="title">Authors</h3>
<ul class="itemizedlist"><li class="member">R.Vidyadhar , Vignesh Kannan</li></ul></div>
@@ -295,7 +298,7 @@ It has type &#0034;struct&#0034; and contains the following fields.
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a></span>
+ <span class="top"><a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/fminimax.html b/help/en_US/scilab_en_US_help/fminimax.html
index 22b6ad9..2aa5c38 100644
--- a/help/en_US/scilab_en_US_help/fminimax.html
+++ b/help/en_US/scilab_en_US_help/fminimax.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a></span>
+ <span class="top"><a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; fminimax</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; fminimax</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">fminimax</h1>
@@ -49,64 +49,72 @@
<span class="default">[</span><span class="default">xopt</span><span class="default">, </span><span class="default">fval</span><span class="default">, </span><span class="default">maxfval</span><span class="default">, </span><span class="default">exitflag</span><span class="default">, </span><span class="default">output</span><span class="default">]= </span><span class="functionid">fminimax</span><span class="default">(.....)</span>
<span class="default">[</span><span class="default">xopt</span><span class="default">, </span><span class="default">fval</span><span class="default">, </span><span class="default">maxfval</span><span class="default">, </span><span class="default">exitflag</span><span class="default">, </span><span class="default">output</span><span class="default">, </span><span class="default">lambda</span><span class="default">]= </span><span class="functionid">fminimax</span><span class="default">(.....)</span></pre></div></div>
-<div class="refsection"><h3 class="title">Parameters</h3>
+<div class="refsection"><h3 class="title">Input Parameters</h3>
<dl><dt><span class="term">fun:</span>
- <dd><p class="para">The function to be minimized. fun is a function that accepts a vector x and returns a vector F, the objective functions evaluated at x.</p></dd></dt>
+ <dd><p class="para">The function to be minimized. fun is a function that has a vector x as an input argument, and contains the objective functions evaluated at x.</p></dd></dt>
<dt><span class="term">x0 :</span>
- <dd><p class="para">a vector of double, contains initial guess of variables.</p></dd></dt>
+ <dd><p class="para">A vector of doubles, containing the starting values of variables of size (1 X n) or (n X 1) where &#0039;n&#0039; is the number of Variables.</p></dd></dt>
<dt><span class="term">A :</span>
- <dd><p class="para">a matrix of double, represents the linear coefficients in the inequality constraints A⋅x ≤ b.</p></dd></dt>
+ <dd><p class="para">A matrix of doubles, containing the coefficients of linear inequality constraints of size (m X n) where &#0039;m&#0039; is the number of linear inequality constraints.</p></dd></dt>
<dt><span class="term">b :</span>
- <dd><p class="para">a vector of double, represents the linear coefficients in the inequality constraints A⋅x ≤ b.</p></dd></dt>
+ <dd><p class="para">A vector of doubles, related to &#0039;A&#0039; and represents the linear coefficients in the linear inequality constraints of size (m X 1).</p></dd></dt>
<dt><span class="term">Aeq :</span>
- <dd><p class="para">a matrix of double, represents the linear coefficients in the equality constraints Aeq⋅x = beq.</p></dd></dt>
+ <dd><p class="para">A matrix of doubles, containing the coefficients of linear equality constraints of size (m1 X n) where &#0039;m1&#0039; is the number of linear equality constraints.</p></dd></dt>
<dt><span class="term">beq :</span>
- <dd><p class="para">a vector of double, represents the linear coefficients in the equality constraints Aeq⋅x = beq.</p></dd></dt>
+ <dd><p class="para">A vector of double, vector of doubles, related to &#0039;Aeq&#0039; and represents the linear coefficients in the equality constraints of size (m1 X 1).</p></dd></dt>
<dt><span class="term">lb :</span>
- <dd><p class="para">a vector of double, contains lower bounds of the variables.</p></dd></dt>
+ <dd><p class="para">A vector of doubles, containing the lower bounds of the variables of size (1 X n) or (n X 1) where &#0039;n&#0039; is the number of variables.</p></dd></dt>
<dt><span class="term">ub :</span>
- <dd><p class="para">a vector of double, contains upper bounds of the variables.</p></dd></dt>
+ <dd><p class="para">A vector of doubles, containing the upper bounds of the variables of size (1 X n) or (n X 1) where &#0039;n&#0039; is the number of variables.</p></dd></dt>
<dt><span class="term">nonlinfun:</span>
- <dd><p class="para">function that computes the nonlinear inequality constraints c⋅x ≤ 0 and nonlinear equality constraints c⋅x = 0.</p></dd></dt>
- <dt><span class="term">xopt :</span>
- <dd><p class="para">a vector of double, the computed solution of the optimization problem.</p></dd></dt>
- <dt><span class="term">fopt :</span>
- <dd><p class="para">a double, the value of the function at x.</p></dd></dt>
+ <dd><p class="para">A function, representing the Non-linear Constraints functions(both Equality and Inequality) of the problem. It is declared in such a way that non-linear inequality constraints (c), and the non-linear equality constraints (ceq) are defined as separate single row vectors.</p></dd></dt>
+ <dt><span class="term">options :</span>
+ <dd><p class="para">A list, containing the option for user to specify. See below for details.</p></dd></dt></dl></div>
+<div class="refsection"><h3 class="title">Outputs</h3>
+ <dl><dt><span class="term">xopt :</span>
+ <dd><p class="para">A vector of doubles, containing the computed solution of the optimization problem.</p></dd></dt>
+ <dt><span class="term">fval :</span>
+ <dd><p class="para">A vector of doubles, containing the values of the objective functions at the end of the optimization problem.</p></dd></dt>
<dt><span class="term">maxfval:</span>
- <dd><p class="para">a 1x1 matrix of doubles, the maximum value in vector fval</p></dd></dt>
+ <dd><p class="para">A double, representing the maximum value in the vector fval.</p></dd></dt>
<dt><span class="term">exitflag :</span>
- <dd><p class="para">The exit status. See below for details.</p></dd></dt>
+ <dd><p class="para">An integer, containing the flag which denotes the reason for termination of algorithm. See below for details.</p></dd></dt>
<dt><span class="term">output :</span>
- <dd><p class="para">The structure consist of statistics about the optimization. See below for details.</p></dd></dt>
+ <dd><p class="para">A structure, containing the information about the optimization. See below for details.</p></dd></dt>
<dt><span class="term">lambda :</span>
- <dd><p class="para">The structure consist of the Lagrange multipliers at the solution of problem. See below for details.</p></dd></dt></dl></div>
+ <dd><p class="para">A structure, containing the Lagrange multipliers of lower bound, upper bound and constraints at the optimized point. See below for details.</p></dd></dt></dl></div>
<div class="refsection"><h3 class="title">Description</h3>
- <p class="para">fminimax minimizes the worst-case (largest) value of a set of multivariable functions, starting at an initial estimate. This is generally referred to as the minimax problem.</p>
- <p class="para"><span><img src='./_LaTeX_fminimax.xml_1.png' style='position:relative;top:51px;width:427px;height:110px'/></span></p>
- <p class="para">Currently, fminimax calls fmincon which uses the ip-opt algorithm.</p>
+ <p class="para">fminimax minimizes the worst-case (largest) value of a set of multivariable functions, starting at an initial estimate, a problem generally referred to as the minimax problem.</p>
+ <p class="para"><span><img src='./_LaTeX_fminimax.xml_1.png' style='position:relative;top:51px;width:318px;height:133px'/></span></p>
+ <p class="para">Currently, fminimax calls fmincon which uses the Ipopt solver.</p>
<p class="para">max-min problems can also be solved with fminimax, using the identity</p>
<p class="para"><span><img src='./_LaTeX_fminimax.xml_2.png' style='position:relative;top:6px;width:281px;height:20px'/></span></p>
- <p class="para">The options allows the user to set various parameters of the Optimization problem.
-It should be defined as type &#0034;list&#0034; and contains the following fields.
-<ul class="itemizedlist"><li>Syntax : options= list(&#0034;MaxIter&#0034;, [---], &#0034;CpuTime&#0034;, [---], &#0034;GradObj&#0034;, ---, &#0034;GradCon&#0034;, ---);</li>
-<li>MaxIter : a Scalar, containing the Maximum Number of Iteration that the solver should take.</li>
-<li>CpuTime : a Scalar, containing the Maximum amount of CPU Time that the solver should take.</li>
-<li>GradObj : a function, representing the gradient function of the Objective in Vector Form.</li>
-<li>GradCon : a function, representing the gradient of the Non-Linear Constraints (both Equality and Inequality) of the problem. It is declared in such a way that gradient of non-linear inequality constraints are defined first as a separate Matrix (cg of size m2 X n or as an empty), followed by gradient of non-linear equality constraints as a separate Matrix (ceqg of size m2 X n or as an empty) where m2 &amp; m3 are number of non-linear inequality and equality constraints respectively.</li>
-<li>Default Values : options = list(&#0034;MaxIter&#0034;, [3000], &#0034;CpuTime&#0034;, [600]);</li></ul></p>
- <p class="para">The objective function must have header :
+
+ <p class="para"><h3 class="title">Options</h3>
+The options allow the user to set various parameters of the Optimization problem. The syntax for the options is given by:</p>
+ <p class="para">options= list(&#0034;MaxIter&#0034;, [---], &#0034;CpuTime&#0034;, [---], &#0034;GradObj&#0034;, ---, &#0034;GradCon&#0034;, ---);</p>
+ <p class="para"><ul class="itemizedlist"><li>MaxIter : A Scalar, specifying the Maximum Number of iterations that the solver should take.</li>
+<li>CpuTime : A Scalar, specifying the Maximum amount of CPU Time in seconds that the solver should take.</li>
+<li>GradObj : A function, representing the gradient function of the Objective in Vector Form.</li>
+<li>GradCon : A function, representing the gradient of the Non-Linear Constraints (both Equality and Inequality) of the problem. It is declared in such a way that gradient of non-linear inequality constraints are defined first as a separate Matrix (cg of size m2 X n or as an empty), followed by gradient of non-linear equality constraints as a separate matrix (ceqg of size m2 X n or as an empty) where m2 &amp;amp; m3 are number of non-linear inequality and equality constraints respectively.</li>
+<li>Default Values : options = list(&#0034;MaxIter&#0034;, [3000], &#0034;CpuTime&#0034;, [600]);</li></ul>
+The default values for the various items are given as:</p>
+ <p class="para">options = list(&#0034;MaxIter&#0034;, [3000], &#0034;CpuTime&#0034;, [600]);</p>
+ <p class="para">The objective function must have a header :
<div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabid">F</span> <span class="scilaboperator">=</span> <span class="scilabid">fun</span><span class="scilabopenclose">(</span><span class="scilabid">x</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div>
where x is a n x 1 matrix of doubles and F is a m x 1 matrix of doubles where m is the total number of objective functions inside F.
On input, the variable x contains the current point and, on output, the variable F must contain the objective function values.</p>
- <p class="para">By default, the gradient options for fminimax are turned off and and fmincon does the gradient opproximation of minmaxObjfun. In case the GradObj option is off and GradConstr option is on, fminimax approximates minmaxObjfun gradient using numderivative toolbox.</p>
- <p class="para">If we can provide exact gradients, we should do so since it improves the convergence speed of the optimization algorithm.</p>
- <p class="para">Furthermore, we must enable the &#0034;GradObj&#0034; option with the statement :
+ <p class="para">By default, the gradient options for fminimax are turned off and and fmincon does the gradient opproximation of minmaxObjfun. In case the GradObj option is off and GradCon option is on, fminimax approximates minmaxObjfun gradient using the numderivative toolbox.</p>
+<h3 class="title">Syntax</h3>
+<p class="para">Some syntactic details about fminimax, including the syntax for the gradient, defining the non-linear constraints, and the constraint derivative function have been provided below:</p>
+ <p class="para">If the user can provide exact gradients, it should be done, since it improves the convergence speed of the optimization algorithm.</p>
+ <p class="para">Furthermore, we can enable the &#0034;GradObj&#0034; option with the statement :
<div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabid">minimaxOptions</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">GradObj</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span><span class="scilabid">fGrad</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div>
This will let fminimax know that the exact gradient of the objective function is known, so that it can change the calling sequence to the objective function. Note that, fGrad should be mentioned in the form of N x n where n is the number of variables, N is the number of functions in objective function.</p>
- <p class="para">The constraint function must have header :
+ <p class="para">The constraint function must have header:
<div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabopenclose">[</span><span class="scilabid">c</span><span class="scilabdefault">,</span> <span class="scilabid">ceq</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">confun</span><span class="scilabopenclose">(</span><span class="scilabid">x</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div>
-where x is a n x 1 matrix of dominmaxUbles, c is a 1 x nni matrix of doubles and ceq is a 1 x nne matrix of doubles (nni : number of nonlinear inequality constraints, nne : number of nonlinear equality constraints).
+Where x is a n x 1 matrix of minimax doubles, c is a 1 x nni matrix of doubles and ceq is a 1 x nne matrix of doubles (nni : number of nonlinear inequality constraints, nne : number of nonlinear equality constraints).
On input, the variable x contains the current point and, on output, the variable c must contain the nonlinear inequality constraints and ceq must contain the nonlinear equality constraints.</p>
<p class="para">By default, the gradient options for fminimax are turned off and and fmincon does the gradient opproximation of confun. In case the GradObj option is on and GradCons option is off, fminimax approximates confun gradient using numderivative toolbox.</p>
<p class="para">If we can provide exact gradients, we should do so since it improves the convergence speed of the optimization algorithm.</p>
@@ -116,35 +124,55 @@ This will let fminimax know that the exact gradient of the objective function is
<p class="para">The constraint derivative function must have header :
<div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabopenclose">[</span><span class="scilabid">dc</span><span class="scilabdefault">,</span><span class="scilabid">dceq</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">confungrad</span><span class="scilabopenclose">(</span><span class="scilabid">x</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div>
where dc is a nni x n matrix of doubles and dceq is a nne x n matrix of doubles.</p>
- <p class="para">The exitflag allows to know the status of the optimization which is given back by Ipopt.
-<ul class="itemizedlist"><li>exitflag=0 : Optimal Solution Found</li>
-<li>exitflag=1 : Maximum Number of Iterations Exceeded. Output may not be optimal.</li>
-<li>exitflag=2 : Maximum amount of CPU Time exceeded. Output may not be optimal.</li>
-<li>exitflag=3 : Stop at Tiny Step.</li>
-<li>exitflag=4 : Solved To Acceptable Level.</li>
-<li>exitflag=5 : Converged to a point of local infeasibility.</li></ul></p>
- <p class="para">For more details on exitflag see the ipopt documentation, go to http://www.coin-or.org/Ipopt/documentation/</p>
- <p class="para">The output data structure contains detailed informations about the optimization process.
-It has type &#0034;struct&#0034; and contains the following fields.
-<ul class="itemizedlist"><li>output.Iterations: The number of iterations performed during the search</li>
-<li>output.Cpu_Time: The total cpu-time spend during the search</li>
-<li>output.Objective_Evaluation: The number of Objective Evaluations performed during the search</li>
-<li>output.Dual_Infeasibility: The Dual Infeasiblity of the final soution</li></ul></p>
- <p class="para">The lambda data structure contains the Lagrange multipliers at the end
-of optimization. In the current version the values are returned only when the the solution is optimal.
+ <p class="para">The exitflag allows the user to know the status of the optimization which is returned by Ipopt. The values it can take and what they indicate is described below:
+<ul class="itemizedlist"><li>0 : Optimal Solution Found</li>
+<li>1 : Maximum Number of Iterations Exceeded. Output may not be optimal.</li>
+<li>2 : Maximum amount of CPU Time exceeded. Output may not be optimal.</li>
+<li>3 : Stop at Tiny Step.</li>
+<li>4 : Solved To Acceptable Level.</li>
+<li>5 : Converged to a point of local infeasibility.</li></ul></p>
+ <p class="para">For more details on exitflag, see the ipopt documentation which can be found on http://www.coin-or.org/Ipopt/documentation/</p>
+ <p class="para">The output data structure contains detailed information about the optimization process.
+It is of type &#0034;struct&#0034; and contains the following fields.
+<ul class="itemizedlist"><li>output.Iterations: The number of iterations performed.</li>
+<li>output.Cpu_Time : The total cpu-time taken.</li>
+<li>output.Objective_Evaluation: The number of Objective Evaluations performed.</li>
+<li>output.Dual_Infeasibility : The Dual Infeasiblity of the final soution.</li>
+<li>output.Message: The output message for the problem.</li></ul></p>
+ <p class="para">The lambda data structure contains the Lagrange multipliers at the end of optimization. In the current version the values are returned only when the the solution is optimal.
It has type &#0034;struct&#0034; and contains the following fields.
<ul class="itemizedlist"><li>lambda.lower: The Lagrange multipliers for the lower bound constraints.</li>
<li>lambda.upper: The Lagrange multipliers for the upper bound constraints.</li>
<li>lambda.eqlin: The Lagrange multipliers for the linear equality constraints.</li>
<li>lambda.ineqlin: The Lagrange multipliers for the linear inequality constraints.</li>
<li>lambda.eqnonlin: The Lagrange multipliers for the non-linear equality constraints.</li>
-<li>lambda.ineqnonlin: The Lagrange multipliers for the non-linear inequality constraints.</li></ul></p>
- <p class="para"></p></div>
+<li>lambda.ineqnonlin: The Lagrange multipliers for the non-linear inequality constraints.</li></ul></p></div>
+<p class="para">A few examples displaying the various functionalities of fminimax have been provided below. You will find a series of problems and the appropriate code snippets to solve them.</p>
+<div class="refsection"><h3 class="title">Example</h3>
+ Here we solve a simple objective function, subjected to no constraints.
+<p class="para"><span><img src='./_LaTeX_fminimax.xml_3.png' style='position:relative;top:56px;width:312px;height:148px'/></span></p>
+ <p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 1:</span>
+<span class="scilabcomment">// Objective function</span>
+<span class="scilabfkeyword">function</span> <span class="scilabinputoutputargs">f</span><span class="scilaboperator">=</span><span class="scilabfunctionid">myfun</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilabnumber">2</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">+</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">-</span> <span class="scilabnumber">48</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span> <span class="scilabnumber">40</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span> <span class="scilaboperator">+</span> <span class="scilabnumber">304</span><span class="scilabdefault">;</span> <span class="scilabcomment">//Objectives</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">-</span> <span class="scilabnumber">3</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">3</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilaboperator">+</span> <span class="scilabnumber">3</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span><span class="scilabnumber">18</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">4</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">5</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilaboperator">+</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span> <span class="scilabnumber">8</span><span class="scilabdefault">;</span>
+<span class="scilabfkeyword">endfunction</span>
+<span class="scilabcomment">// The initial guess</span>
+<span class="scilabid">x0</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">0.1</span><span class="scilabdefault">,</span><span class="scilabnumber">0.1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">// Run fminimax</span>
+<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">fval</span><span class="scilabdefault">,</span><span class="scilabid">maxfval</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">fminimax</span><span class="scilabopenclose">(</span><span class="scilabfunctionid">myfun</span><span class="scilabdefault">,</span> <span class="scilabid">x0</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Example</h3>
+ We proceed to add simple linear inequality constraints.
-<div class="refsection"><h3 class="title">Examples</h3>
- <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// A basic case :</span>
-<span class="scilabcomment">// we provide only the objective function and the nonlinear constraint</span>
-<span class="scilabcomment">// function</span>
+<p class="para"><span><img src='./_LaTeX_fminimax.xml_4.png' style='position:relative;top:29px;width:225px;height:66px'/></span></p>
+ <p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 2:</span>
+<span class="scilabcomment">//Objective function</span>
<span class="scilabfkeyword">function</span> <span class="scilabinputoutputargs">f</span><span class="scilaboperator">=</span><span class="scilabfunctionid">myfun</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilabnumber">2</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">+</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">-</span> <span class="scilabnumber">48</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span> <span class="scilabnumber">40</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span> <span class="scilaboperator">+</span> <span class="scilabnumber">304</span><span class="scilabdefault">;</span> <span class="scilabcomment">//Objectives</span>
<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">-</span> <span class="scilabnumber">3</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilabdefault">;</span>
@@ -154,18 +182,102 @@ It has type &#0034;struct&#0034; and contains the following fields.
<span class="scilabfkeyword">endfunction</span>
<span class="scilabcomment">// The initial guess</span>
<span class="scilabid">x0</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">0.1</span><span class="scilabdefault">,</span><span class="scilabnumber">0.1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
-<span class="scilabcomment">// The expected solution : only 4 digits are guaranteed</span>
-<span class="scilabid">xopt</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">4</span> <span class="scilabnumber">4</span><span class="scilabopenclose">]</span>
-<span class="scilabid">fopt</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">0</span> <span class="scilaboperator">-</span><span class="scilabnumber">64</span> <span class="scilaboperator">-</span><span class="scilabnumber">2</span> <span class="scilaboperator">-</span><span class="scilabnumber">8</span> <span class="scilabnumber">0</span><span class="scilabopenclose">]</span>
-<span class="scilabid">maxfopt</span> <span class="scilaboperator">=</span> <span class="scilabnumber">0</span>
+<span class="scilabcomment">//Linear Inequality constraints</span>
+<span class="scilabid">A</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span> <span class="scilabdefault">;</span> <span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilaboperator">/</span><span class="scilabnumber">4</span> <span class="scilabdefault">;</span> <span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">2</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">// Run fminimax</span>
+<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">fval</span><span class="scilabdefault">,</span><span class="scilabid">maxfval</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">fminimax</span><span class="scilabopenclose">(</span><span class="scilabfunctionid">myfun</span><span class="scilabdefault">,</span> <span class="scilabid">x0</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Example</h3>
+Here we build up on the previous example by adding linear equality constraints.
+We add the following constraints to the problem specified above:
+<p class="para"><span><img src='./_LaTeX_fminimax.xml_5.png' style='position:relative;top:17px;width:134px;height:42px'/></span></p>
+ <p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 3:</span>
+<span class="scilabcomment">//Objective function</span>
+<span class="scilabfkeyword">function</span> <span class="scilabinputoutputargs">f</span><span class="scilaboperator">=</span><span class="scilabfunctionid">myfun</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilabnumber">2</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">+</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">-</span> <span class="scilabnumber">48</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span> <span class="scilabnumber">40</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span> <span class="scilaboperator">+</span> <span class="scilabnumber">304</span><span class="scilabdefault">;</span> <span class="scilabcomment">//Objectives</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">-</span> <span class="scilabnumber">3</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">3</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilaboperator">+</span> <span class="scilabnumber">3</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span><span class="scilabnumber">18</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">4</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">5</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilaboperator">+</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span> <span class="scilabnumber">8</span><span class="scilabdefault">;</span>
+<span class="scilabfkeyword">endfunction</span>
+<span class="scilabcomment">// The initial guess</span>
+<span class="scilabid">x0</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">0.1</span><span class="scilabdefault">,</span><span class="scilabnumber">0.1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Linear Inequality constraints</span>
+<span class="scilabid">A</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span> <span class="scilabdefault">;</span> <span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilaboperator">/</span><span class="scilabnumber">4</span> <span class="scilabdefault">;</span> <span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">2</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//We specify the linear equality constraints below.</span>
+<span class="scilabid">Aeq</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span> <span class="scilabnumber">2</span><span class="scilabdefault">,</span> <span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">beq</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilabnumber">2</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">// Run fminimax</span>
+<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">fval</span><span class="scilabdefault">,</span><span class="scilabid">maxfval</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">fminimax</span><span class="scilabopenclose">(</span><span class="scilabfunctionid">myfun</span><span class="scilabdefault">,</span> <span class="scilabid">x0</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabid">Aeq</span><span class="scilabdefault">,</span><span class="scilabid">beq</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Example</h3>
+In this example, we proceed to add the upper and lower bounds to the objective function.
+<p class="para"><span><img src='./_LaTeX_fminimax.xml_6.png' style='position:relative;top:17px;width:145px;height:42px'/></span></p>
+ <p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 4:</span>
+<span class="scilabcomment">//Objective function</span>
+<span class="scilabfkeyword">function</span> <span class="scilabinputoutputargs">f</span><span class="scilaboperator">=</span><span class="scilabfunctionid">myfun</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilabnumber">2</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">+</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">-</span> <span class="scilabnumber">48</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span> <span class="scilabnumber">40</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span> <span class="scilaboperator">+</span> <span class="scilabnumber">304</span><span class="scilabdefault">;</span> <span class="scilabcomment">//Objectives</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">-</span> <span class="scilabnumber">3</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">3</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilaboperator">+</span> <span class="scilabnumber">3</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span><span class="scilabnumber">18</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">4</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">5</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilaboperator">+</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span> <span class="scilabnumber">8</span><span class="scilabdefault">;</span>
+<span class="scilabfkeyword">endfunction</span>
+<span class="scilabcomment">// The initial guess</span>
+<span class="scilabid">x0</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">0.1</span><span class="scilabdefault">,</span><span class="scilabnumber">0.1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Linear Inequality constraints</span>
+<span class="scilabid">A</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span> <span class="scilabdefault">;</span> <span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilaboperator">/</span><span class="scilabnumber">4</span> <span class="scilabdefault">;</span> <span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">2</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//We specify the linear equality constraints below.</span>
+<span class="scilabid">Aeq</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span> <span class="scilabnumber">2</span><span class="scilabdefault">,</span> <span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">beq</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilabnumber">2</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//The upper and lower bounds for the objective function are defined in simple vectors as shown below.</span>
+<span class="scilabid">lb</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilaboperator">-</span><span class="scilabconstants">%inf</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">ub</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabconstants">%inf</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span> <span class="scilabcomment">//</span>
<span class="scilabcomment">// Run fminimax</span>
-<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">fval</span><span class="scilabdefault">,</span><span class="scilabid">maxfval</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">fminimax</span><span class="scilabopenclose">(</span><span class="scilabfunctionid">myfun</span><span class="scilabdefault">,</span> <span class="scilabid">x0</span><span class="scilabopenclose">)</span>
-<span class="scilabcomment">// Press ENTER to continue</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">fval</span><span class="scilabdefault">,</span><span class="scilabid">maxfval</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">fminimax</span><span class="scilabopenclose">(</span><span class="scilabfunctionid">myfun</span><span class="scilabdefault">,</span> <span class="scilabid">x0</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabid">Aeq</span><span class="scilabdefault">,</span><span class="scilabid">beq</span><span class="scilabdefault">,</span><span class="scilabid">lb</span><span class="scilabdefault">,</span><span class="scilabid">ub</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
-<div class="refsection"><h3 class="title">Examples</h3>
- <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// A case where we provide the gradient of the objective</span>
-<span class="scilabcomment">// functions and the Jacobian matrix of the constraints.</span>
-<span class="scilabcomment">// The objective function and its gradient</span>
+
+<div class="refsection"><h3 class="title">Example</h3>
+Finally, we add the non-linear constraints to the problem. Note that there is a notable difference in the way this is done as compared to defining the linear constraints.
+ <p class="para"><span><img src='./_LaTeX_fminimax.xml_7.png' style='position:relative;top:22px;width:139px;height:52px'/></span></p>
+ <p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 5:</span>
+<span class="scilabcomment">//Objective function</span>
+<span class="scilabfkeyword">function</span> <span class="scilabinputoutputargs">f</span><span class="scilaboperator">=</span><span class="scilabfunctionid">myfun</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilabnumber">2</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">+</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">-</span> <span class="scilabnumber">48</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span> <span class="scilabnumber">40</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span> <span class="scilaboperator">+</span> <span class="scilabnumber">304</span><span class="scilabdefault">;</span> <span class="scilabcomment">//Objectives</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">-</span> <span class="scilabnumber">3</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">3</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilaboperator">+</span> <span class="scilabnumber">3</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span><span class="scilabnumber">18</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">4</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">5</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilaboperator">+</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span> <span class="scilabnumber">8</span><span class="scilabdefault">;</span>
+<span class="scilabfkeyword">endfunction</span>
+<span class="scilabcomment">// The initial guess</span>
+<span class="scilabid">x0</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">0.1</span><span class="scilabdefault">,</span><span class="scilabnumber">0.1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Linear Inequality constraints</span>
+<span class="scilabid">A</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span> <span class="scilabdefault">;</span> <span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilaboperator">/</span><span class="scilabnumber">4</span> <span class="scilabdefault">;</span> <span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">2</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//We specify the linear equality constraints below.</span>
+<span class="scilabid">Aeq</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span> <span class="scilabnumber">2</span><span class="scilabdefault">,</span> <span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">beq</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilabnumber">2</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//The upper and lower bounds for the objective function are defined in simple vectors as shown below.</span>
+<span class="scilabid">lb</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilaboperator">-</span><span class="scilabconstants">%inf</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">ub</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabconstants">%inf</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span> <span class="scilabcomment">//</span>
+<span class="scilabcomment">//Nonlinear constraints are required to be defined as a single function with the inequality and equality constraints in separate vectors.</span>
+<span class="scilabfkeyword">function</span> <span class="scilabopenclose">[</span><span class="scilabinputoutputargs">c</span><span class="scilabdefault">, </span><span class="scilabinputoutputargs">ceq</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span><span class="scilabfunctionid">nlc</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">c</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilaboperator">+</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">ceq</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabfkeyword">endfunction</span>
+<span class="scilabcomment">// Run fminimax</span>
+<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">fval</span><span class="scilabdefault">,</span><span class="scilabid">maxfval</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">fminimax</span><span class="scilabopenclose">(</span><span class="scilabfunctionid">myfun</span><span class="scilabdefault">,</span> <span class="scilabid">x0</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabid">Aeq</span><span class="scilabdefault">,</span><span class="scilabid">beq</span><span class="scilabdefault">,</span><span class="scilabid">lb</span><span class="scilabdefault">,</span><span class="scilabid">ub</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Example</h3>
+<p class="para">We can further enhance the functionality of fminimax by setting input options. We can pre-define the gradient of the objective function and/or the hessian of the lagrange function and thereby improve the speed of computation. This is elaborated on in example 6. We take the following problem, specify the gradients, and the jacobian matrix of the constraints. We also set solver parameters using the options.</p>
+<p class="para"><span><img src='./_LaTeX_fminimax.xml_8.png' style='position:relative;top:17px;width:205px;height:42px'/></span></p>
+ <p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 6: Using the available options</span>
<span class="scilabfkeyword">function</span> <span class="scilabinputoutputargs">f</span><span class="scilaboperator">=</span><span class="scilabfunctionid">myfun</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilabnumber">2</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">+</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">-</span> <span class="scilabnumber">48</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span> <span class="scilabnumber">40</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span> <span class="scilaboperator">+</span> <span class="scilabnumber">304</span><span class="scilabdefault">;</span>
<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">-</span> <span class="scilabnumber">3</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilabdefault">;</span>
@@ -173,6 +285,7 @@ It has type &#0034;struct&#0034; and contains the following fields.
<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">4</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">5</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilaboperator">+</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span> <span class="scilabnumber">8</span><span class="scilabdefault">;</span>
<span class="scilabfkeyword">endfunction</span>
+
<span class="scilabcomment">// Defining gradient of myfun</span>
<span class="scilabfkeyword">function</span> <span class="scilabinputoutputargs">G</span><span class="scilaboperator">=</span><span class="scilabfunctionid">myfungrad</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
<span class="scilabinputoutputargs">G</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span> <span class="scilabnumber">4</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span> <span class="scilabnumber">48</span><span class="scilabdefault">,</span> <span class="scilaboperator">-</span><span class="scilabnumber">2</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilabdefault">,</span> <span class="scilabnumber">1</span><span class="scilabdefault">,</span> <span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span> <span class="scilabnumber">1</span><span class="scilabdefault">;</span>
@@ -200,7 +313,7 @@ It has type &#0034;struct&#0034; and contains the following fields.
<span class="scilabinputoutputargs">DCeq</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilaboperator">&#0039;</span>
<span class="scilabfkeyword">endfunction</span>
<span class="scilabcomment">// Test with both gradient of objective and gradient of constraints</span>
-<span class="scilabid">minimaxOptions</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">GradObj</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span><span class="scilabfunctionid">myfungrad</span><span class="scilabdefault">,</span><span class="scilabstring">&#0034;</span><span class="scilabstring">GradCon</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span><span class="scilabfunctionid">cgrad</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">minimaxOptions</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">MaxIter</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabopenclose">[</span><span class="scilabnumber">3000</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span> <span class="scilabstring">&#0034;</span><span class="scilabstring">CpuTime</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabopenclose">[</span><span class="scilabnumber">600</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span><span class="scilabstring">&#0034;</span><span class="scilabstring">GradObj</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span><span class="scilabfunctionid">myfungrad</span><span class="scilabdefault">,</span><span class="scilabstring">&#0034;</span><span class="scilabstring">GradCon</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span><span class="scilabfunctionid">cgrad</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
<span class="scilabcomment">// The initial guess</span>
<span class="scilabid">x0</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">10</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
<span class="scilabcomment">// The expected solution : only 4 digits are guaranteed</span>
@@ -210,6 +323,30 @@ It has type &#0034;struct&#0034; and contains the following fields.
<span class="scilabcomment">// Run fminimax</span>
<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">fval</span><span class="scilabdefault">,</span><span class="scilabid">maxfval</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">fminimax</span><span class="scilabopenclose">(</span><span class="scilabfunctionid">myfun</span><span class="scilabdefault">,</span><span class="scilabid">x0</span><span class="scilabdefault">,</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span> <span class="scilabfunctionid">confun</span><span class="scilabdefault">,</span> <span class="scilabid">minimaxOptions</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+<div class="refsection"><h3 class="title">Example</h3>
+Infeasible Problems: Find x in R^2 such that it minimizes the objective function used above under the following constraints:
+<p class="para"><span><img src='./_LaTeX_fminimax.xml_9.png' style='position:relative;top:19px;width:158px;height:46px'/></span></p>
+<p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 7:</span>
+<span class="scilabcomment">//Objective function</span>
+<span class="scilabfkeyword">function</span> <span class="scilabinputoutputargs">f</span><span class="scilaboperator">=</span><span class="scilabfunctionid">myfun</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilabnumber">2</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">+</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">-</span> <span class="scilabnumber">48</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span> <span class="scilabnumber">40</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span> <span class="scilaboperator">+</span> <span class="scilabnumber">304</span><span class="scilabdefault">;</span> <span class="scilabcomment">//Objectives</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">-</span> <span class="scilabnumber">3</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">3</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilaboperator">+</span> <span class="scilabnumber">3</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span><span class="scilabnumber">18</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">4</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">5</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilaboperator">+</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span> <span class="scilabnumber">8</span><span class="scilabdefault">;</span>
+<span class="scilabfkeyword">endfunction</span>
+<span class="scilabcomment">// The initial guess</span>
+<span class="scilabid">x0</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">0.1</span><span class="scilabdefault">,</span><span class="scilabnumber">0.1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Linear Inequality constraints</span>
+<span class="scilabid">A</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span> <span class="scilabdefault">;</span> <span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilaboperator">/</span><span class="scilabnumber">4</span> <span class="scilabdefault">;</span> <span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">2</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//We specify the linear equality constraints below.</span>
+<span class="scilabid">Aeq</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilaboperator">/</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">5</span><span class="scilabdefault">;</span> <span class="scilabnumber">2</span><span class="scilabdefault">,</span> <span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">beq</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">11</span><span class="scilabdefault">;</span><span class="scilabnumber">8</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">// Run fminimax</span>
+<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">fval</span><span class="scilabdefault">,</span><span class="scilabid">maxfval</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">fminimax</span><span class="scilabopenclose">(</span><span class="scilabfunctionid">myfun</span><span class="scilabdefault">,</span> <span class="scilabid">x0</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabid">Aeq</span><span class="scilabdefault">,</span><span class="scilabid">beq</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
<div class="refsection"><h3 class="title">Authors</h3>
<ul class="itemizedlist"><li class="member">Animesh Baranawal</li></ul></div>
<br />
@@ -223,7 +360,7 @@ It has type &#0034;struct&#0034; and contains the following fields.
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a></span>
+ <span class="top"><a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/fminunc.html b/help/en_US/scilab_en_US_help/fminunc.html
index d5f0786..b2e9059 100644
--- a/help/en_US/scilab_en_US_help/fminunc.html
+++ b/help/en_US/scilab_en_US_help/fminunc.html
@@ -16,11 +16,11 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a></span>
+ <span class="top"><a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a></span>
</td>
<td width="30%" class="next">
- <span class="next"><a href="linprog.html">linprog &gt;&gt;</a></span>
+ <span class="next"><a href="intfminbnd.html">intfminbnd &gt;&gt;</a></span>
</td>
</tr></table>
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; fminunc</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; fminunc</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">fminunc</h1>
@@ -45,59 +45,81 @@
<span class="default">[</span><span class="default">xopt</span><span class="default">,</span><span class="default">fopt</span><span class="default">,</span><span class="default">exitflag</span><span class="default">,</span><span class="default">output</span><span class="default">,</span><span class="default">gradient</span><span class="default">]=</span><span class="functionid">fminunc</span><span class="default">(.....)</span>
<span class="default">[</span><span class="default">xopt</span><span class="default">,</span><span class="default">fopt</span><span class="default">,</span><span class="default">exitflag</span><span class="default">,</span><span class="default">output</span><span class="default">,</span><span class="default">gradient</span><span class="default">,</span><span class="default">hessian</span><span class="default">]=</span><span class="functionid">fminunc</span><span class="default">(.....)</span></pre></div></div>
-<div class="refsection"><h3 class="title">Parameters</h3>
+<div class="refsection"><h3 class="title">Input Parameters</h3>
<dl><dt><span class="term">f :</span>
- <dd><p class="para">a function, representing the objective function of the problem</p></dd></dt>
+ <dd><p class="para">A function, representing the objective function of the problem.</p></dd></dt>
<dt><span class="term">x0 :</span>
- <dd><p class="para">a vector of doubles, containing the starting of variables.</p></dd></dt>
- <dt><span class="term">options:</span>
- <dd><p class="para">a list, containing the option for user to specify. See below for details.</p></dd></dt>
- <dt><span class="term">xopt :</span>
- <dd><p class="para">a vector of doubles, the computed solution of the optimization problem.</p></dd></dt>
+ <dd><p class="para">A vector of doubles, containing the starting values of variables of size (1 X n) or (n X 1) where &#0039;n&#0039; is the number of Variables.</p></dd></dt>
+ <dt><span class="term">options :</span>
+ <dd><p class="para">A list, containing the options for user to specify. See below for details.</p></dd></dt></dl></div>
+ <div class="refsection"><h3 class="title">Outputs</h3>
+ <dl><dt><span class="term">xopt :</span>
+ <dd><p class="para">A vector of doubles, containing the computed solution of the optimization problem.</p></dd></dt>
<dt><span class="term">fopt :</span>
- <dd><p class="para">a scalar of double, the function value at x.</p></dd></dt>
+ <dd><p class="para">A double, containing the the function value at x.</p></dd></dt>
<dt><span class="term">exitflag :</span>
- <dd><p class="para">a scalar of integer, containing the flag which denotes the reason for termination of algorithm. See below for details.</p></dd></dt>
- <dt><span class="term">output :</span>
- <dd><p class="para">a structure, containing the information about the optimization. See below for details.</p></dd></dt>
+ <dd><p class="para">An integer, containing the flag which denotes the reason for termination of algorithm. See below for details.</p></dd></dt>
+ <dt><span class="term">output :</span>
+ <dd><p class="para">A structure, containing the information about the optimization. See below for details.</p></dd></dt>
<dt><span class="term">gradient :</span>
- <dd><p class="para">a vector of doubles, containing the the gradient of the solution.</p></dd></dt>
+ <dd><p class="para">A vector of doubles, containing the objective&#0039;s gradient of the solution.</p></dd></dt>
<dt><span class="term">hessian :</span>
- <dd><p class="para">a matrix of doubles, containing the the hessian of the solution.</p></dd></dt></dl></div>
+ <dd><p class="para">A matrix of doubles, containing the lagrangian&#0039;s hessian of the solution.</p></dd></dt></dl></div>
<div class="refsection"><h3 class="title">Description</h3>
- <p class="para">Search the minimum of an unconstrained optimization problem specified by :
-Find the minimum of f(x) such that</p>
+ <p class="para">Search the minimum of an unconstrained optimization problem specified by :</p>
+ <p class="para">Find the minimum of f(x) such that</p>
<p class="para"><span><img src='./_LaTeX_fminunc.xml_1.png' style='position:relative;top:9px;width:115px;height:26px'/></span></p>
- <p class="para">The routine calls Ipopt for solving the Un-constrained Optimization problem, Ipopt is a library written in C++.</p>
- <p class="para">The options allows the user to set various parameters of the Optimization problem.
-It should be defined as type &#0034;list&#0034; and contains the following fields.
-<ul class="itemizedlist"><li>Syntax : options= list(&#0034;MaxIter&#0034;, [---], &#0034;CpuTime&#0034;, [---], &#0034;Gradient&#0034;, ---, &#0034;Hessian&#0034;, ---);</li>
-<li>MaxIter : a Scalar, containing the Maximum Number of Iteration that the solver should take.</li>
-<li>CpuTime : a Scalar, containing the Maximum amount of CPU Time that the solver should take.</li>
-<li>Gradient : a function, representing the gradient function of the Objective in Vector Form.</li>
-<li>Hessian : a function, representing the hessian function of the Objective in Symmetric Matrix Form.</li>
-<li>Default Values : options = list(&#0034;MaxIter&#0034;, [3000], &#0034;CpuTime&#0034;, [600]);</li></ul></p>
- <p class="para">The exitflag allows to know the status of the optimization which is given back by Ipopt.
-<ul class="itemizedlist"><li>exitflag=0 : Optimal Solution Found</li>
-<li>exitflag=1 : Maximum Number of Iterations Exceeded. Output may not be optimal.</li>
-<li>exitflag=2 : Maximum CPU Time exceeded. Output may not be optimal.</li>
-<li>exitflag=3 : Stop at Tiny Step.</li>
-<li>exitflag=4 : Solved To Acceptable Level.</li>
-<li>exitflag=5 : Converged to a point of local infeasibility.</li></ul></p>
- <p class="para">For more details on exitflag see the ipopt documentation, go to http://www.coin-or.org/Ipopt/documentation/</p>
- <p class="para">The output data structure contains detailed informations about the optimization process.
-It has type &#0034;struct&#0034; and contains the following fields.
-<ul class="itemizedlist"><li>output.Iterations: The number of iterations performed during the search</li>
-<li>output.Cpu_Time: The total cpu-time spend during the search</li>
-<li>output.Objective_Evaluation: The number of Objective Evaluations performed during the search</li>
-<li>output.Dual_Infeasibility: The Dual Infeasiblity of the final soution</li>
-<li>output.Message: The output message for the problem</li></ul></p>
+ <p class="para">Fminunc calls Ipopt which is an optimization library written in C++, to solve the unconstrained optimization problem.</p>
+ <p class="para"><h3 class="title">Options</h3>
+The options allow the user to set various parameters of the optimization problem. The syntax for the options is given by:</p>
+ <p class="para">options= list(&#0034;MaxIter&#0034;, [---], &#0034;CpuTime&#0034;, [---], &#0034;GradObj&#0034;, ---, &#0034;Hessian&#0034;, ---, &#0034;GradCon&#0034;, ---);</p>
+ <p class="para"><ul class="itemizedlist"><li>MaxIter : A Scalar, specifying the Maximum Number of Iterations that the solver should take.</li>
+<li>CpuTime : A Scalar, specifying the Maximum amount of CPU Time in seconds that the solver should take.</li>
+<li>Gradient: A function, representing the gradient function of the objective in Vector Form.</li>
+<li>Hessian : A function, representing the hessian function of the lagrange in the form of a Symmetric Matrix with input parameters as x, objective factor and lambda. Refer to Example 5 for definition of lagrangian hessian function.</li></ul>
+The default values for the various items are given as:</p>
+ <p class="para">options = list(&#0034;MaxIter&#0034;, [3000], &#0034;CpuTime&#0034;, [600]);</p>
+ <p class="para">The exitflag allows the user to know the status of the optimization which is returned by Ipopt. The values it can take and what they indicate is described below:
+<ul class="itemizedlist"><li>0 : Optimal Solution Found</li>
+<li>1 : Maximum Number of Iterations Exceeded. Output may not be optimal.</li>
+<li>2 : Maximum amount of CPU Time exceeded. Output may not be optimal.</li>
+<li>3 : Stop at Tiny Step.</li>
+<li>4 : Solved To Acceptable Level.</li>
+<li>5 : Converged to a point of local infeasibility.</li></ul></p>
+ <p class="para">For more details on exitflag, see the Ipopt documentation which can be found on http://www.coin-or.org/Ipopt/documentation/</p>
+ <p class="para">The output data structure contains detailed information about the optimization process.
+It is of type &#0034;struct&#0034; and contains the following fields.
+<ul class="itemizedlist"><li>output.Iterations: The number of iterations performed.</li>
+<li>output.Cpu_Time : The total cpu-time taken.</li>
+<li>output.Objective_Evaluation: The number of objective evaluations performed.</li>
+<li>output.Dual_Infeasibility : The Dual Infeasiblity of the final soution.</li>
+<li>output.Message: The output message for the problem.</li></ul></p>
<p class="para"></p></div>
-<div class="refsection"><h3 class="title">Examples</h3>
- <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Find x in R^2 such that it minimizes the Rosenbrock function</span>
-<span class="scilabcomment">//f = 100*(x2 - x1^2)^2 + (1-x1)^2</span>
+ <p class="para">A few examples displaying the various functionalities of fminunc have been provided below. You will find a series of problems and the appropriate code snippets to solve them.</p>
+
+<div class="refsection"><h3 class="title">Example</h3>
+<p class="para">We begin with the minimization of a simple non-linear function.</p>
+ <p class="para">Find x in R^2 such that it minimizes:</p>
+ <p class="para"><span><img src='./_LaTeX_fminunc.xml_2.png' style='position:relative;top:10px;width:160px;height:28px'/></span></p>
+ <p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 1: Simple non-linear function.</span>
+<span class="scilabcomment">//Objective function to be minimised</span>
+<span class="scilabfkeyword">function</span> <span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span><span class="scilabfunctionid">f</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">+</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilabdefault">;</span>
+<span class="scilabfkeyword">endfunction</span>
+<span class="scilabcomment">//Starting point</span>
+<span class="scilabid">x0</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Calling Ipopt</span>
+<span class="scilabopenclose">[</span><span class="scilabid">xopt</span><span class="scilabdefault">,</span><span class="scilabid">fopt</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span><span class="scilabid">fminunc</span><span class="scilabopenclose">(</span><span class="scilabfunctionid">f</span><span class="scilabdefault">,</span><span class="scilabid">x0</span><span class="scilabopenclose">)</span>
+<span class="scilabcomment">// Press ENTER to continue</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Example</h3>
+<p class="para">We now look at the Rosenbrock function, a non-convex performance test problem for optimization routines. We use this example to illustrate how we can enhance the functionality of fminunc by setting input options. We can pre-define the gradient of the objective function and/or the hessian of the lagrange function and thereby improve the speed of computation. This is elaborated on in example 2. We also set solver parameters using the options.</p>
+ <p class="para"><span><img src='./_LaTeX_fminunc.xml_3.png' style='position:relative;top:10px;width:287px;height:28px'/></span></p>
+ <p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 2: The Rosenbrock function.</span>
<span class="scilabcomment">//Objective function to be minimised</span>
<span class="scilabfkeyword">function</span> <span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span><span class="scilabfunctionid">f</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
<span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span> <span class="scilabnumber">100</span><span class="scilaboperator">*</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">+</span> <span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilabdefault">;</span>
@@ -113,28 +135,16 @@ It has type &#0034;struct&#0034; and contains the following fields.
<span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1200</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilaboperator">-</span> <span class="scilabnumber">400</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span> <span class="scilaboperator">+</span> <span class="scilabnumber">2</span><span class="scilabdefault">,</span> <span class="scilaboperator">-</span><span class="scilabnumber">400</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span><span class="scilaboperator">-</span><span class="scilabnumber">400</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilabdefault">,</span> <span class="scilabnumber">200</span> <span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
<span class="scilabfkeyword">endfunction</span>
<span class="scilabcomment">//Options</span>
-<span class="scilabid">options</span><span class="scilaboperator">=</span><a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">MaxIter</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1500</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span> <span class="scilabstring">&#0034;</span><span class="scilabstring">CpuTime</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabopenclose">[</span><span class="scilabnumber">500</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span> <span class="scilabstring">&#0034;</span><span class="scilabstring">Gradient</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabfunctionid">fGrad</span><span class="scilabdefault">,</span> <span class="scilabstring">&#0034;</span><span class="scilabstring">Hessian</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabfunctionid">fHess</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">options</span><span class="scilaboperator">=</span><a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">MaxIter</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1500</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span> <span class="scilabstring">&#0034;</span><span class="scilabstring">CpuTime</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabopenclose">[</span><span class="scilabnumber">500</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span> <span class="scilabstring">&#0034;</span><span class="scilabstring">GradObj</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabfunctionid">fGrad</span><span class="scilabdefault">,</span> <span class="scilabstring">&#0034;</span><span class="scilabstring">Hessian</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabfunctionid">fHess</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
<span class="scilabcomment">//Calling Ipopt</span>
<span class="scilabopenclose">[</span><span class="scilabid">xopt</span><span class="scilabdefault">,</span><span class="scilabid">fopt</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">gradient</span><span class="scilabdefault">,</span><span class="scilabid">hessian</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span><span class="scilabid">fminunc</span><span class="scilabopenclose">(</span><span class="scilabfunctionid">f</span><span class="scilabdefault">,</span><span class="scilabid">x0</span><span class="scilabdefault">,</span><span class="scilabid">options</span><span class="scilabopenclose">)</span>
<span class="scilabcomment">// Press ENTER to continue</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
-<div class="refsection"><h3 class="title">Examples</h3>
- <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Find x in R^2 such that the below function is minimum</span>
-<span class="scilabcomment">//f = x1^2 + x2^2</span>
-<span class="scilabcomment">//Objective function to be minimised</span>
-<span class="scilabfkeyword">function</span> <span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span><span class="scilabfunctionid">f</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
-<span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">+</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilabdefault">;</span>
-<span class="scilabfkeyword">endfunction</span>
-<span class="scilabcomment">//Starting point</span>
-<span class="scilabid">x0</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
-<span class="scilabcomment">//Calling Ipopt</span>
-<span class="scilabopenclose">[</span><span class="scilabid">xopt</span><span class="scilabdefault">,</span><span class="scilabid">fopt</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span><span class="scilabid">fminunc</span><span class="scilabopenclose">(</span><span class="scilabfunctionid">f</span><span class="scilabdefault">,</span><span class="scilabid">x0</span><span class="scilabopenclose">)</span>
-<span class="scilabcomment">// Press ENTER to continue</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
-
-<div class="refsection"><h3 class="title">Examples</h3>
- <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//The below problem is an unbounded problem:</span>
-<span class="scilabcomment">//Find x in R^2 such that the below function is minimum</span>
-<span class="scilabcomment">//f = - x1^2 - x2^2</span>
+<div class="refsection"><h3 class="title">Example</h3>
+<p class="para">Unbounded Problems: Find x in R^2 such that it minimizes:</p>
+ <p class="para"><span><img src='./_LaTeX_fminunc.xml_4.png' style='position:relative;top:10px;width:134px;height:28px'/></span></p>
+ <p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 3: Unbounded objective function.</span>
<span class="scilabcomment">//Objective function to be minimised</span>
<span class="scilabfkeyword">function</span> <span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span><span class="scilabfunctionid">f</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
<span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span> <span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">-</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilabdefault">;</span>
@@ -150,7 +160,7 @@ It has type &#0034;struct&#0034; and contains the following fields.
<span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">;</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">2</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
<span class="scilabfkeyword">endfunction</span>
<span class="scilabcomment">//Options</span>
-<span class="scilabid">options</span><span class="scilaboperator">=</span><a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">MaxIter</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1500</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span> <span class="scilabstring">&#0034;</span><span class="scilabstring">CpuTime</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabopenclose">[</span><span class="scilabnumber">500</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span> <span class="scilabstring">&#0034;</span><span class="scilabstring">Gradient</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabfunctionid">fGrad</span><span class="scilabdefault">,</span> <span class="scilabstring">&#0034;</span><span class="scilabstring">Hessian</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabfunctionid">fHess</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">options</span><span class="scilaboperator">=</span><a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">MaxIter</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1500</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span> <span class="scilabstring">&#0034;</span><span class="scilabstring">CpuTime</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabopenclose">[</span><span class="scilabnumber">500</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span> <span class="scilabstring">&#0034;</span><span class="scilabstring">GradObj</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabfunctionid">fGrad</span><span class="scilabdefault">,</span> <span class="scilabstring">&#0034;</span><span class="scilabstring">Hessian</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabfunctionid">fHess</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
<span class="scilabcomment">//Calling Ipopt</span>
<span class="scilabopenclose">[</span><span class="scilabid">xopt</span><span class="scilabdefault">,</span><span class="scilabid">fopt</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">gradient</span><span class="scilabdefault">,</span><span class="scilabid">hessian</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span><span class="scilabid">fminunc</span><span class="scilabopenclose">(</span><span class="scilabfunctionid">f</span><span class="scilabdefault">,</span><span class="scilabid">x0</span><span class="scilabdefault">,</span><span class="scilabid">options</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
@@ -167,11 +177,11 @@ It has type &#0034;struct&#0034; and contains the following fields.
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a></span>
+ <span class="top"><a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a></span>
</td>
<td width="30%" class="next">
- <span class="next"><a href="linprog.html">linprog &gt;&gt;</a></span>
+ <span class="next"><a href="intfminbnd.html">intfminbnd &gt;&gt;</a></span>
</td>
</tr></table>
diff --git a/help/en_US/scilab_en_US_help/index.html b/help/en_US/scilab_en_US_help/index.html
index 59a4ed9..a12788e 100644
--- a/help/en_US/scilab_en_US_help/index.html
+++ b/help/en_US/scilab_en_US_help/index.html
@@ -31,8 +31,14 @@
<h3 class="book-title">FOSSEE Optimization Toolbox</h3>
<ul class="list-part"><a name="fossee_optimization_toolbox_manual"></a><div class="info"></div>
-<li><a href="section_031bbc67ce78762a40093bfdff4eaa3b.html" class="part">FOSSEE Optimization Toolbox</a>
-<ul class="list-chapter"><li><a href="fgoalattain.html" class="refentry">fgoalattain</a> &#8212; <span class="refentry-description">Solves a multiobjective goal attainment problem</span></li>
+<li><a href="section_44e1f57c5225357b5fe53cb5fad967e9.html" class="part">FOSSEE Optimization Toolbox</a>
+<ul class="list-chapter"><li><a href="cbcintlinprog.html" class="refentry">cbcintlinprog</a> &#8212; <span class="refentry-description">Solves a mixed integer linear programming constrained optimization problem in intlinprog format.</span></li>
+
+
+
+
+
+<li><a href="fgoalattain.html" class="refentry">fgoalattain</a> &#8212; <span class="refentry-description">Solves a multiobjective goal attainment problem</span></li>
@@ -44,7 +50,7 @@
-<li><a href="fmincon.html" class="refentry">fmincon</a> &#8212; <span class="refentry-description">Solves a multi-variable constrainted optimization problem</span></li>
+<li><a href="fmincon.html" class="refentry">fmincon</a> &#8212; <span class="refentry-description">Solves a multi-variable constrainted optimization problem.</span></li>
@@ -62,6 +68,36 @@
+<li><a href="intfminbnd.html" class="refentry">intfminbnd</a> &#8212; <span class="refentry-description">Solves a multi-variable optimization problem on a bounded interval</span></li>
+
+
+
+
+
+<li><a href="intfmincon.html" class="refentry">intfmincon</a> &#8212; <span class="refentry-description">Solves a constrainted multi-variable mixed integer non linear programming problem</span></li>
+
+
+
+
+
+<li><a href="intfminimax.html" class="refentry">intfminimax</a> &#8212; <span class="refentry-description">Solves minimax constraint problem</span></li>
+
+
+
+
+
+<li><a href="intfminunc.html" class="refentry">intfminunc</a> &#8212; <span class="refentry-description">Solves an unconstrainted multi-variable mixed integer non linear programming optimization problem</span></li>
+
+
+
+
+
+<li><a href="intqpipopt.html" class="refentry">intqpipopt</a> &#8212; <span class="refentry-description">Solves a linear quadratic problem.</span></li>
+
+
+
+
+
<li><a href="linprog.html" class="refentry">linprog</a> &#8212; <span class="refentry-description">Solves a linear programming problem.</span></li>
@@ -106,7 +142,7 @@
<li><a href="symphonymat.html" class="refentry">symphonymat</a> &#8212; <span class="refentry-description">Solves a mixed integer linear programming constrained optimization problem in intlinprog format.</span></li>
-<li><a href="section_316c7f5a42ba69316753082a567f2a1a.html" class="chapter">Symphony Native Functions</a>
+<li><a href="section_5fc7ef02a133896efbd190355314d3fc.html" class="chapter">Symphony Native Functions</a>
<ul class="list-refentry"><li><a href="sym_addConstr.html" class="refentry">sym_addConstr</a> &#8212; <span class="refentry-description">Add a new constraint</span></li>
diff --git a/help/en_US/scilab_en_US_help/intfminbnd.html b/help/en_US/scilab_en_US_help/intfminbnd.html
new file mode 100644
index 0000000..c494c4d
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/intfminbnd.html
@@ -0,0 +1,178 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <title>intfminbnd</title>
+ <style type="text/css" media="all">
+ @import url("scilab_code.css");
+ @import url("xml_code.css");
+ @import url("c_code.css");
+ @import url("style.css");
+ </style>
+ </head>
+ <body>
+ <div class="manualnavbar">
+ <table width="100%"><tr>
+ <td width="30%">
+ <span class="previous"><a href="fminunc.html">&lt;&lt; fminunc</a></span>
+
+ </td>
+ <td width="40%" class="center">
+ <span class="top"><a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a></span>
+
+ </td>
+ <td width="30%" class="next">
+ <span class="next"><a href="intfmincon.html">intfmincon &gt;&gt;</a></span>
+
+ </td>
+ </tr></table>
+ <hr />
+ </div>
+
+
+
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; intfminbnd</span>
+
+ <br /><br />
+ <div class="refnamediv"><h1 class="refname">intfminbnd</h1>
+ <p class="refpurpose">Solves a multi-variable optimization problem on a bounded interval</p></div>
+
+
+<div class="refsynopsisdiv"><h3 class="title">Calling Sequence</h3>
+ <div class="synopsis"><pre><span class="default">xopt</span><span class="default"> = </span><span class="functionid">intfminbnd</span><span class="default">(</span><span class="default">f</span><span class="default">,</span><span class="default">intcon</span><span class="default">,</span><span class="default">x1</span><span class="default">,</span><span class="default">x2</span><span class="default">)</span>
+<span class="default">xopt</span><span class="default"> = </span><span class="functionid">intfminbnd</span><span class="default">(</span><span class="default">f</span><span class="default">,</span><span class="default">intcon</span><span class="default">,</span><span class="default">x1</span><span class="default">,</span><span class="default">x2</span><span class="default">,</span><span class="default">options</span><span class="default">)</span>
+<span class="default">[</span><span class="default">xopt</span><span class="default">,</span><span class="default">fopt</span><span class="default">] = </span><span class="functionid">intfminbnd</span><span class="default">(.....)</span>
+<span class="default">[</span><span class="default">xopt</span><span class="default">,</span><span class="default">fopt</span><span class="default">,</span><span class="default">exitflag</span><span class="default">]= </span><span class="functionid">intfminbnd</span><span class="default">(.....)</span>
+<span class="default">[</span><span class="default">xopt</span><span class="default">,</span><span class="default">fopt</span><span class="default">,</span><span class="default">exitflag</span><span class="default">,</span><span class="default">output</span><span class="default">]=</span><span class="functionid">intfminbnd</span><span class="default">(.....)</span>
+<span class="default">[</span><span class="default">xopt</span><span class="default">,</span><span class="default">fopt</span><span class="default">,</span><span class="default">exitflag</span><span class="default">,</span><span class="default">gradient</span><span class="default">,</span><span class="default">hessian</span><span class="default">]=</span><span class="functionid">intfminbnd</span><span class="default">(.....)</span></pre></div></div>
+
+<div class="refsection"><h3 class="title">Input Parameters</h3>
+ <dl><dt><span class="term">f :</span>
+ <dd><p class="para">A function, representing the objective function of the problem.</p></dd></dt>
+ <dt><span class="term"><span><img src='./_LaTeX_intfminbnd.xml_1.png' style='position:relative;top:5px;width:19px;height:14px'/></span> :</span>
+ <dd><p class="para">A vector, containing the lower bound of the variables of size (1 X n) or (n X 1) where n is number of variables. If it is empty it means that the lower bound is <span><img src='./_LaTeX_intfminbnd.xml_2.png' style='position:relative;top:4px;width:33px;height:16px'/></span>.</p></dd></dt>
+ <dt><span class="term"><span><img src='./_LaTeX_intfminbnd.xml_3.png' style='position:relative;top:5px;width:19px;height:14px'/></span> :</span>
+ <dd><p class="para">A vector, containing the upper bound of the variables of size (1 X n) or (n X 1) or (0 X 0) where n is the number of variables. If it is empty it means that the upper bound is <span><img src='./_LaTeX_intfminbnd.xml_4.png' style='position:relative;top:2px;width:20px;height:11px'/></span>.</p></dd></dt>
+ <dt><span class="term">intcon :</span>
+ <dd><p class="para">A vector of integers, representing the variables that are constrained to be integers.</p></dd></dt>
+ <dt><span class="term">options :</span>
+ <dd><p class="para">A list, containing the options for user to specify. See below for details.</p></dd></dt></dl></div>
+ <div class="refsection"><h3 class="title">Outputs</h3>
+ <dl><dt><span class="term">xopt :</span>
+ <dd><p class="para">A vector of doubles, containing the computed solution of the optimization problem.</p></dd></dt>
+ <dt><span class="term">fopt :</span>
+ <dd><p class="para">A double, containing the the function value at x.</p></dd></dt>
+ <dt><span class="term">exitflag :</span>
+ <dd><p class="para">An integer, containing the flag which denotes the reason for termination of algorithm. See below for details.</p></dd></dt>
+ <dt><span class="term">gradient :</span>
+ <dd><p class="para">A vector of doubles, containing the objective&#0039;s gradient of the solution.</p></dd></dt>
+ <dt><span class="term">hessian :</span>
+ <dd><p class="para">A matrix of doubles, containing the Lagrangian&#0039;s hessian of the solution.</p></dd></dt></dl></div>
+
+<div class="refsection"><h3 class="title">Description</h3>
+ <p class="para">Search the minimum of a multi-variable function on bounded interval specified by :
+Find the minimum of f(x) such that</p>
+ <p class="para"><span><img src='./_LaTeX_intfminbnd.xml_5.png' style='position:relative;top:29px;width:179px;height:66px'/></span></p>
+ <p class="para">intfminbnd calls Bonmin, which is an optimization library written in C++, to solve the bound optimization problem.</p>
+ <p class="para"><h3 class="title">Options</h3>
+The options allow the user to set various parameters of the Optimization problem. The syntax for the options is given by:</p>
+ <p class="para">options= list(&#0034;IntegerTolerance&#0034;, [---], &#0034;MaxNodes&#0034;,[---], &#0034;MaxIter&#0034;, [---], &#0034;AllowableGap&#0034;,[---] &#0034;CpuTime&#0034;, [---],&#0034;gradobj&#0034;, &#0034;off&#0034;, &#0034;hessian&#0034;, &#0034;off&#0034; );
+<ul class="itemizedlist"><li>IntegerTolerance : A Scalar, a number with that value of an integer is considered integer.</li>
+<li>MaxNodes : A Scalar, containing the maximum number of nodes that the solver should search.</li>
+<li>CpuTime : A scalar, specifying the maximum amount of CPU Time in seconds that the solver should take.</li>
+<li>AllowableGap : A scalar, that specifies the gap between the computed solution and the the objective value of the best known solution stop, at which the tree search can be stopped.</li>
+<li>MaxIter : A scalar, specifying the maximum number of iterations that the solver should take.</li>
+<li>gradobj : A string, to turn on or off the user supplied objective gradient.</li>
+<li>hessian : A scalar, to turn on or off the user supplied objective hessian.</li></ul>
+ The default values for the various items are given as:</p>
+ <p class="para">options = list(&#0039;integertolerance&#0039;,1d-06,&#0039;maxnodes&#0039;,2147483647,&#0039;cputime&#0039;,1d10,&#0039;allowablegap&#0039;,0,&#0039;maxiter&#0039;,2147483647,&#0039;gradobj&#0039;,&#0034;off&#0034;,&#0039;hessian&#0039;,&#0034;off&#0034;)</p>
+
+ <p class="para">The exitflag allows the user to know the status of the optimization which is returned by Bonmin. The values it can take and what they indicate is described below:
+<ul class="itemizedlist"><li>0 : Optimal Solution Found</li>
+<li>1 : Maximum Number of Iterations Exceeded. Output may not be optimal.</li>
+<li>2 : Maximum amount of CPU Time exceeded. Output may not be optimal.</li>
+<li>3 : Stop at Tiny Step.</li>
+<li>4 : Solved To Acceptable Level.</li>
+<li>5 : Converged to a point of local infeasibility.</li></ul></p>
+ <p class="para">For more details on exitflag, see the Bonmin documentation which can be found on http://www.coin-or.org/Bonmin</p>
+ <p class="para"></p></div>
+<p class="para">A few examples displaying the various functionalities of intfminbnd have been provided below. You will find a series of problems and the appropriate code snippets to solve them.</p>
+<div class="refsection"><h3 class="title">Example</h3>
+ <p class="para">We start with a simple objective function. Find x in R^6 such that it minimizes:</p>
+ <p class="para"><span><img src='./_LaTeX_intfminbnd.xml_6.png' style='position:relative;top:12px;width:506px;height:128px'/></span></p>
+<p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 1:</span>
+<span class="scilabcomment">//Objective function to be minimised</span>
+<span class="scilabfkeyword">function</span> <span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span><span class="scilabfunctionid">f</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span><span class="scilabnumber">0</span>
+<span class="scilabskeyword">for</span> <span class="scilabid">i</span> <span class="scilaboperator">=</span><span class="scilabnumber">1</span><span class="scilabspecial">:</span><span class="scilabnumber">6</span>
+<span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span><span class="scilabinputoutputargs">y</span><span class="scilaboperator">+</span><a class="scilabcommand" href="scilab://sin">sin</a><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabid">i</span><span class="scilabopenclose">)</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabskeyword">end</span>
+<span class="scilabfkeyword">endfunction</span>
+<span class="scilabcomment">//Variable bounds</span>
+<span class="scilabid">x1</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span> <span class="scilaboperator">-</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span> <span class="scilaboperator">-</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span> <span class="scilaboperator">-</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span> <span class="scilaboperator">-</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span> <span class="scilaboperator">-</span><span class="scilabnumber">2</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">x2</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span> <span class="scilabnumber">2</span><span class="scilabdefault">,</span> <span class="scilabnumber">2</span><span class="scilabdefault">,</span> <span class="scilabnumber">2</span><span class="scilabdefault">,</span> <span class="scilabnumber">2</span><span class="scilabdefault">,</span> <span class="scilabnumber">2</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">intcon</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">2</span> <span class="scilabnumber">3</span> <span class="scilabnumber">4</span><span class="scilabopenclose">]</span>
+<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">fval</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span><span class="scilabid">intfminbnd</span><span class="scilabopenclose">(</span><span class="scilabfunctionid">f</span> <span class="scilabdefault">,</span><span class="scilabid">intcon</span><span class="scilabdefault">,</span> <span class="scilabid">x1</span><span class="scilabdefault">,</span> <span class="scilabid">x2</span><span class="scilabopenclose">)</span>
+<span class="scilabcomment">// Press ENTER to continue</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Example</h3>
+ Here we solve a bounded objective function in R^6. We use this function to illustrate how we can further enhance the functionality of fminbnd by setting input options. We can pre-define the gradient of the objective function and/or the hessian of the lagrange function and thereby improve the speed of computation. This is elaborated on in example 2. We also set solver parameters using the options.
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 2:</span>
+<span class="scilabcomment">//Objective function to be minimised</span>
+<span class="scilabfkeyword">function</span> <span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span><span class="scilabfunctionid">f</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span><span class="scilabnumber">0</span>
+<span class="scilabskeyword">for</span> <span class="scilabid">i</span> <span class="scilaboperator">=</span><span class="scilabnumber">1</span><span class="scilabspecial">:</span><span class="scilabnumber">6</span>
+<span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span><span class="scilabinputoutputargs">y</span><span class="scilaboperator">+</span><a class="scilabcommand" href="scilab://sin">sin</a><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabid">i</span><span class="scilabopenclose">)</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabskeyword">end</span>
+<span class="scilabfkeyword">endfunction</span>
+<span class="scilabcomment">//Variable bounds</span>
+<span class="scilabid">x1</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span> <span class="scilaboperator">-</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span> <span class="scilaboperator">-</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span> <span class="scilaboperator">-</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span> <span class="scilaboperator">-</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span> <span class="scilaboperator">-</span><span class="scilabnumber">2</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">x2</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span> <span class="scilabnumber">2</span><span class="scilabdefault">,</span> <span class="scilabnumber">2</span><span class="scilabdefault">,</span> <span class="scilabnumber">2</span><span class="scilabdefault">,</span> <span class="scilabnumber">2</span><span class="scilabdefault">,</span> <span class="scilabnumber">2</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">intcon</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">2</span> <span class="scilabnumber">3</span> <span class="scilabnumber">4</span><span class="scilabopenclose">]</span>
+<span class="scilabcomment">//Options</span>
+<span class="scilabid">options</span><span class="scilaboperator">=</span><a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">MaxIter</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span><span class="scilabopenclose">[</span><span class="scilabnumber">1500</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span><span class="scilabstring">&#0034;</span><span class="scilabstring">CpuTime</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabopenclose">[</span><span class="scilabnumber">100</span><span class="scilabopenclose">]</span><span class="scilabopenclose">)</span>
+<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">fval</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span><span class="scilabid">intfminbnd</span><span class="scilabopenclose">(</span><span class="scilabfunctionid">f</span> <span class="scilabdefault">,</span><span class="scilabid">intcon</span><span class="scilabdefault">,</span> <span class="scilabid">x1</span><span class="scilabdefault">,</span> <span class="scilabid">x2</span><span class="scilabdefault">,</span> <span class="scilabid">options</span><span class="scilabopenclose">)</span>
+<span class="scilabcomment">// Press ENTER to continue</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+
+<div class="refsection"><h3 class="title">Example</h3>
+ <p class="para">Unbounded Problems: Find x in R^2 such that it minimizes:</p>
+ <p class="para"><span><img src='./_LaTeX_intfminbnd.xml_7.png' style='position:relative;top:12px;width:237px;height:148px'/></span></p>
+<p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">///Example 3: Unbounded problem:</span>
+<span class="scilabcomment">//Objective function to be minimised</span>
+<span class="scilabfkeyword">function</span> <span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span><span class="scilabfunctionid">f</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span><span class="scilaboperator">-</span><span class="scilabopenclose">(</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilaboperator">+</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabfkeyword">endfunction</span>
+<span class="scilabcomment">//Variable bounds</span>
+<span class="scilabid">x1</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabconstants">%inf</span> <span class="scilabdefault">,</span> <span class="scilaboperator">-</span><span class="scilabconstants">%inf</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">x2</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span> <span class="scilabconstants">%inf</span> <span class="scilabdefault">,</span> <span class="scilabconstants">%inf</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Options</span>
+<span class="scilabid">options</span><span class="scilaboperator">=</span><a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">MaxIter</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span><span class="scilabopenclose">[</span><span class="scilabnumber">1500</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span><span class="scilabstring">&#0034;</span><span class="scilabstring">CpuTime</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabopenclose">[</span><span class="scilabnumber">100</span><span class="scilabopenclose">]</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">intcon</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span> <span class="scilabnumber">2</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">fval</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span><span class="scilabid">intfminbnd</span><span class="scilabopenclose">(</span><span class="scilabfunctionid">f</span><span class="scilabdefault">,</span><span class="scilabid">intcon</span><span class="scilabdefault">,</span> <span class="scilabid">x1</span><span class="scilabdefault">,</span> <span class="scilabid">x2</span><span class="scilabdefault">,</span> <span class="scilabid">options</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Authors</h3>
+ <ul class="itemizedlist"><li class="member">Harpreet Singh</li></ul></div>
+ <br />
+
+ <div class="manualnavbar">
+ <table width="100%">
+ <tr><td colspan="3" class="next"><a href="http://bugzilla.scilab.org/enter_bug.cgi?product=Scilab%20software&component=Documentation%20pages" class="ulink">Report an issue</a></td></tr>
+<tr>
+ <td width="30%">
+ <span class="previous"><a href="fminunc.html">&lt;&lt; fminunc</a></span>
+
+ </td>
+ <td width="40%" class="center">
+ <span class="top"><a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a></span>
+
+ </td>
+ <td width="30%" class="next">
+ <span class="next"><a href="intfmincon.html">intfmincon &gt;&gt;</a></span>
+
+ </td>
+ </tr></table>
+ <hr />
+ </div>
+ </body>
+</html>
diff --git a/help/en_US/scilab_en_US_help/intfmincon.html b/help/en_US/scilab_en_US_help/intfmincon.html
new file mode 100644
index 0000000..8a19596
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/intfmincon.html
@@ -0,0 +1,339 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <title>intfmincon</title>
+ <style type="text/css" media="all">
+ @import url("scilab_code.css");
+ @import url("xml_code.css");
+ @import url("c_code.css");
+ @import url("style.css");
+ </style>
+ </head>
+ <body>
+ <div class="manualnavbar">
+ <table width="100%"><tr>
+ <td width="30%">
+ <span class="previous"><a href="intfminbnd.html">&lt;&lt; intfminbnd</a></span>
+
+ </td>
+ <td width="40%" class="center">
+ <span class="top"><a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a></span>
+
+ </td>
+ <td width="30%" class="next">
+ <span class="next"><a href="intfminimax.html">intfminimax &gt;&gt;</a></span>
+
+ </td>
+ </tr></table>
+ <hr />
+ </div>
+
+
+
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; intfmincon</span>
+
+ <br /><br />
+ <div class="refnamediv"><h1 class="refname">intfmincon</h1>
+ <p class="refpurpose">Solves a constrainted multi-variable mixed integer non linear programming problem</p></div>
+
+
+<div class="refsynopsisdiv"><h3 class="title">Calling Sequence</h3>
+ <div class="synopsis"><pre><span class="default">xopt</span><span class="default"> = </span><span class="functionid">intfmincon</span><span class="default">(</span><span class="default">f</span><span class="default">,</span><span class="default">x0</span><span class="default">,</span><span class="default">intcon</span><span class="default">,</span><span class="default">A</span><span class="default">,</span><span class="default">b</span><span class="default">)</span>
+<span class="default">xopt</span><span class="default"> = </span><span class="functionid">intfmincon</span><span class="default">(</span><span class="default">f</span><span class="default">,</span><span class="default">x0</span><span class="default">,</span><span class="default">intcon</span><span class="default">,</span><span class="default">A</span><span class="default">,</span><span class="default">b</span><span class="default">,</span><span class="default">Aeq</span><span class="default">,</span><span class="default">beq</span><span class="default">)</span>
+<span class="default">xopt</span><span class="default"> = </span><span class="functionid">intfmincon</span><span class="default">(</span><span class="default">f</span><span class="default">,</span><span class="default">x0</span><span class="default">,</span><span class="default">intcon</span><span class="default">,</span><span class="default">A</span><span class="default">,</span><span class="default">b</span><span class="default">,</span><span class="default">Aeq</span><span class="default">,</span><span class="default">beq</span><span class="default">,</span><span class="default">lb</span><span class="default">,</span><span class="default">ub</span><span class="default">)</span>
+<span class="default">xopt</span><span class="default"> = </span><span class="functionid">intfmincon</span><span class="default">(</span><span class="default">f</span><span class="default">,</span><span class="default">x0</span><span class="default">,</span><span class="default">intcon</span><span class="default">,</span><span class="default">A</span><span class="default">,</span><span class="default">b</span><span class="default">,</span><span class="default">Aeq</span><span class="default">,</span><span class="default">beq</span><span class="default">,</span><span class="default">lb</span><span class="default">,</span><span class="default">ub</span><span class="default">,</span><span class="default">nlc</span><span class="default">)</span>
+<span class="default">xopt</span><span class="default"> = </span><span class="functionid">intfmincon</span><span class="default">(</span><span class="default">f</span><span class="default">,</span><span class="default">x0</span><span class="default">,</span><span class="default">intcon</span><span class="default">,</span><span class="default">A</span><span class="default">,</span><span class="default">b</span><span class="default">,</span><span class="default">Aeq</span><span class="default">,</span><span class="default">beq</span><span class="default">,</span><span class="default">lb</span><span class="default">,</span><span class="default">ub</span><span class="default">,</span><span class="default">nlc</span><span class="default">,</span><span class="default">options</span><span class="default">)</span>
+<span class="default">[</span><span class="default">xopt</span><span class="default">,</span><span class="default">fopt</span><span class="default">] = </span><span class="functionid">intfmincon</span><span class="default">(.....)</span>
+<span class="default">[</span><span class="default">xopt</span><span class="default">,</span><span class="default">fopt</span><span class="default">,</span><span class="default">exitflag</span><span class="default">]= </span><span class="functionid">intfmincon</span><span class="default">(.....)</span>
+<span class="default">[</span><span class="default">xopt</span><span class="default">,</span><span class="default">fopt</span><span class="default">,</span><span class="default">exitflag</span><span class="default">,</span><span class="default">gradient</span><span class="default">]=</span><span class="functionid">intfmincon</span><span class="default">(.....)</span>
+<span class="default">[</span><span class="default">xopt</span><span class="default">,</span><span class="default">fopt</span><span class="default">,</span><span class="default">exitflag</span><span class="default">,</span><span class="default">gradient</span><span class="default">,</span><span class="default">hessian</span><span class="default">]=</span><span class="functionid">intfmincon</span><span class="default">(.....)</span></pre></div></div>
+
+<div class="refsection"><h3 class="title">Input Parameters</h3>
+ <dl><dt><span class="term">f :</span>
+ <dd><p class="para">A function, representing the objective function of the problem.</p></dd></dt>
+ <dt><span class="term">x0 :</span>
+ <dd><p class="para">A vector of doubles, containing the starting values of variables of size (1 X n) or (n X 1) where &#0039;n&#0039; is the number of variables.</p></dd></dt>
+ <dt><span class="term">intcon :</span>
+ <dd><p class="para">A vector of integers, representing the variables that are constrained to be integers.</p></dd></dt>
+ <dt><span class="term">A :</span>
+ <dd><p class="para">A matrix of doubles, containing the coefficients of linear inequality constraints of size (m X n) where &#0039;m&#0039; is the number of linear inequality constraints.</p></dd></dt>
+ <dt><span class="term">b :</span>
+ <dd><p class="para">A vector of doubles, related to &#0039;A&#0039; and represents the linear coefficients in the linear inequality constraints of size (m X 1).</p></dd></dt>
+ <dt><span class="term">Aeq :</span>
+ <dd><p class="para">A matrix of doubles, containing the coefficients of linear equality constraints of size (m1 X n) where &#0039;m1&#0039; is the number of linear equality constraints.</p></dd></dt>
+ <dt><span class="term">beq :</span>
+ <dd><p class="para">A vector of double, vector of doubles, related to &#0039;Aeq&#0039; and represents the linear coefficients in the equality constraints of size (m1 X 1).</p></dd></dt>
+ <dt><span class="term">lb :</span>
+ <dd><p class="para">A vector of doubles, containing the lower bounds of the variables of size (1 X n) or (n X 1) where &#0039;n&#0039; is the number of variables.</p></dd></dt>
+ <dt><span class="term">ub :</span>
+ <dd><p class="para">A vector of doubles, containing the upper bounds of the variables of size (1 X n) or (n X 1) where &#0039;n&#0039; is the number of variables.</p></dd></dt>
+ <dt><span class="term">nlc :</span>
+ <dd><p class="para">A function, representing the Non-linear Constraints functions(both Equality and Inequality) of the problem. It is declared in such a way that non-linear inequality constraints (c), and the non-linear equality constraints (ceq) are defined as separate single row vectors.</p></dd></dt>
+ <dt><span class="term">options :</span>
+ <dd><p class="para">A list, containing the option for user to specify. See below for details.</p></dd></dt></dl></div>
+<div class="refsection"><h3 class="title">Outputs</h3>
+ <dl><dt><span class="term">xopt :</span>
+ <dd><p class="para">A vector of doubles, containing the the computed solution of the optimization problem.</p></dd></dt>
+ <dt><span class="term">fopt :</span>
+ <dd><p class="para">A double, containing the value of the function at xopt.</p></dd></dt>
+ <dt><span class="term">exitflag :</span>
+ <dd><p class="para">An integer, containing the flag which denotes the reason for termination of algorithm. See below for details.</p></dd></dt>
+ <dt><span class="term">gradient :</span>
+ <dd><p class="para">a vector of doubles, containing the Objective&#0039;s gradient of the solution.</p></dd></dt>
+ <dt><span class="term">hessian :</span>
+ <dd><p class="para">a matrix of doubles, containing the Objective&#0039;s hessian of the solution.</p></dd></dt></dl></div>
+
+<div class="refsection"><h3 class="title">Description</h3>
+ <p class="para">Search the minimum of a mixed integer constrained optimization problem specified by :
+Find the minimum of f(x) such that</p>
+ <p class="para"><span><img src='./_LaTeX_intfmincon.xml_1.png' style='position:relative;top:74px;width:239px;height:156px'/></span></p>
+ <p class="para">intfmincon calls Bonmin, an optimization library written in C++, to solve the Constrained Optimization problem.</p>
+ <p class="para"><h3 class="title">Options</h3>
+The options allow the user to set various parameters of the Optimization problem. The syntax for the options is given by:</p>
+ <p class="para">options= list(&#0034;IntegerTolerance&#0034;, [---], &#0034;MaxNodes&#0034;,[---], &#0034;MaxIter&#0034;, [---], &#0034;AllowableGap&#0034;,[---] &#0034;CpuTime&#0034;, [---],&#0034;gradobj&#0034;, &#0034;off&#0034;, &#0034;hessian&#0034;, &#0034;off&#0034; );
+<ul class="itemizedlist"><li>IntegerTolerance : A Scalar, a number with that value of an integer is considered integer.</li>
+<li>MaxNodes : A Scalar, containing the maximum number of nodes that the solver should search.</li>
+<li>CpuTime : A scalar, specifying the maximum amount of CPU Time in seconds that the solver should take.</li>
+<li>AllowableGap : A scalar, that specifies the gap between the computed solution and the the objective value of the best known solution stop, at which the tree search can be stopped.</li>
+<li>MaxIter : A scalar, specifying the maximum number of iterations that the solver should take.</li>
+<li>gradobj : A string, to turn on or off the user supplied objective gradient.</li>
+<li>hessian : A scalar, to turn on or off the user supplied objective hessian.</li></ul>
+ The default values for the various items are given as:</p>
+ <p class="para">options = list(&#0039;integertolerance&#0039;,1d-06,&#0039;maxnodes&#0039;,2147483647,&#0039;cputime&#0039;,1d10,&#0039;allowablegap&#0039;,0,&#0039;maxiter&#0039;,2147483647,&#0039;gradobj&#0039;,&#0034;off&#0034;,&#0039;hessian&#0039;,&#0034;off&#0034;)</p>
+ <p class="para"></p>
+ <p class="para">The exitflag allows to know the status of the optimization which is given back by Ipopt.
+<ul class="itemizedlist"><li>0 : Optimal Solution Found</li>
+<li>1 : InFeasible Solution.</li>
+<li>2 : Objective Function is Continuous Unbounded.</li>
+<li>3 : Limit Exceeded.</li>
+<li>4 : User Interrupt.</li>
+<li>5 : MINLP Error.</li></ul></p>
+ <p class="para">For more details on exitflag, see the Bonmin documentation which can be found on http://www.coin-or.org/Bonmin</p>
+ <p class="para"></p></div>
+<p class="para">A few examples displaying the various functionalities of intfmincon have been provided below. You will find a series of problems and the appropriate code snippets to solve them.</p>
+<div class="refsection"><h3 class="title">Example</h3>
+ <p class="para">Here we solve a simple objective function, subjected to three linear inequality constraints.</p>
+ <p class="para">Find x in R^2 such that it minimizes:</p>
+ <p class="para"><span><img src='./_LaTeX_intfmincon.xml_2.png' style='position:relative;top:12px;width:230px;height:184px'/></span></p>
+ <p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 1:</span>
+<span class="scilabcomment">//Objective function to be minimised</span>
+<span class="scilabfkeyword">function</span> <span class="scilabopenclose">[</span><span class="scilabinputoutputargs">y</span><span class="scilabdefault">, </span><span class="scilabinputoutputargs">dy</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span><span class="scilabfunctionid">f</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span><span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">/</span><span class="scilabnumber">3</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">dy</span><span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilaboperator">/</span><span class="scilabnumber">3</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabfkeyword">endfunction</span>
+<span class="scilabcomment">//Starting point</span>
+<span class="scilabid">x0</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">0</span> <span class="scilabdefault">,</span> <span class="scilabnumber">0</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Integer constraints</span>
+<span class="scilabid">intcon</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Initializing the linear inequality constraints</span>
+<span class="scilabid">A</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span> <span class="scilabdefault">;</span> <span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilaboperator">/</span><span class="scilabnumber">4</span> <span class="scilabdefault">;</span> <span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span> <span class="scilabdefault">;</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">2</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilabnumber">2</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Calling Bonmin</span>
+<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">fval</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">grad</span><span class="scilabdefault">,</span><span class="scilabid">hessian</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span><span class="scilabid">intfmincon</span><span class="scilabopenclose">(</span><span class="scilabfunctionid">f</span><span class="scilabdefault">,</span> <span class="scilabid">x0</span><span class="scilabdefault">,</span><span class="scilabid">intcon</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabopenclose">)</span>
+<span class="scilabcomment">// Press ENTER to continue</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Example</h3>
+ <p class="para">Here we build up on the previous example by adding linear equality constraints.
+We add the following constraints to the problem specified above:</p>
+ <p class="para"><span><img src='./_LaTeX_intfmincon.xml_3.png' style='position:relative;top:17px;width:134px;height:42px'/></span></p>
+ <p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 2:</span>
+<span class="scilabcomment">//Objective function to be minimised</span>
+<span class="scilabfkeyword">function</span> <span class="scilabopenclose">[</span><span class="scilabinputoutputargs">y</span><span class="scilabdefault">, </span><span class="scilabinputoutputargs">dy</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span><span class="scilabfunctionid">f</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span><span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">/</span><span class="scilabnumber">3</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">dy</span><span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilaboperator">/</span><span class="scilabnumber">3</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabfkeyword">endfunction</span>
+<span class="scilabcomment">//Starting point</span>
+<span class="scilabid">x0</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">0</span> <span class="scilabdefault">,</span> <span class="scilabnumber">0</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Integer constraints</span>
+<span class="scilabid">intcon</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Initializing the linear inequality constraints</span>
+<span class="scilabid">A</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span> <span class="scilabdefault">;</span> <span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilaboperator">/</span><span class="scilabnumber">4</span> <span class="scilabdefault">;</span> <span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span> <span class="scilabdefault">;</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">2</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilabnumber">2</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Linear equality constraints</span>
+<span class="scilabid">Aeq</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">beq</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">2</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Calling Bonmin</span>
+<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">fval</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">grad</span><span class="scilabdefault">,</span><span class="scilabid">hessian</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span><span class="scilabid">intfmincon</span><span class="scilabopenclose">(</span><span class="scilabfunctionid">f</span><span class="scilabdefault">,</span> <span class="scilabid">x0</span><span class="scilabdefault">,</span><span class="scilabid">intcon</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabid">Aeq</span><span class="scilabdefault">,</span><span class="scilabid">beq</span><span class="scilabopenclose">)</span>
+<span class="scilabcomment">// Press ENTER to continue</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Example</h3>
+ <p class="para">In this example, we proceed to add the upper and lower bounds to the objective function.</p>
+ <p class="para">Find x in R^2 such that it minimizes:</p>
+ <p class="para"><span><img src='./_LaTeX_intfmincon.xml_4.png' style='position:relative;top:17px;width:145px;height:42px'/></span></p>
+ <p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 3:</span>
+<span class="scilabcomment">//Objective function to be minimised</span>
+<span class="scilabfkeyword">function</span> <span class="scilabopenclose">[</span><span class="scilabinputoutputargs">y</span><span class="scilabdefault">, </span><span class="scilabinputoutputargs">dy</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span><span class="scilabfunctionid">f</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span><span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">/</span><span class="scilabnumber">3</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">dy</span><span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilaboperator">/</span><span class="scilabnumber">3</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabfkeyword">endfunction</span>
+<span class="scilabcomment">//Starting point</span>
+<span class="scilabid">x0</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">0</span> <span class="scilabdefault">,</span> <span class="scilabnumber">0</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Integer constraints</span>
+<span class="scilabid">intcon</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Initializing the linear inequality constraints</span>
+<span class="scilabid">A</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span> <span class="scilabdefault">;</span> <span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilaboperator">/</span><span class="scilabnumber">4</span> <span class="scilabdefault">;</span> <span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span> <span class="scilabdefault">;</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">2</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilabnumber">2</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Linear equality constraints</span>
+<span class="scilabid">Aeq</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">beq</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">2</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Adding the variable bounds </span>
+<span class="scilabid">lb</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span> <span class="scilaboperator">-</span><span class="scilabconstants">%inf</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">ub</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabconstants">%inf</span><span class="scilabdefault">,</span> <span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Calling Bonmin</span>
+<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">fval</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">grad</span><span class="scilabdefault">,</span><span class="scilabid">hessian</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span><span class="scilabid">intfmincon</span><span class="scilabopenclose">(</span><span class="scilabfunctionid">f</span><span class="scilabdefault">,</span> <span class="scilabid">x0</span><span class="scilabdefault">,</span><span class="scilabid">intcon</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabid">Aeq</span><span class="scilabdefault">,</span><span class="scilabid">beq</span><span class="scilabdefault">,</span><span class="scilabid">lb</span><span class="scilabdefault">,</span><span class="scilabid">ub</span><span class="scilabopenclose">)</span>
+<span class="scilabcomment">// Press ENTER to continue</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Example</h3>
+ <p class="para">Finally, we add the non-linear constraints to the problem. Note that there is a notable difference in the way this is done as compared to defining the linear constraints.</p>
+ <p class="para"><span><img src='./_LaTeX_intfmincon.xml_5.png' style='position:relative;top:12px;width:240px;height:156px'/></span></p>
+ <p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 4:</span>
+<span class="scilabcomment">//Objective function to be minimised</span>
+<span class="scilabfkeyword">function</span> <span class="scilabopenclose">[</span><span class="scilabinputoutputargs">y</span><span class="scilabdefault">, </span><span class="scilabinputoutputargs">dy</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span><span class="scilabfunctionid">f</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">+</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">3</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">dy</span><span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilabdefault">,</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">+</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">3</span><span class="scilabopenclose">)</span><span class="scilabdefault">,</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabfkeyword">endfunction</span>
+<span class="scilabcomment">//Starting point, linear constraints and variable bounds</span>
+<span class="scilabid">x0</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">0.1</span> <span class="scilabdefault">,</span> <span class="scilabnumber">0.1</span> <span class="scilabdefault">,</span> <span class="scilabnumber">0.1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">intcon</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">2</span><span class="scilabopenclose">]</span>
+<span class="scilabid">A</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">Aeq</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">beq</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">lb</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">ub</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Nonlinear constraints</span>
+<span class="scilabfkeyword">function</span> <span class="scilabopenclose">[</span><span class="scilabinputoutputargs">c</span><span class="scilabdefault">, </span><span class="scilabinputoutputargs">ceq</span><span class="scilabdefault">, </span><span class="scilabinputoutputargs">cg</span><span class="scilabdefault">, </span><span class="scilabinputoutputargs">cgeq</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span><span class="scilabfunctionid">nlc</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">c</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">-</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">+</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">3</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">-</span> <span class="scilabnumber">2</span> <span class="scilabdefault">,</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">+</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">+</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">3</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">-</span> <span class="scilabnumber">10</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">ceq</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">cg</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">2</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilabdefault">,</span> <span class="scilaboperator">-</span><span class="scilabnumber">2</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span> <span class="scilabdefault">,</span> <span class="scilabnumber">2</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">3</span><span class="scilabopenclose">)</span> <span class="scilabdefault">;</span> <span class="scilabnumber">2</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilabdefault">,</span> <span class="scilabnumber">2</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span> <span class="scilabdefault">,</span> <span class="scilabnumber">2</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">3</span><span class="scilabopenclose">)</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">cgeq</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabfkeyword">endfunction</span>
+<span class="scilabcomment">//Options</span>
+<span class="scilabid">options</span><span class="scilaboperator">=</span><a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">MaxIter</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1500</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span> <span class="scilabstring">&#0034;</span><span class="scilabstring">CpuTime</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabopenclose">[</span><span class="scilabnumber">500</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span> <span class="scilabstring">&#0034;</span><span class="scilabstring">GradObj</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabstring">&#0034;</span><span class="scilabstring">on</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span><span class="scilabstring">&#0034;</span><span class="scilabstring">GradCon</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabstring">&#0034;</span><span class="scilabstring">on</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Calling Ipopt</span>
+<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">fval</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span><span class="scilabid">intfmincon</span><span class="scilabopenclose">(</span><span class="scilabfunctionid">f</span><span class="scilabdefault">,</span> <span class="scilabid">x0</span><span class="scilabdefault">,</span><span class="scilabid">intcon</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabid">Aeq</span><span class="scilabdefault">,</span><span class="scilabid">beq</span><span class="scilabdefault">,</span><span class="scilabid">lb</span><span class="scilabdefault">,</span><span class="scilabid">ub</span><span class="scilabdefault">,</span><span class="scilabfunctionid">nlc</span><span class="scilabdefault">,</span><span class="scilabid">options</span><span class="scilabopenclose">)</span>
+<span class="scilabcomment">// Press ENTER to continue</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Example</h3>
+ <p class="para">We can further enhance the functionality of intfmincon by setting input options. We can pre-define the gradient of the objective function and/or the hessian of the lagrange function and thereby improve the speed of computation. This is elaborated on in example 5. We take the following problem and add simple non-linear constraints, specify the gradients and the hessian of the Lagrange Function. We also set solver parameters using the options.</p>
+ <p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 5:</span>
+<span class="scilabcomment">//Objective function to be minimised</span>
+<span class="scilabfkeyword">function</span> <span class="scilabopenclose">[</span><span class="scilabinputoutputargs">y</span><span class="scilabdefault">, </span><span class="scilabinputoutputargs">dy</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span><span class="scilabfunctionid">f</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">+</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">3</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">dy</span><span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilabdefault">,</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">+</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">3</span><span class="scilabopenclose">)</span><span class="scilabdefault">,</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabfkeyword">endfunction</span>
+<span class="scilabcomment">//Starting point, linear constraints and variable bounds</span>
+<span class="scilabid">x0</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">0.1</span> <span class="scilabdefault">,</span> <span class="scilabnumber">0.1</span> <span class="scilabdefault">,</span> <span class="scilabnumber">0.1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">intcon</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">2</span><span class="scilabopenclose">]</span>
+<span class="scilabid">A</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">Aeq</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">beq</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">lb</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">ub</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Nonlinear constraints</span>
+<span class="scilabfkeyword">function</span> <span class="scilabopenclose">[</span><span class="scilabinputoutputargs">c</span><span class="scilabdefault">, </span><span class="scilabinputoutputargs">ceq</span><span class="scilabdefault">, </span><span class="scilabinputoutputargs">cg</span><span class="scilabdefault">, </span><span class="scilabinputoutputargs">cgeq</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span><span class="scilabfunctionid">nlc</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">c</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">-</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">+</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">3</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">-</span> <span class="scilabnumber">2</span> <span class="scilabdefault">,</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">+</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">+</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">3</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">-</span> <span class="scilabnumber">10</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">ceq</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">cg</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">2</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilabdefault">,</span> <span class="scilaboperator">-</span><span class="scilabnumber">2</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span> <span class="scilabdefault">,</span> <span class="scilabnumber">2</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">3</span><span class="scilabopenclose">)</span> <span class="scilabdefault">;</span> <span class="scilabnumber">2</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilabdefault">,</span> <span class="scilabnumber">2</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span> <span class="scilabdefault">,</span> <span class="scilabnumber">2</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">3</span><span class="scilabopenclose">)</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">cgeq</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabfkeyword">endfunction</span>
+<span class="scilabcomment">//Options</span>
+<span class="scilabid">options</span><span class="scilaboperator">=</span><a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">MaxIter</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1500</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span> <span class="scilabstring">&#0034;</span><span class="scilabstring">CpuTime</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabopenclose">[</span><span class="scilabnumber">500</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span> <span class="scilabstring">&#0034;</span><span class="scilabstring">GradObj</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabstring">&#0034;</span><span class="scilabstring">on</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span><span class="scilabstring">&#0034;</span><span class="scilabstring">GradCon</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabstring">&#0034;</span><span class="scilabstring">on</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Calling Ipopt</span>
+<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">fval</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span><span class="scilabid">intfmincon</span><span class="scilabopenclose">(</span><span class="scilabfunctionid">f</span><span class="scilabdefault">,</span> <span class="scilabid">x0</span><span class="scilabdefault">,</span><span class="scilabid">intcon</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabid">Aeq</span><span class="scilabdefault">,</span><span class="scilabid">beq</span><span class="scilabdefault">,</span><span class="scilabid">lb</span><span class="scilabdefault">,</span><span class="scilabid">ub</span><span class="scilabdefault">,</span><span class="scilabfunctionid">nlc</span><span class="scilabdefault">,</span><span class="scilabid">options</span><span class="scilabopenclose">)</span>
+<span class="scilabcomment">// Press ENTER to continue</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Example</h3>
+ <p class="para">Infeasible Problems: Find x in R^3 such that it minimizes:</p>
+ <p class="para"><span><img src='./_LaTeX_intfmincon.xml_6.png' style='position:relative;top:12px;width:218px;height:290px'/></span></p>
+ <p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 6:</span>
+<span class="scilabcomment">//Objective function to be minimised</span>
+<span class="scilabfkeyword">function</span> <span class="scilabopenclose">[</span><span class="scilabinputoutputargs">y</span><span class="scilabdefault">, </span><span class="scilabinputoutputargs">dy</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span><span class="scilabfunctionid">f</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">+</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">3</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">dy</span><span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilabdefault">,</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">+</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">3</span><span class="scilabopenclose">)</span><span class="scilabdefault">,</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabfkeyword">endfunction</span>
+<span class="scilabcomment">//Starting point, linear constraints and variable bounds</span>
+<span class="scilabid">x0</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">intcon</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">2</span><span class="scilabopenclose">]</span>
+<span class="scilabid">A</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">Aeq</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">beq</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">lb</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">0</span> <span class="scilabnumber">0.2</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabconstants">%inf</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">ub</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">0.6</span> <span class="scilabconstants">%inf</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Nonlinear constraints</span>
+<span class="scilabfkeyword">function</span> <span class="scilabopenclose">[</span><span class="scilabinputoutputargs">c</span><span class="scilabdefault">, </span><span class="scilabinputoutputargs">ceq</span><span class="scilabdefault">, </span><span class="scilabinputoutputargs">cg</span><span class="scilabdefault">, </span><span class="scilabinputoutputargs">cgeq</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span><span class="scilabfunctionid">nlc</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">c</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilaboperator">+</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">3</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">ceq</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">3</span><span class="scilaboperator">-</span><span class="scilabnumber">0.5</span><span class="scilabdefault">,</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilaboperator">+</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">3</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilaboperator">-</span><span class="scilabnumber">0.75</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">cg</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">2</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">;</span><span class="scilabnumber">2</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilabdefault">,</span><span class="scilabnumber">2</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">;</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">2</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">3</span><span class="scilabopenclose">)</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">cgeq</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">3</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">;</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">2</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilabdefault">,</span><span class="scilabnumber">2</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">3</span><span class="scilabopenclose">)</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabfkeyword">endfunction</span>
+<span class="scilabcomment">//Options</span>
+<span class="scilabid">options</span><span class="scilaboperator">=</span><a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">MaxIter</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1500</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span> <span class="scilabstring">&#0034;</span><span class="scilabstring">CpuTime</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabopenclose">[</span><span class="scilabnumber">500</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span> <span class="scilabstring">&#0034;</span><span class="scilabstring">GradObj</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabstring">&#0034;</span><span class="scilabstring">on</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span><span class="scilabstring">&#0034;</span><span class="scilabstring">GradCon</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabstring">&#0034;</span><span class="scilabstring">on</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Calling Bonmin</span>
+<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">fval</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">grad</span><span class="scilabdefault">,</span><span class="scilabid">hessian</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span><span class="scilabid">intfmincon</span><span class="scilabopenclose">(</span><span class="scilabfunctionid">f</span><span class="scilabdefault">,</span> <span class="scilabid">x0</span><span class="scilabdefault">,</span><span class="scilabid">intcon</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabid">Aeq</span><span class="scilabdefault">,</span><span class="scilabid">beq</span><span class="scilabdefault">,</span><span class="scilabid">lb</span><span class="scilabdefault">,</span><span class="scilabid">ub</span><span class="scilabdefault">,</span><span class="scilabfunctionid">nlc</span><span class="scilabdefault">,</span><span class="scilabid">options</span><span class="scilabopenclose">)</span>
+<span class="scilabcomment">// Press ENTER to continue</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Example</h3>
+<p class="para">Unbounded Problems: Find x in R^3 such that it minimizes:</p>
+ <p class="para"><span><img src='./_LaTeX_intfmincon.xml_7.png' style='position:relative;top:12px;width:213px;height:165px'/></span></p>
+ <p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 7:</span>
+<span class="scilabcomment">//The below problem is an unbounded problem:</span>
+<span class="scilabcomment">//Find x in R^3 such that it minimizes:</span>
+<span class="scilabcomment">//f(x)= -(x1^2 + x2^2 + x3^2)</span>
+<span class="scilabcomment">//x0=[0.1 , 0.1 , 0.1]</span>
+<span class="scilabcomment">// x1 </span><span class="scilabcomment">&#0060;</span><span class="scilabcomment">= 0</span>
+<span class="scilabcomment">// x2 </span><span class="scilabcomment">&#0060;</span><span class="scilabcomment">= 0</span>
+<span class="scilabcomment">// x3 </span><span class="scilabcomment">&#0060;</span><span class="scilabcomment">= 0</span>
+<span class="scilabcomment">//Objective function to be minimised</span>
+<span class="scilabfkeyword">function</span> <span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span><span class="scilabfunctionid">f</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span><span class="scilaboperator">-</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilaboperator">+</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilaboperator">+</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">3</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabfkeyword">endfunction</span>
+<span class="scilabcomment">//Starting point, linear constraints and variable bounds</span>
+<span class="scilabid">x0</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">0.1</span> <span class="scilabdefault">,</span> <span class="scilabnumber">0.1</span> <span class="scilabdefault">,</span> <span class="scilabnumber">0.1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">intcon</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">3</span><span class="scilabopenclose">]</span>
+<span class="scilabid">A</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">Aeq</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">beq</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">lb</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">ub</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Options</span>
+<span class="scilabid">options</span><span class="scilaboperator">=</span><a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">MaxIter</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1500</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span> <span class="scilabstring">&#0034;</span><span class="scilabstring">CpuTime</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabopenclose">[</span><span class="scilabnumber">500</span><span class="scilabopenclose">]</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Calling Bonmin</span>
+<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">fval</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">grad</span><span class="scilabdefault">,</span><span class="scilabid">hessian</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span><span class="scilabid">intfmincon</span><span class="scilabopenclose">(</span><span class="scilabfunctionid">f</span><span class="scilabdefault">,</span> <span class="scilabid">x0</span><span class="scilabdefault">,</span><span class="scilabid">intcon</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabid">Aeq</span><span class="scilabdefault">,</span><span class="scilabid">beq</span><span class="scilabdefault">,</span><span class="scilabid">lb</span><span class="scilabdefault">,</span><span class="scilabid">ub</span><span class="scilabdefault">,</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span><span class="scilabid">options</span><span class="scilabopenclose">)</span>
+<span class="scilabcomment">// Press ENTER to continue</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+
+<div class="refsection"><h3 class="title">Authors</h3>
+ <ul class="itemizedlist"><li class="member">Harpreet Singh</li></ul></div>
+ <br />
+
+ <div class="manualnavbar">
+ <table width="100%">
+ <tr><td colspan="3" class="next"><a href="http://bugzilla.scilab.org/enter_bug.cgi?product=Scilab%20software&component=Documentation%20pages" class="ulink">Report an issue</a></td></tr>
+<tr>
+ <td width="30%">
+ <span class="previous"><a href="intfminbnd.html">&lt;&lt; intfminbnd</a></span>
+
+ </td>
+ <td width="40%" class="center">
+ <span class="top"><a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a></span>
+
+ </td>
+ <td width="30%" class="next">
+ <span class="next"><a href="intfminimax.html">intfminimax &gt;&gt;</a></span>
+
+ </td>
+ </tr></table>
+ <hr />
+ </div>
+ </body>
+</html>
diff --git a/help/en_US/scilab_en_US_help/intfminimax.html b/help/en_US/scilab_en_US_help/intfminimax.html
new file mode 100644
index 0000000..8c3e809
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/intfminimax.html
@@ -0,0 +1,364 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <title>intfminimax</title>
+ <style type="text/css" media="all">
+ @import url("scilab_code.css");
+ @import url("xml_code.css");
+ @import url("c_code.css");
+ @import url("style.css");
+ </style>
+ </head>
+ <body>
+ <div class="manualnavbar">
+ <table width="100%"><tr>
+ <td width="30%">
+ <span class="previous"><a href="intfmincon.html">&lt;&lt; intfmincon</a></span>
+
+ </td>
+ <td width="40%" class="center">
+ <span class="top"><a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a></span>
+
+ </td>
+ <td width="30%" class="next">
+ <span class="next"><a href="intfminunc.html">intfminunc &gt;&gt;</a></span>
+
+ </td>
+ </tr></table>
+ <hr />
+ </div>
+
+
+
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; intfminimax</span>
+
+ <br /><br />
+ <div class="refnamediv"><h1 class="refname">intfminimax</h1>
+ <p class="refpurpose">Solves minimax constraint problem</p></div>
+
+
+<div class="refsynopsisdiv"><h3 class="title">Calling Sequence</h3>
+ <div class="synopsis"><pre><span class="default">xopt</span><span class="default"> = </span><span class="functionid">intfminimax</span><span class="default">(</span><span class="default">fun</span><span class="default">,</span><span class="default">x0</span><span class="default">,</span><span class="default">intcon</span><span class="default">)</span>
+<span class="default">xopt</span><span class="default"> = </span><span class="functionid">intfminimax</span><span class="default">(</span><span class="default">fun</span><span class="default">,</span><span class="default">x0</span><span class="default">,</span><span class="default">intcon</span><span class="default">,</span><span class="default">A</span><span class="default">,</span><span class="default">b</span><span class="default">)</span>
+<span class="default">xopt</span><span class="default"> = </span><span class="functionid">intfminimax</span><span class="default">(</span><span class="default">fun</span><span class="default">,</span><span class="default">x0</span><span class="default">,</span><span class="default">intcon</span><span class="default">,</span><span class="default">A</span><span class="default">,</span><span class="default">b</span><span class="default">,</span><span class="default">Aeq</span><span class="default">,</span><span class="default">beq</span><span class="default">)</span>
+<span class="default">xopt</span><span class="default"> = </span><span class="functionid">intfminimax</span><span class="default">(</span><span class="default">fun</span><span class="default">,</span><span class="default">x0</span><span class="default">,</span><span class="default">intcon</span><span class="default">,</span><span class="default">A</span><span class="default">,</span><span class="default">b</span><span class="default">,</span><span class="default">Aeq</span><span class="default">,</span><span class="default">beq</span><span class="default">,</span><span class="default">lb</span><span class="default">,</span><span class="default">ub</span><span class="default">)</span>
+<span class="default">xopt</span><span class="default"> = </span><span class="functionid">intfminimax</span><span class="default">(</span><span class="default">fun</span><span class="default">,</span><span class="default">x0</span><span class="default">,</span><span class="default">intcon</span><span class="default">,</span><span class="default">A</span><span class="default">,</span><span class="default">b</span><span class="default">,</span><span class="default">Aeq</span><span class="default">,</span><span class="default">beq</span><span class="default">,</span><span class="default">lb</span><span class="default">,</span><span class="default">ub</span><span class="default">,</span><span class="default">nonlinfun</span><span class="default">)</span>
+<span class="default">xopt</span><span class="default"> = </span><span class="functionid">intfminimax</span><span class="default">(</span><span class="default">fun</span><span class="default">,</span><span class="default">x0</span><span class="default">,</span><span class="default">intcon</span><span class="default">,</span><span class="default">A</span><span class="default">,</span><span class="default">b</span><span class="default">,</span><span class="default">Aeq</span><span class="default">,</span><span class="default">beq</span><span class="default">,</span><span class="default">lb</span><span class="default">,</span><span class="default">ub</span><span class="default">,</span><span class="default">nonlinfun</span><span class="default">,</span><span class="default">options</span><span class="default">)</span>
+<span class="default">[</span><span class="default">xopt</span><span class="default">, </span><span class="default">fval</span><span class="default">] = </span><span class="functionid">intfminimax</span><span class="default">(.....)</span>
+<span class="default">[</span><span class="default">xopt</span><span class="default">, </span><span class="default">fval</span><span class="default">, </span><span class="default">maxfval</span><span class="default">]= </span><span class="functionid">intfminimax</span><span class="default">(.....)</span>
+<span class="default">[</span><span class="default">xopt</span><span class="default">, </span><span class="default">fval</span><span class="default">, </span><span class="default">maxfval</span><span class="default">, </span><span class="default">exitflag</span><span class="default">]= </span><span class="functionid">intfminimax</span><span class="default">(.....)</span></pre></div></div>
+
+<div class="refsection"><h3 class="title">Input Parameters</h3>
+ <dl><dt><span class="term">fun:</span>
+ <dd><p class="para">The function to be minimized. fun is a function that has a vector x as an input argument, and contains the objective functions evaluated at x.</p></dd></dt>
+ <dt><span class="term">x0 :</span>
+ <dd><p class="para">A vector of doubles, containing the starting values of variables of size (1 X n) or (n X 1) where &#0039;n&#0039; is the number of Variables.</p></dd></dt>
+ <dt><span class="term">A :</span>
+ <dd><p class="para">A matrix of doubles, containing the coefficients of linear inequality constraints of size (m X n) where &#0039;m&#0039; is the number of linear inequality constraints.</p></dd></dt>
+ <dt><span class="term">b :</span>
+ <dd><p class="para">A vector of doubles, related to &#0039;A&#0039; and represents the linear coefficients in the linear inequality constraints of size (m X 1).</p></dd></dt>
+ <dt><span class="term">Aeq :</span>
+ <dd><p class="para">A matrix of doubles, containing the coefficients of linear equality constraints of size (m1 X n) where &#0039;m1&#0039; is the number of linear equality constraints.</p></dd></dt>
+ <dt><span class="term">beq :</span>
+ <dd><p class="para">A vector of double, vector of doubles, related to &#0039;Aeq&#0039; and represents the linear coefficients in the equality constraints of size (m1 X 1).</p></dd></dt>
+ <dt><span class="term">intcon :</span>
+ <dd><p class="para">A vector of integers, representing the variables that are constrained to be integers.</p></dd></dt>
+ <dt><span class="term">lb :</span>
+ <dd><p class="para">A vector of doubles, containing the lower bounds of the variables of size (1 X n) or (n X 1) where &#0039;n&#0039; is the number of variables.</p></dd></dt>
+ <dt><span class="term">ub :</span>
+ <dd><p class="para">A vector of doubles, containing the upper bounds of the variables of size (1 X n) or (n X 1) where &#0039;n&#0039; is the number of variables.</p></dd></dt>
+ <dt><span class="term">nonlinfun:</span>
+ <dd><p class="para">A function, representing the Non-linear Constraints functions(both Equality and Inequality) of the problem. It is declared in such a way that non-linear inequality constraints (c), and the non-linear equality constraints (ceq) are defined as separate single row vectors.</p></dd></dt>
+ <dt><span class="term">options :</span>
+ <dd><p class="para">A list, containing the option for user to specify. See below for details.</p></dd></dt></dl></div>
+<div class="refsection"><h3 class="title">Outputs</h3>
+ <dl><dt><span class="term">xopt :</span>
+ <dd><p class="para">A vector of doubles, containing the computed solution of the optimization problem.</p></dd></dt>
+ <dt><span class="term">fopt :</span>
+ <dd><p class="para">A vector of doubles, containing the values of the objective functions at the end of the optimization problem.</p></dd></dt>
+ <dt><span class="term">maxfval:</span>
+ <dd><p class="para">A double, representing the maximum value in the vector fval.</p></dd></dt>
+ <dt><span class="term">exitflag :</span>
+ <dd><p class="para">An integer, containing the flag which denotes the reason for termination of algorithm. See below for details.</p></dd></dt>
+ <dt><span class="term">output :</span>
+ <dd><p class="para">A structure, containing the information about the optimization. See below for details.</p></dd></dt>
+ <dt><span class="term">lambda :</span>
+ <dd><p class="para">A structure, containing the Lagrange multipliers of lower bound, upper bound and constraints at the optimized point. See below for details.</p></dd></dt></dl></div>
+
+<div class="refsection"><h3 class="title">Description</h3>
+ <p class="para">intfminimax minimizes the worst-case (largest) value of a set of multivariable functions, starting at an initial estimate. This is generally referred to as the minimax problem.</p>
+ <p class="para"><span><img src='./_LaTeX_intfminimax.xml_1.png' style='position:relative;top:52px;width:399px;height:112px'/></span></p>
+ <p class="para">max-min problems can also be solved with intfminimax, using the identity</p>
+ <p class="para"><span><img src='./_LaTeX_intfminimax.xml_2.png' style='position:relative;top:6px;width:281px;height:20px'/></span></p>
+ <p class="para">Currently, intfminimax calls intfmincon, which uses the bonmin algorithm, an optimization library in C++.</p>
+
+<h3 class="title">Options</h3>
+ <p class="para">The options allow the user to set various parameters of the Optimization problem. The syntax for the options is given by:</p>
+ <p class="para">options= list(&#0034;IntegerTolerance&#0034;, [---], &#0034;MaxNodes&#0034;,[---], &#0034;MaxIter&#0034;, [---], &#0034;AllowableGap&#0034;,[---] &#0034;CpuTime&#0034;, [---],&#0034;gradobj&#0034;, &#0034;off&#0034;, &#0034;hessian&#0034;, &#0034;off&#0034; );
+<ul class="itemizedlist"><li>IntegerTolerance : A Scalar, a number with that value of an integer is considered integer.</li>
+<li>MaxNodes : A Scalar, containing the maximum number of nodes that the solver should search.</li>
+<li>CpuTime : A scalar, specifying the maximum amount of CPU Time in seconds that the solver should take.</li>
+<li>AllowableGap : A scalar, that specifies the gap between the computed solution and the the objective value of the best known solution stop, at which the tree search can be stopped.</li>
+<li>MaxIter : A scalar, specifying the maximum number of iterations that the solver should take.</li>
+<li>gradobj : A string, to turn on or off the user supplied objective gradient.</li>
+<li>hessian : A scalar, to turn on or off the user supplied objective hessian.</li></ul>
+ The default values for the various items are given as:</p>
+ <p class="para">options = list(&#0039;integertolerance&#0039;,1d-06,&#0039;maxnodes&#0039;,2147483647,&#0039;cputime&#0039;,1d10,&#0039;allowablegap&#0039;,0,&#0039;maxiter&#0039;,2147483647,&#0039;gradobj&#0039;,&#0034;off&#0034;,&#0039;hessian&#0039;,&#0034;off&#0034;)</p>
+ <p class="para">The objective function must have header :
+<div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabid">F</span> <span class="scilaboperator">=</span> <span class="scilabid">fun</span><span class="scilabopenclose">(</span><span class="scilabid">x</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div>
+where x is a n x 1 matrix of doubles and F is a m x 1 matrix of doubles where m is the total number of objective functions inside F.
+On input, the variable x contains the current point and, on output, the variable F must contain the objective function values.</p>
+ <p class="para">By default, the gradient options for intfminimax are turned off and and fmincon does the gradient opproximation of minmaxObjfun. In case the GradObj option is off and GradCon option is on, intfminimax approximates minmaxObjfun gradient using the numderivative toolbox.</p>
+ <p class="para">If we can provide exact gradients, we should do so since it improves the convergence speed of the optimization algorithm.</p>
+ <p class="para"></p>
+ <p class="para">The exitflag allows to know the status of the optimization which is given back by Bonmin.
+<ul class="itemizedlist"><li>0 : Optimal Solution Found</li>
+<li>1 : InFeasible Solution.</li>
+<li>2 : Objective Function is Continuous Unbounded.</li>
+<li>3 : Limit Exceeded.</li>
+<li>4 : User Interrupt.</li>
+<li>5 : MINLP Error.</li></ul></p>
+ <p class="para">For more details on exitflag, see the Bonmin documentation which can be found on http://www.coin-or.org/Bonmin</p>
+ <p class="para"></p></div>
+<p class="para">A few examples displaying the various functionalities of intfminimax have been provided below. You will find a series of problems and the appropriate code snippets to solve them.</p>
+<div class="refsection"><h3 class="title">Example</h3>
+ Here we solve a simple objective function, subjected to no constraints.
+<p class="para"><span><img src='./_LaTeX_intfminimax.xml_3.png' style='position:relative;top:12px;width:312px;height:204px'/></span></p>
+ <p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Example 1:</span>
+<span class="scilabcomment">//Objective function</span>
+<span class="scilabfkeyword">function</span> <span class="scilabinputoutputargs">f</span><span class="scilaboperator">=</span><span class="scilabfunctionid">myfun</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilabnumber">2</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">+</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">-</span> <span class="scilabnumber">48</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span> <span class="scilabnumber">40</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span> <span class="scilaboperator">+</span> <span class="scilabnumber">304</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">-</span> <span class="scilabnumber">3</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">3</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilaboperator">+</span> <span class="scilabnumber">3</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span><span class="scilabnumber">18</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">4</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">5</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilaboperator">+</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span> <span class="scilabnumber">8</span><span class="scilabdefault">;</span>
+<span class="scilabfkeyword">endfunction</span>
+<span class="scilabcomment">// The initial guess</span>
+<span class="scilabid">x0</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">0.1</span><span class="scilabdefault">,</span><span class="scilabnumber">0.1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">// The expected solution : only 4 digits are guaranteed</span>
+<span class="scilabid">xopt</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">4</span> <span class="scilabnumber">4</span><span class="scilabopenclose">]</span>
+<span class="scilabid">fopt</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">0</span> <span class="scilaboperator">-</span><span class="scilabnumber">64</span> <span class="scilaboperator">-</span><span class="scilabnumber">2</span> <span class="scilaboperator">-</span><span class="scilabnumber">8</span> <span class="scilabnumber">0</span><span class="scilabopenclose">]</span>
+<span class="scilabid">intcon</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span>
+<span class="scilabid">maxfopt</span> <span class="scilaboperator">=</span> <span class="scilabnumber">0</span>
+<span class="scilabcomment">// Run intfminimax</span>
+<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">fval</span><span class="scilabdefault">,</span><span class="scilabid">maxfval</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">intfminimax</span><span class="scilabopenclose">(</span><span class="scilabfunctionid">myfun</span><span class="scilabdefault">,</span> <span class="scilabid">x0</span><span class="scilabdefault">,</span><span class="scilabid">intcon</span><span class="scilabopenclose">)</span>
+<span class="scilabcomment">// Press ENTER to continue</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Example</h3>
+ We proceed to add simple linear inequality constraints.
+
+<p class="para"><span><img src='./_LaTeX_intfminimax.xml_4.png' style='position:relative;top:29px;width:225px;height:66px'/></span></p>
+ <p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 2:</span>
+<span class="scilabcomment">//Objective function</span>
+<span class="scilabfkeyword">function</span> <span class="scilabinputoutputargs">f</span><span class="scilaboperator">=</span><span class="scilabfunctionid">myfun</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilabnumber">2</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">+</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">-</span> <span class="scilabnumber">48</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span> <span class="scilabnumber">40</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span> <span class="scilaboperator">+</span> <span class="scilabnumber">304</span><span class="scilabdefault">;</span> <span class="scilabcomment">//Objectives</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">-</span> <span class="scilabnumber">3</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">3</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilaboperator">+</span> <span class="scilabnumber">3</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span><span class="scilabnumber">18</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">4</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">5</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilaboperator">+</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span> <span class="scilabnumber">8</span><span class="scilabdefault">;</span>
+<span class="scilabfkeyword">endfunction</span>
+<span class="scilabcomment">// The initial guess</span>
+<span class="scilabid">x0</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">0.1</span><span class="scilabdefault">,</span><span class="scilabnumber">0.1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Linear Inequality constraints</span>
+<span class="scilabid">A</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span> <span class="scilabdefault">;</span> <span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilaboperator">/</span><span class="scilabnumber">4</span> <span class="scilabdefault">;</span> <span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">2</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">////Integer constraints</span>
+<span class="scilabid">intcon</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">// Run intfminimax</span>
+<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">fval</span><span class="scilabdefault">,</span><span class="scilabid">maxfval</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">intfminimax</span><span class="scilabopenclose">(</span><span class="scilabfunctionid">myfun</span><span class="scilabdefault">,</span> <span class="scilabid">intcon</span><span class="scilabdefault">,</span><span class="scilabid">x0</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Example</h3>
+Here we build up on the previous example by adding linear equality constraints.
+We add the following constraints to the problem specified above:
+<p class="para"><span><img src='./_LaTeX_intfminimax.xml_5.png' style='position:relative;top:17px;width:134px;height:42px'/></span></p>
+ <p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 3:</span>
+<span class="scilabcomment">//Objective function</span>
+<span class="scilabfkeyword">function</span> <span class="scilabinputoutputargs">f</span><span class="scilaboperator">=</span><span class="scilabfunctionid">myfun</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilabnumber">2</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">+</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">-</span> <span class="scilabnumber">48</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span> <span class="scilabnumber">40</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span> <span class="scilaboperator">+</span> <span class="scilabnumber">304</span><span class="scilabdefault">;</span> <span class="scilabcomment">//Objectives</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">-</span> <span class="scilabnumber">3</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">3</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilaboperator">+</span> <span class="scilabnumber">3</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span><span class="scilabnumber">18</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">4</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">5</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilaboperator">+</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span> <span class="scilabnumber">8</span><span class="scilabdefault">;</span>
+<span class="scilabfkeyword">endfunction</span>
+<span class="scilabcomment">// The initial guess</span>
+<span class="scilabid">x0</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">0.1</span><span class="scilabdefault">,</span><span class="scilabnumber">0.1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Linear Inequality constraints</span>
+<span class="scilabid">A</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span> <span class="scilabdefault">;</span> <span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilaboperator">/</span><span class="scilabnumber">4</span> <span class="scilabdefault">;</span> <span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">2</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//We specify the linear equality constraints below.</span>
+<span class="scilabid">Aeq</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span> <span class="scilabnumber">2</span><span class="scilabdefault">,</span> <span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">beq</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilabnumber">2</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Integer constraints</span>
+<span class="scilabid">intcon</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">// Run intfminimax</span>
+<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">fval</span><span class="scilabdefault">,</span><span class="scilabid">maxfval</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">intfminimax</span><span class="scilabopenclose">(</span><span class="scilabfunctionid">myfun</span><span class="scilabdefault">,</span> <span class="scilabid">intcon</span><span class="scilabdefault">,</span><span class="scilabid">x0</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabid">Aeq</span><span class="scilabdefault">,</span><span class="scilabid">beq</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Example</h3>
+In this example, we proceed to add the upper and lower bounds to the objective function.
+<p class="para"><span><img src='./_LaTeX_intfminimax.xml_6.png' style='position:relative;top:17px;width:145px;height:42px'/></span></p>
+ <p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 4:</span>
+<span class="scilabcomment">//Objective function</span>
+<span class="scilabfkeyword">function</span> <span class="scilabinputoutputargs">f</span><span class="scilaboperator">=</span><span class="scilabfunctionid">myfun</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilabnumber">2</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">+</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">-</span> <span class="scilabnumber">48</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span> <span class="scilabnumber">40</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span> <span class="scilaboperator">+</span> <span class="scilabnumber">304</span><span class="scilabdefault">;</span> <span class="scilabcomment">//Objectives</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">-</span> <span class="scilabnumber">3</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">3</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilaboperator">+</span> <span class="scilabnumber">3</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span><span class="scilabnumber">18</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">4</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">5</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilaboperator">+</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span> <span class="scilabnumber">8</span><span class="scilabdefault">;</span>
+<span class="scilabfkeyword">endfunction</span>
+<span class="scilabcomment">// The initial guess</span>
+<span class="scilabid">x0</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">0.1</span><span class="scilabdefault">,</span><span class="scilabnumber">0.1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Linear Inequality constraints</span>
+<span class="scilabid">A</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span> <span class="scilabdefault">;</span> <span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilaboperator">/</span><span class="scilabnumber">4</span> <span class="scilabdefault">;</span> <span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">2</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//We specify the linear equality constraints below.</span>
+<span class="scilabid">Aeq</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span> <span class="scilabnumber">2</span><span class="scilabdefault">,</span> <span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">beq</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilabnumber">2</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//The upper and lower bounds for the objective function are defined in simple vectors as shown below.</span>
+<span class="scilabid">lb</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilaboperator">-</span><span class="scilabconstants">%inf</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">ub</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabconstants">%inf</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Integer constraints</span>
+<span class="scilabid">intcon</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">// Run intfminimax</span>
+<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">fval</span><span class="scilabdefault">,</span><span class="scilabid">maxfval</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">intfminimax</span><span class="scilabopenclose">(</span><span class="scilabfunctionid">myfun</span><span class="scilabdefault">,</span> <span class="scilabid">intcon</span><span class="scilabdefault">,</span><span class="scilabid">x0</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabid">Aeq</span><span class="scilabdefault">,</span><span class="scilabid">beq</span><span class="scilabdefault">,</span><span class="scilabid">lb</span><span class="scilabdefault">,</span><span class="scilabid">ub</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+
+<div class="refsection"><h3 class="title">Example</h3>
+Finally, we add the non-linear constraints to the problem. Note that there is a notable difference in the way this is done as compared to defining the linear constraints.
+ <p class="para"><span><img src='./_LaTeX_intfminimax.xml_7.png' style='position:relative;top:22px;width:139px;height:52px'/></span></p>
+ <p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 5:</span>
+<span class="scilabcomment">//Objective function</span>
+<span class="scilabfkeyword">function</span> <span class="scilabinputoutputargs">f</span><span class="scilaboperator">=</span><span class="scilabfunctionid">myfun</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilabnumber">2</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">+</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">-</span> <span class="scilabnumber">48</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span> <span class="scilabnumber">40</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span> <span class="scilaboperator">+</span> <span class="scilabnumber">304</span><span class="scilabdefault">;</span> <span class="scilabcomment">//Objectives</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">-</span> <span class="scilabnumber">3</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">3</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilaboperator">+</span> <span class="scilabnumber">3</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span><span class="scilabnumber">18</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">4</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">5</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilaboperator">+</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span> <span class="scilabnumber">8</span><span class="scilabdefault">;</span>
+<span class="scilabfkeyword">endfunction</span>
+<span class="scilabcomment">// The initial guess</span>
+<span class="scilabid">x0</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">0.1</span><span class="scilabdefault">,</span><span class="scilabnumber">0.1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Linear Inequality constraints</span>
+<span class="scilabid">A</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span> <span class="scilabdefault">;</span> <span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilaboperator">/</span><span class="scilabnumber">4</span> <span class="scilabdefault">;</span> <span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">2</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//We specify the linear equality constraints below.</span>
+<span class="scilabid">Aeq</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span> <span class="scilabnumber">2</span><span class="scilabdefault">,</span> <span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">beq</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilabnumber">2</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//The upper and lower bounds for the objective function are defined in simple vectors as shown below.</span>
+<span class="scilabid">lb</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilaboperator">-</span><span class="scilabconstants">%inf</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">ub</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabconstants">%inf</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span> <span class="scilabcomment">//</span>
+<span class="scilabcomment">//Nonlinear constraints are required to be defined as a single function with the inequality and equality constraints in separate vectors.</span>
+<span class="scilabfkeyword">function</span> <span class="scilabopenclose">[</span><span class="scilabinputoutputargs">c</span><span class="scilabdefault">, </span><span class="scilabinputoutputargs">ceq</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span><span class="scilabfunctionid">nlc</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">c</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilaboperator">+</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">ceq</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabfkeyword">endfunction</span>
+<span class="scilabid">intcon</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">// Run intfminimax</span>
+<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">fval</span><span class="scilabdefault">,</span><span class="scilabid">maxfval</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">intfminimax</span><span class="scilabopenclose">(</span><span class="scilabfunctionid">myfun</span><span class="scilabdefault">,</span> <span class="scilabid">intcon</span><span class="scilabdefault">,</span><span class="scilabid">x0</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabid">Aeq</span><span class="scilabdefault">,</span><span class="scilabid">beq</span><span class="scilabdefault">,</span><span class="scilabid">lb</span><span class="scilabdefault">,</span><span class="scilabid">ub</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Example</h3>
+<p class="para">We can further enhance the functionality of fminimax by setting input options. We can pre-define the gradient of the objective function and/or the hessian of the lagrange function and thereby improve the speed of computation. This is elaborated on in example 6. We take the following problem, specify the gradients, and the jacobian matrix of the constraints. We also set solver parameters using the options.</p>
+<p class="para"><span><img src='./_LaTeX_intfminimax.xml_8.png' style='position:relative;top:17px;width:205px;height:42px'/></span></p>
+ <p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 6: Using the available options</span>
+<span class="scilabfkeyword">function</span> <span class="scilabinputoutputargs">f</span><span class="scilaboperator">=</span><span class="scilabfunctionid">myfun</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilabnumber">2</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">+</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">-</span> <span class="scilabnumber">48</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span> <span class="scilabnumber">40</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span> <span class="scilaboperator">+</span> <span class="scilabnumber">304</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">-</span> <span class="scilabnumber">3</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">3</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilaboperator">+</span> <span class="scilabnumber">3</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span><span class="scilabnumber">18</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">4</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">5</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilaboperator">+</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span> <span class="scilabnumber">8</span><span class="scilabdefault">;</span>
+<span class="scilabfkeyword">endfunction</span>
+
+<span class="scilabcomment">// Defining gradient of myfun</span>
+<span class="scilabfkeyword">function</span> <span class="scilabinputoutputargs">G</span><span class="scilaboperator">=</span><span class="scilabfunctionid">myfungrad</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">G</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span> <span class="scilabnumber">4</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span> <span class="scilabnumber">48</span><span class="scilabdefault">,</span> <span class="scilaboperator">-</span><span class="scilabnumber">2</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilabdefault">,</span> <span class="scilabnumber">1</span><span class="scilabdefault">,</span> <span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span> <span class="scilabnumber">1</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">2</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span> <span class="scilabnumber">40</span><span class="scilabdefault">,</span> <span class="scilaboperator">-</span><span class="scilabnumber">6</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilabdefault">,</span> <span class="scilabnumber">3</span><span class="scilabdefault">,</span> <span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span> <span class="scilabnumber">1</span><span class="scilabdefault">;</span> <span class="scilabopenclose">]</span><span class="scilaboperator">&#0039;</span>
+<span class="scilabfkeyword">endfunction</span>
+<span class="scilabcomment">// The nonlinear constraints and the Jacobian</span>
+<span class="scilabcomment">// matrix of the constraints</span>
+<span class="scilabfkeyword">function</span> <span class="scilabopenclose">[</span><span class="scilabinputoutputargs">c</span><span class="scilabdefault">, </span><span class="scilabinputoutputargs">ceq</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span><span class="scilabfunctionid">confun</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
+<span class="scilabcomment">// Inequality constraints</span>
+<span class="scilabinputoutputargs">c</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1.5</span> <span class="scilaboperator">+</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilabdefault">,</span> <span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span> <span class="scilabnumber">10</span><span class="scilabopenclose">]</span>
+<span class="scilabcomment">// No nonlinear equality constraints</span>
+<span class="scilabinputoutputargs">ceq</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span>
+<span class="scilabfkeyword">endfunction</span>
+<span class="scilabcomment">// Defining gradient of confungrad</span>
+<span class="scilabfkeyword">function</span> <span class="scilabopenclose">[</span><span class="scilabinputoutputargs">DC</span><span class="scilabdefault">, </span><span class="scilabinputoutputargs">DCeq</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span><span class="scilabfunctionid">cgrad</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
+<span class="scilabcomment">// DC(:,i) = gradient of the i-th constraint</span>
+<span class="scilabcomment">// DC = [</span>
+<span class="scilabcomment">// Dc1/Dx1 Dc1/Dx2</span>
+<span class="scilabcomment">// Dc2/Dx1 Dc2/Dx2</span>
+<span class="scilabcomment">// ]</span>
+<span class="scilabinputoutputargs">DC</span><span class="scilaboperator">=</span> <span class="scilabopenclose">[</span>
+<span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span> <span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span> <span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span>
+<span class="scilabopenclose">]</span><span class="scilaboperator">&#0039;</span>
+<span class="scilabinputoutputargs">DCeq</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilaboperator">&#0039;</span>
+<span class="scilabfkeyword">endfunction</span>
+<span class="scilabcomment">// Test with both gradient of objective and gradient of constraints</span>
+<span class="scilabid">Options</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">MaxIter</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabopenclose">[</span><span class="scilabnumber">3000</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span> <span class="scilabstring">&#0034;</span><span class="scilabstring">CpuTime</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabopenclose">[</span><span class="scilabnumber">600</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span><span class="scilabstring">&#0034;</span><span class="scilabstring">GradObj</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span><span class="scilabfunctionid">myfungrad</span><span class="scilabdefault">,</span><span class="scilabstring">&#0034;</span><span class="scilabstring">GradCon</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span><span class="scilabfunctionid">cgrad</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">// The initial guess</span>
+<span class="scilabid">x0</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">10</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">// The expected solution : only 4 digits are guaranteed</span>
+<span class="scilabid">xopt</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">0.92791</span> <span class="scilabnumber">7.93551</span><span class="scilabopenclose">]</span>
+<span class="scilabid">fopt</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">6.73443</span> <span class="scilaboperator">-</span><span class="scilabnumber">189.778</span> <span class="scilabnumber">6.73443</span> <span class="scilaboperator">-</span><span class="scilabnumber">8.86342</span> <span class="scilabnumber">0.86342</span><span class="scilabopenclose">]</span>
+<span class="scilabid">maxfopt</span> <span class="scilaboperator">=</span> <span class="scilabnumber">6.73443</span>
+<span class="scilabcomment">//integer constraints</span>
+<span class="scilabid">intcon</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">// Run intfminimax</span>
+<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">fval</span><span class="scilabdefault">,</span><span class="scilabid">maxfval</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">intfminimax</span><span class="scilabopenclose">(</span><span class="scilabfunctionid">myfun</span><span class="scilabdefault">,</span><span class="scilabid">intcon</span><span class="scilabdefault">,</span><span class="scilabid">x0</span><span class="scilabdefault">,</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span> <span class="scilabfunctionid">confun</span><span class="scilabdefault">,</span> <span class="scilabid">Options</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Example</h3>
+Infeasible Problems: Find x in R^2 such that it minimizes the objective function used above under the following constraints:
+<p class="para"><span><img src='./_LaTeX_intfminimax.xml_9.png' style='position:relative;top:19px;width:158px;height:46px'/></span></p>
+<p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 7:</span>
+<span class="scilabcomment">//Objective function</span>
+<span class="scilabfkeyword">function</span> <span class="scilabinputoutputargs">f</span><span class="scilaboperator">=</span><span class="scilabfunctionid">myfun</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilabnumber">2</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">+</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">-</span> <span class="scilabnumber">48</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span> <span class="scilabnumber">40</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span> <span class="scilaboperator">+</span> <span class="scilabnumber">304</span><span class="scilabdefault">;</span> <span class="scilabcomment">//Objectives</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">-</span> <span class="scilabnumber">3</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">3</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilaboperator">+</span> <span class="scilabnumber">3</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span><span class="scilabnumber">18</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">4</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">f</span><span class="scilabopenclose">(</span><span class="scilabnumber">5</span><span class="scilabopenclose">)</span><span class="scilaboperator">=</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilaboperator">+</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span> <span class="scilabnumber">8</span><span class="scilabdefault">;</span>
+<span class="scilabfkeyword">endfunction</span>
+<span class="scilabcomment">// The initial guess</span>
+<span class="scilabid">x0</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">0.1</span><span class="scilabdefault">,</span><span class="scilabnumber">0.1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Linear Inequality constraints</span>
+<span class="scilabid">A</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span> <span class="scilabdefault">;</span> <span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilaboperator">/</span><span class="scilabnumber">4</span> <span class="scilabdefault">;</span> <span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">2</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//We specify the linear equality constraints below.</span>
+<span class="scilabid">Aeq</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilaboperator">/</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">5</span><span class="scilabdefault">;</span> <span class="scilabnumber">2</span><span class="scilabdefault">,</span> <span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">beq</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">11</span><span class="scilabdefault">;</span><span class="scilabnumber">8</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//integer constraints</span>
+<span class="scilabid">intcon</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">// Run intfminimax</span>
+<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">fval</span><span class="scilabdefault">,</span><span class="scilabid">maxfval</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">intfminimax</span><span class="scilabopenclose">(</span><span class="scilabfunctionid">myfun</span><span class="scilabdefault">,</span><span class="scilabid">intcon</span><span class="scilabdefault">,</span> <span class="scilabid">x0</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabid">Aeq</span><span class="scilabdefault">,</span><span class="scilabid">beq</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+
+<div class="refsection"><h3 class="title">Authors</h3>
+ <ul class="itemizedlist"><li class="member">Harpreet Singh</li></ul></div>
+ <br />
+
+ <div class="manualnavbar">
+ <table width="100%">
+ <tr><td colspan="3" class="next"><a href="http://bugzilla.scilab.org/enter_bug.cgi?product=Scilab%20software&component=Documentation%20pages" class="ulink">Report an issue</a></td></tr>
+<tr>
+ <td width="30%">
+ <span class="previous"><a href="intfmincon.html">&lt;&lt; intfmincon</a></span>
+
+ </td>
+ <td width="40%" class="center">
+ <span class="top"><a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a></span>
+
+ </td>
+ <td width="30%" class="next">
+ <span class="next"><a href="intfminunc.html">intfminunc &gt;&gt;</a></span>
+
+ </td>
+ </tr></table>
+ <hr />
+ </div>
+ </body>
+</html>
diff --git a/help/en_US/scilab_en_US_help/intfminunc.html b/help/en_US/scilab_en_US_help/intfminunc.html
new file mode 100644
index 0000000..a188795
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/intfminunc.html
@@ -0,0 +1,173 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <title>intfminunc</title>
+ <style type="text/css" media="all">
+ @import url("scilab_code.css");
+ @import url("xml_code.css");
+ @import url("c_code.css");
+ @import url("style.css");
+ </style>
+ </head>
+ <body>
+ <div class="manualnavbar">
+ <table width="100%"><tr>
+ <td width="30%">
+ <span class="previous"><a href="intfminimax.html">&lt;&lt; intfminimax</a></span>
+
+ </td>
+ <td width="40%" class="center">
+ <span class="top"><a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a></span>
+
+ </td>
+ <td width="30%" class="next">
+ <span class="next"><a href="intqpipopt.html">intqpipopt &gt;&gt;</a></span>
+
+ </td>
+ </tr></table>
+ <hr />
+ </div>
+
+
+
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; intfminunc</span>
+
+ <br /><br />
+ <div class="refnamediv"><h1 class="refname">intfminunc</h1>
+ <p class="refpurpose">Solves an unconstrainted multi-variable mixed integer non linear programming optimization problem</p></div>
+
+
+<div class="refsynopsisdiv"><h3 class="title">Calling Sequence</h3>
+ <div class="synopsis"><pre><span class="default">xopt</span><span class="default"> = </span><span class="functionid">intfminunc</span><span class="default">(</span><span class="default">f</span><span class="default">,</span><span class="default">x0</span><span class="default">)</span>
+<span class="default">xopt</span><span class="default"> = </span><span class="functionid">intfminunc</span><span class="default">(</span><span class="default">f</span><span class="default">,</span><span class="default">x0</span><span class="default">,</span><span class="default">intcon</span><span class="default">)</span>
+<span class="default">xopt</span><span class="default"> = </span><span class="functionid">intfminunc</span><span class="default">(</span><span class="default">f</span><span class="default">,</span><span class="default">x0</span><span class="default">,</span><span class="default">intcon</span><span class="default">,</span><span class="default">options</span><span class="default">)</span>
+<span class="default">[</span><span class="default">xopt</span><span class="default">,</span><span class="default">fopt</span><span class="default">] = </span><span class="functionid">intfminunc</span><span class="default">(.....)</span>
+<span class="default">[</span><span class="default">xopt</span><span class="default">,</span><span class="default">fopt</span><span class="default">,</span><span class="default">exitflag</span><span class="default">]= </span><span class="functionid">intfminunc</span><span class="default">(.....)</span>
+<span class="default">[</span><span class="default">xopt</span><span class="default">,</span><span class="default">fopt</span><span class="default">,</span><span class="default">exitflag</span><span class="default">,</span><span class="default">gradient</span><span class="default">,</span><span class="default">hessian</span><span class="default">]= </span><span class="functionid">intfminunc</span><span class="default">(.....)</span></pre></div></div>
+
+<div class="refsection"><h3 class="title">Input Parameters</h3>
+ <dl><dt><span class="term">f :</span>
+ <dd><p class="para">A function, representing the objective function of the problem.</p></dd></dt>
+ <dt><span class="term">x0 :</span>
+ <dd><p class="para">A vector of doubles, containing the starting values of variables of size (1 X n) or (n X 1) where &#0039;n&#0039; is the number of Variables.</p></dd></dt>
+ <dt><span class="term">intcon :</span>
+ <dd><p class="para">A vector of integers, representing the variables that are constrained to be integers.</p></dd></dt>
+ <dt><span class="term">options :</span>
+ <dd><p class="para">A list, containing the option for user to specify. See below for details.</p></dd></dt></dl></div>
+<div class="refsection"><h3 class="title">Outputs</h3>
+ <dl><dt><span class="term">xopt :</span>
+ <dd><p class="para">A vector of doubles, containing the computed solution of the optimization problem.</p></dd></dt>
+ <dt><span class="term">fopt :</span>
+ <dd><p class="para">A double, containing the the function value at x.</p></dd></dt>
+ <dt><span class="term">exitflag :</span>
+ <dd><p class="para">An integer, containing the flag which denotes the reason for termination of algorithm. See below for details.</p></dd></dt>
+ <dt><span class="term">gradient :</span>
+ <dd><p class="para">A vector of doubles, containing the objective&#0039;s gradient of the solution.</p></dd></dt>
+ <dt><span class="term">hessian :</span>
+ <dd><p class="para">A matrix of doubles, containing the Lagrangian&#0039;s hessian of the solution.</p></dd></dt></dl></div>
+
+<div class="refsection"><h3 class="title">Description</h3>
+ <p class="para">Search the minimum of a multi-variable mixed integer non linear programming unconstrained optimization problem specified by :
+Find the minimum of f(x) such that</p>
+ <p class="para"><span><img src='./_LaTeX_intfminunc.xml_1.png' style='position:relative;top:9px;width:213px;height:26px'/></span></p>
+ <p class="para">intfminunc calls Bonmin, which is an optimization library written in C++, to solve the bound optimization problem.</p>
+ <p class="para"><h3 class="title">Options</h3>
+The options allow the user to set various parameters of the Optimization problem. The syntax for the options is given by:</p>
+ <p class="para">options= list(&#0034;IntegerTolerance&#0034;, [---], &#0034;MaxNodes&#0034;,[---], &#0034;MaxIter&#0034;, [---], &#0034;AllowableGap&#0034;,[---] &#0034;CpuTime&#0034;, [---],&#0034;gradobj&#0034;, &#0034;off&#0034;, &#0034;hessian&#0034;, &#0034;off&#0034; );
+<ul class="itemizedlist"><li>IntegerTolerance : A Scalar, a number with that value of an integer is considered integer.</li>
+<li>MaxNodes : A Scalar, containing the maximum number of nodes that the solver should search.</li>
+<li>CpuTime : A scalar, specifying the maximum amount of CPU Time in seconds that the solver should take.</li>
+<li>AllowableGap : A scalar, that specifies the gap between the computed solution and the the objective value of the best known solution stop, at which the tree search can be stopped.</li>
+<li>MaxIter : A scalar, specifying the maximum number of iterations that the solver should take.</li>
+<li>gradobj : A string, to turn on or off the user supplied objective gradient.</li>
+<li>hessian : A scalar, to turn on or off the user supplied objective hessian.</li></ul>
+ The default values for the various items are given as:</p>
+ <p class="para">options = list(&#0039;integertolerance&#0039;,1d-06,&#0039;maxnodes&#0039;,2147483647,&#0039;cputime&#0039;,1d10,&#0039;allowablegap&#0039;,0,&#0039;maxiter&#0039;,2147483647,&#0039;gradobj&#0039;,&#0034;off&#0034;,&#0039;hessian&#0039;,&#0034;off&#0034;)</p>
+ <p class="para"></p>
+ <p class="para">The exitflag allows to know the status of the optimization which is given back by Ipopt.
+<ul class="itemizedlist"><li>0 : Optimal Solution Found</li>
+<li>1 : InFeasible Solution.</li>
+<li>2 : Objective Function is Continuous Unbounded.</li>
+<li>3 : Limit Exceeded.</li>
+<li>4 : User Interrupt.</li>
+<li>5 : MINLP Error.</li></ul></p>
+ <p class="para">For more details on exitflag, see the Bonmin documentation which can be found on http://www.coin-or.org/Bonmin</p>
+ <p class="para"></p></div>
+<p class="para">A few examples displaying the various functionalities of intfminunc have been provided below. You will find a series of problems and the appropriate code snippets to solve them.</p>
+
+<div class="refsection"><h3 class="title">Example</h3>
+<p class="para">We begin with the minimization of a simple non-linear function.</p>
+ <p class="para">Find x in R^2 such that it minimizes:</p>
+ <p class="para"><span><img src='./_LaTeX_intfminunc.xml_2.png' style='position:relative;top:12px;width:213px;height:83px'/></span></p>
+ <p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 1:</span>
+<span class="scilabcomment">//Objective function to be minimised</span>
+<span class="scilabfkeyword">function</span> <span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span><span class="scilabfunctionid">f</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">+</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilabdefault">;</span>
+<span class="scilabfkeyword">endfunction</span>
+<span class="scilabcomment">//Starting point</span>
+<span class="scilabid">x0</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">intcon</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabopenclose">[</span><span class="scilabid">xopt</span><span class="scilabdefault">,</span><span class="scilabid">fopt</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span><span class="scilabid">intfminunc</span><span class="scilabopenclose">(</span><span class="scilabfunctionid">f</span><span class="scilabdefault">,</span><span class="scilabid">x0</span><span class="scilabdefault">,</span><span class="scilabid">intcon</span><span class="scilabopenclose">)</span>
+<span class="scilabcomment">// Press ENTER to continue</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Example</h3>
+ <p class="para">We now look at the Rosenbrock function, a non-convex performance test problem for optimization routines. We use this example to illustrate how we can enhance the functionality of intfminunc by setting input options. We can pre-define the gradient of the objective function and/or the hessian of the lagrange function and thereby improve the speed of computation. This is elaborated on in example 2. We also set solver parameters using the options.</p>
+ <p class="para"><span><img src='./_LaTeX_intfminunc.xml_3.png' style='position:relative;top:12px;width:287px;height:83px'/></span></p>
+ <p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">///Example 2:</span>
+<span class="scilabcomment">//Objective function to be minimised</span>
+<span class="scilabfkeyword">function</span> <span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span><span class="scilabfunctionid">f</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span> <span class="scilabnumber">100</span><span class="scilaboperator">*</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">+</span> <span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilabdefault">;</span>
+<span class="scilabfkeyword">endfunction</span>
+<span class="scilabcomment">//Starting point</span>
+<span class="scilabid">x0</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">2</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">intcon</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">2</span><span class="scilabopenclose">]</span>
+<span class="scilabcomment">//Options</span>
+<span class="scilabid">options</span><span class="scilaboperator">=</span><a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">MaxIter</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1500</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span> <span class="scilabstring">&#0034;</span><span class="scilabstring">CpuTime</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabopenclose">[</span><span class="scilabnumber">500</span><span class="scilabopenclose">]</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Calling</span>
+<span class="scilabopenclose">[</span><span class="scilabid">xopt</span><span class="scilabdefault">,</span><span class="scilabid">fopt</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">gradient</span><span class="scilabdefault">,</span><span class="scilabid">hessian</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span><span class="scilabid">intfminunc</span><span class="scilabopenclose">(</span><span class="scilabfunctionid">f</span><span class="scilabdefault">,</span><span class="scilabid">x0</span><span class="scilabdefault">,</span><span class="scilabid">intcon</span><span class="scilabdefault">,</span><span class="scilabid">options</span><span class="scilabopenclose">)</span>
+<span class="scilabcomment">// Press ENTER to continue</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+
+
+<div class="refsection"><h3 class="title">Example</h3>
+ <p class="para">Unbounded Problems: Find x in R^2 such that it minimizes:</p>
+ <p class="para"><span><img src='./_LaTeX_intfminunc.xml_4.png' style='position:relative;top:12px;width:213px;height:83px'/></span></p>
+ <p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//The below problem is an unbounded problem:</span>
+<span class="scilabcomment">//Find x in R^2 such that the below function is minimum</span>
+<span class="scilabcomment">//f = - x1^2 - x2^2</span>
+<span class="scilabcomment">//Objective function to be minimised</span>
+<span class="scilabfkeyword">function</span> <span class="scilabopenclose">[</span><span class="scilabinputoutputargs">y</span><span class="scilabdefault">, </span><span class="scilabinputoutputargs">g</span><span class="scilabdefault">, </span><span class="scilabinputoutputargs">h</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span><span class="scilabfunctionid">f</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">y</span> <span class="scilaboperator">=</span> <span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span> <span class="scilaboperator">-</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">^</span><span class="scilabnumber">2</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">g</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">2</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">2</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabinputoutputargs">h</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">;</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">2</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabfkeyword">endfunction</span>
+<span class="scilabcomment">//Starting point</span>
+<span class="scilabid">x0</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">intcon</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span>
+<span class="scilabid">options</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">gradobj</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span><span class="scilabstring">&#0034;</span><span class="scilabstring">ON</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span><span class="scilabstring">&#0034;</span><span class="scilabstring">hessian</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span><span class="scilabstring">&#0034;</span><span class="scilabstring">on</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabopenclose">[</span><span class="scilabid">xopt</span><span class="scilabdefault">,</span><span class="scilabid">fopt</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">gradient</span><span class="scilabdefault">,</span><span class="scilabid">hessian</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span><span class="scilabid">intfminunc</span><span class="scilabopenclose">(</span><span class="scilabfunctionid">f</span><span class="scilabdefault">,</span><span class="scilabid">x0</span><span class="scilabdefault">,</span><span class="scilabid">intcon</span><span class="scilabdefault">,</span><span class="scilabid">options</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+ <br />
+
+ <div class="manualnavbar">
+ <table width="100%">
+ <tr><td colspan="3" class="next"><a href="http://bugzilla.scilab.org/enter_bug.cgi?product=Scilab%20software&component=Documentation%20pages" class="ulink">Report an issue</a></td></tr>
+<tr>
+ <td width="30%">
+ <span class="previous"><a href="intfminimax.html">&lt;&lt; intfminimax</a></span>
+
+ </td>
+ <td width="40%" class="center">
+ <span class="top"><a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a></span>
+
+ </td>
+ <td width="30%" class="next">
+ <span class="next"><a href="intqpipopt.html">intqpipopt &gt;&gt;</a></span>
+
+ </td>
+ </tr></table>
+ <hr />
+ </div>
+ </body>
+</html>
diff --git a/help/en_US/scilab_en_US_help/intqpipopt.html b/help/en_US/scilab_en_US_help/intqpipopt.html
new file mode 100644
index 0000000..2fbad90
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/intqpipopt.html
@@ -0,0 +1,267 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <title>intqpipopt</title>
+ <style type="text/css" media="all">
+ @import url("scilab_code.css");
+ @import url("xml_code.css");
+ @import url("c_code.css");
+ @import url("style.css");
+ </style>
+ </head>
+ <body>
+ <div class="manualnavbar">
+ <table width="100%"><tr>
+ <td width="30%">
+ <span class="previous"><a href="intfminunc.html">&lt;&lt; intfminunc</a></span>
+
+ </td>
+ <td width="40%" class="center">
+ <span class="top"><a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a></span>
+
+ </td>
+ <td width="30%" class="next">
+ <span class="next"><a href="linprog.html">linprog &gt;&gt;</a></span>
+
+ </td>
+ </tr></table>
+ <hr />
+ </div>
+
+
+
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; intqpipopt</span>
+
+ <br /><br />
+ <div class="refnamediv"><h1 class="refname">intqpipopt</h1>
+ <p class="refpurpose">Solves a linear quadratic problem.</p></div>
+
+
+<div class="refsynopsisdiv"><h3 class="title">Calling Sequence</h3>
+ <div class="synopsis"><pre><span class="default">xopt</span><span class="default"> = </span><span class="functionid">intqpipopt</span><span class="default">(</span><span class="default">H</span><span class="default">,</span><span class="default">f</span><span class="default">)</span>
+<span class="default">xopt</span><span class="default"> = </span><span class="functionid">intqpipopt</span><span class="default">(</span><span class="default">H</span><span class="default">,</span><span class="default">f</span><span class="default">,</span><span class="default">intcon</span><span class="default">)</span>
+<span class="default">xopt</span><span class="default"> = </span><span class="functionid">intqpipopt</span><span class="default">(</span><span class="default">H</span><span class="default">,</span><span class="default">f</span><span class="default">,</span><span class="default">intcon</span><span class="default">,</span><span class="default">A</span><span class="default">,</span><span class="default">b</span><span class="default">)</span>
+<span class="default">xopt</span><span class="default"> = </span><span class="functionid">intqpipopt</span><span class="default">(</span><span class="default">H</span><span class="default">,</span><span class="default">f</span><span class="default">,</span><span class="default">intcon</span><span class="default">,</span><span class="default">A</span><span class="default">,</span><span class="default">b</span><span class="default">,</span><span class="default">Aeq</span><span class="default">,</span><span class="default">beq</span><span class="default">)</span>
+<span class="default">xopt</span><span class="default"> = </span><span class="functionid">intqpipopt</span><span class="default">(</span><span class="default">H</span><span class="default">,</span><span class="default">f</span><span class="default">,</span><span class="default">intcon</span><span class="default">,</span><span class="default">A</span><span class="default">,</span><span class="default">b</span><span class="default">,</span><span class="default">Aeq</span><span class="default">,</span><span class="default">beq</span><span class="default">,</span><span class="default">lb</span><span class="default">,</span><span class="default">ub</span><span class="default">)</span>
+<span class="default">xopt</span><span class="default"> = </span><span class="functionid">intqpipopt</span><span class="default">(</span><span class="default">H</span><span class="default">,</span><span class="default">f</span><span class="default">,</span><span class="default">intcon</span><span class="default">,</span><span class="default">A</span><span class="default">,</span><span class="default">b</span><span class="default">,</span><span class="default">Aeq</span><span class="default">,</span><span class="default">beq</span><span class="default">,</span><span class="default">lb</span><span class="default">,</span><span class="default">ub</span><span class="default">,</span><span class="default">x0</span><span class="default">)</span>
+<span class="default">xopt</span><span class="default"> = </span><span class="functionid">intqpipopt</span><span class="default">(</span><span class="default">H</span><span class="default">,</span><span class="default">f</span><span class="default">,</span><span class="default">intcon</span><span class="default">,</span><span class="default">A</span><span class="default">,</span><span class="default">b</span><span class="default">,</span><span class="default">Aeq</span><span class="default">,</span><span class="default">beq</span><span class="default">,</span><span class="default">lb</span><span class="default">,</span><span class="default">ub</span><span class="default">,</span><span class="default">x0</span><span class="default">,</span><span class="default">options</span><span class="default">)</span>
+<span class="default">xopt</span><span class="default"> = </span><span class="functionid">intqpipopt</span><span class="default">(</span><span class="default">H</span><span class="default">,</span><span class="default">f</span><span class="default">,</span><span class="default">intcon</span><span class="default">,</span><span class="default">A</span><span class="default">,</span><span class="default">b</span><span class="default">,</span><span class="default">Aeq</span><span class="default">,</span><span class="default">beq</span><span class="default">,</span><span class="default">lb</span><span class="default">,</span><span class="default">ub</span><span class="default">,</span><span class="default">x0</span><span class="default">,</span><span class="default">options</span><span class="default">,</span>&#0034;<span class="default">file_path</span>&#0034;<span class="default">)</span>
+<span class="default">[</span><span class="default">xopt</span><span class="default">,</span><span class="default">fopt</span><span class="default">,</span><span class="default">exitflag</span><span class="default">,</span><span class="default">output</span><span class="default">] = </span><span class="functionid">intqpipopt</span><span class="default">( ... )</span></pre></div></div>
+
+<div class="refsection"><h3 class="title">Input Parameters</h3>
+ <dl><dt><span class="term">H :</span>
+ <dd><p class="para">A symmetric matrix of doubles, representing the Hessian of the quadratic problem.</p></dd></dt>
+ <dt><span class="term">f :</span>
+ <dd><p class="para">A vector of doubles, representing coefficients of the linear terms in the quadratic problem.</p></dd></dt>
+ <dt><span class="term">intcon :</span>
+ <dd><p class="para">A vector of integers, representing the variables that are constrained to be integers.</p></dd></dt>
+ <dt><span class="term">A :</span>
+ <dd><p class="para">A matrix of doubles, containing the coefficients of linear inequality constraints of size (m X n) where &#0039;m&#0039; is the number of linear inequality constraints.</p></dd></dt>
+ <dt><span class="term">b :</span>
+ <dd><p class="para">A vector of doubles, related to &#0039;A&#0039; and represents the linear coefficients in the linear inequality constraints of size (m X 1).</p></dd></dt>
+ <dt><span class="term">Aeq :</span>
+ <dd><p class="para">A matrix of doubles, containing the coefficients of linear equality constraints of size (m1 X n) where &#0039;m1&#0039; is the number of linear equality constraints.</p></dd></dt>
+ <dt><span class="term">beq :</span>
+ <dd><p class="para">A vector of double, vector of doubles, related to &#0039;Aeq&#0039; and represents the linear coefficients in the equality constraints of size (m1 X 1).</p></dd></dt>
+ <dt><span class="term">lb :</span>
+ <dd><p class="para">A vector of doubles, containing the lower bounds of the variables of size (1 X n) or (n X 1) where &#0039;n&#0039; is the number of variables.</p></dd></dt>
+ <dt><span class="term">ub :</span>
+ <dd><p class="para">A vector of doubles, containing the upper bounds of the variables of size (1 X n) or (n X 1) where &#0039;n&#0039; is the number of variables.</p></dd></dt>
+ <dt><span class="term">x0 :</span>
+ <dd><p class="para">A vector of doubles, containing the starting values of variables of size (1 X n) or (n X 1) where &#0039;n&#0039; is the number of variables.</p></dd></dt>
+ <dt><span class="term">options :</span>
+ <dd><p class="para">A list, containing the option for user to specify. See below for details.</p></dd></dt>
+ <dt><span class="term">file_path :</span>
+ <dd><p class="para">path to bonmin opt file if used.</p></dd></dt></dl></div>
+<div class="refsection"><h3 class="title">Outputs</h3>
+ <dl><dt><span class="term">xopt :</span>
+ <dd><p class="para">A vector of doubles, containing the computed solution of the optimization problem.</p></dd></dt>
+ <dt><span class="term">fopt :</span>
+ <dd><p class="para">A double, containing the value of the function at xopt.</p></dd></dt>
+ <dt><span class="term">exitflag :</span>
+ <dd><p class="para">An integer, containing the flag which denotes the reason for termination of algorithm. See below for details.</p></dd></dt>
+ <dt><span class="term">output :</span>
+ <dd><p class="para">A structure, containing the information about the optimization. See below for details.</p></dd></dt></dl></div>
+
+<div class="refsection"><h3 class="title">Description</h3>
+ <p class="para">Search the minimum of a constrained linear quadratic optimization problem specified by :</p>
+ <p class="para"><span><img src='./_LaTeX_intqpipopt.xml_1.png' style='position:relative;top:52px;width:277px;height:112px'/></span></p>
+ <p class="para">intqpipopt calls Bonmin, a library written in C++ to solve the quadratic problem.</p>
+ <p class="para">The exitflag allows to know the status of the optimization which is given back by Ipopt.
+<ul class="itemizedlist"><li>0 : Optimal Solution Found</li>
+<li>1 : InFeasible Solution.</li>
+<li>2 : Objective Function is Continuous Unbounded.</li>
+<li>3 : Limit Exceeded.</li>
+<li>4 : User Interrupt.</li>
+<li>5 : MINLP Error.</li></ul></p>
+ <p class="para">For more details on exitflag, see the Bonmin documentation which can be found on http://www.coin-or.org/Bonmin</p>
+ <p class="para"></p>
+ <p class="para">The output data structure contains detailed information about the optimization process.
+It is of type &#0034;struct&#0034; and contains the following fields.
+<ul class="itemizedlist"><li>output.constrviolation: The max-norm of the constraint violation.</li></ul></p>
+ <p class="para"></p></div>
+<p class="para">A few examples displaying the various functionalities of intqpipopt have been provided below. You will find a series of problems and the appropriate code snippets to solve them.</p>
+<div class="refsection"><h3 class="title">Example</h3>
+ <p class="para">Here we solve a simple objective function.</p>
+ <p class="para">Find x in R^6 such that it minimizes:</p>
+ <p class="para"><span><img src='./_LaTeX_intqpipopt.xml_2.png' style='position:relative;top:12px;width:284px;height:146px'/></span></p>
+ <p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 1:</span>
+<span class="scilabcomment">//Minimize 0.5*x</span><span class="scilabcomment">&#0039;</span><span class="scilabcomment">*H*x + f</span><span class="scilabcomment">&#0039;</span><span class="scilabcomment">*x with</span>
+<span class="scilabid">f</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span> <span class="scilabnumber">2</span><span class="scilabdefault">;</span> <span class="scilabnumber">3</span><span class="scilabdefault">;</span> <span class="scilabnumber">4</span><span class="scilabdefault">;</span> <span class="scilabnumber">5</span><span class="scilabdefault">;</span> <span class="scilabnumber">6</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span> <span class="scilabid">H</span><span class="scilaboperator">=</span><a class="scilabcommand" href="scilab://eye">eye</a><span class="scilabopenclose">(</span><span class="scilabnumber">6</span><span class="scilabdefault">,</span><span class="scilabnumber">6</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Integer Constraints</span>
+<span class="scilabid">intcon</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">2</span> <span class="scilabdefault">,</span><span class="scilabnumber">4</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Running intqpipopt</span>
+<span class="scilabopenclose">[</span><span class="scilabid">xopt</span><span class="scilabdefault">,</span><span class="scilabid">fopt</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span><span class="scilabid">qpipoptmat</span><span class="scilabopenclose">(</span><span class="scilabid">H</span><span class="scilabdefault">,</span><span class="scilabid">f</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Example</h3>
+ We proceed to add simple linear inequality constraints.
+
+<p class="para"><span><img src='./_LaTeX_intqpipopt.xml_3.png' style='position:relative;top:18px;width:231px;height:44px'/></span></p>
+ <p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 2:</span>
+<span class="scilabid">f</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span> <span class="scilabnumber">2</span><span class="scilabdefault">;</span> <span class="scilabnumber">3</span><span class="scilabdefault">;</span> <span class="scilabnumber">4</span><span class="scilabdefault">;</span> <span class="scilabnumber">5</span><span class="scilabdefault">;</span> <span class="scilabnumber">6</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span> <span class="scilabid">H</span><span class="scilaboperator">=</span><a class="scilabcommand" href="scilab://eye">eye</a><span class="scilabopenclose">(</span><span class="scilabnumber">6</span><span class="scilabdefault">,</span><span class="scilabnumber">6</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Inequality constraints</span>
+<span class="scilabid">A</span><span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span>
+<span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span> <span class="scilabnumber">2.5</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Integer Constraints</span>
+<span class="scilabid">intcon</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">2</span> <span class="scilabdefault">,</span><span class="scilabnumber">4</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Running intqpipopt</span>
+<span class="scilabopenclose">[</span><span class="scilabid">xopt</span><span class="scilabdefault">,</span><span class="scilabid">fopt</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span><span class="scilabid">intqpipopt</span><span class="scilabopenclose">(</span><span class="scilabid">H</span><span class="scilabdefault">,</span><span class="scilabid">f</span><span class="scilabdefault">,</span><span class="scilabid">intcon</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Example</h3>
+ Here we build up on the previous example by adding linear equality constraints.
+We add the following constraints to the problem specified above:
+<p class="para"><span><img src='./_LaTeX_intqpipopt.xml_4.png' style='position:relative;top:27px;width:237px;height:62px'/></span></p>
+ <p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 3:</span>
+<span class="scilabcomment">//Minimize 0.5*x</span><span class="scilabcomment">&#0039;</span><span class="scilabcomment">*H*x + f</span><span class="scilabcomment">&#0039;</span><span class="scilabcomment">*x with</span>
+<span class="scilabid">f</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span> <span class="scilabnumber">2</span><span class="scilabdefault">;</span> <span class="scilabnumber">3</span><span class="scilabdefault">;</span> <span class="scilabnumber">4</span><span class="scilabdefault">;</span> <span class="scilabnumber">5</span><span class="scilabdefault">;</span> <span class="scilabnumber">6</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span> <span class="scilabid">H</span><span class="scilaboperator">=</span><a class="scilabcommand" href="scilab://eye">eye</a><span class="scilabopenclose">(</span><span class="scilabnumber">6</span><span class="scilabdefault">,</span><span class="scilabnumber">6</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Inequality constraints</span>
+<span class="scilabid">A</span><span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span>
+<span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span> <span class="scilabnumber">2.5</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Equality constraints</span>
+<span class="scilabid">Aeq</span><span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span>
+<span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">4</span><span class="scilabdefault">,</span><span class="scilabnumber">5</span><span class="scilabdefault">,</span><span class="scilabnumber">6</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilabnumber">5</span><span class="scilabdefault">,</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">beq</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span> <span class="scilabnumber">2</span><span class="scilabdefault">;</span> <span class="scilabnumber">3</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Integer Constraints</span>
+<span class="scilabid">intcon</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">2</span> <span class="scilabdefault">,</span><span class="scilabnumber">4</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Running intqpipopt</span>
+<span class="scilabopenclose">[</span><span class="scilabid">xopt</span><span class="scilabdefault">,</span><span class="scilabid">fopt</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span><span class="scilabid">intqpipopt</span><span class="scilabopenclose">(</span><span class="scilabid">H</span><span class="scilabdefault">,</span><span class="scilabid">f</span><span class="scilabdefault">,</span><span class="scilabid">intcon</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabid">Aeq</span><span class="scilabdefault">,</span><span class="scilabid">beq</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Example</h3>
+<p class="para">In this example, we proceed to add the upper and lower bounds to the objective function.</p>
+<p class="para"><span><img src='./_LaTeX_intqpipopt.xml_5.png' style='position:relative;top:57px;width:193px;height:122px'/></span></p>
+ <p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 4:</span>
+<span class="scilabcomment">//Minimize 0.5*x</span><span class="scilabcomment">&#0039;</span><span class="scilabcomment">*H*x + f</span><span class="scilabcomment">&#0039;</span><span class="scilabcomment">*x with</span>
+<span class="scilabid">f</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span> <span class="scilabnumber">2</span><span class="scilabdefault">;</span> <span class="scilabnumber">3</span><span class="scilabdefault">;</span> <span class="scilabnumber">4</span><span class="scilabdefault">;</span> <span class="scilabnumber">5</span><span class="scilabdefault">;</span> <span class="scilabnumber">6</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span> <span class="scilabid">H</span><span class="scilaboperator">=</span><a class="scilabcommand" href="scilab://eye">eye</a><span class="scilabopenclose">(</span><span class="scilabnumber">6</span><span class="scilabdefault">,</span><span class="scilabnumber">6</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Inequality constraints</span>
+<span class="scilabid">A</span><span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span>
+<span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span> <span class="scilabnumber">2.5</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Equality constraints</span>
+<span class="scilabid">Aeq</span><span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span>
+<span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">4</span><span class="scilabdefault">,</span><span class="scilabnumber">5</span><span class="scilabdefault">,</span><span class="scilabnumber">6</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilabnumber">5</span><span class="scilabdefault">,</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">beq</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span> <span class="scilabnumber">2</span><span class="scilabdefault">;</span> <span class="scilabnumber">3</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Variable bounds</span>
+<span class="scilabid">lb</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">1000</span><span class="scilabdefault">;</span> <span class="scilaboperator">-</span><span class="scilabnumber">10000</span><span class="scilabdefault">;</span> <span class="scilabnumber">0</span><span class="scilabdefault">;</span> <span class="scilaboperator">-</span><span class="scilabnumber">1000</span><span class="scilabdefault">;</span> <span class="scilaboperator">-</span><span class="scilabnumber">1000</span><span class="scilabdefault">;</span> <span class="scilaboperator">-</span><span class="scilabnumber">1000</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">ub</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">10000</span><span class="scilabdefault">;</span> <span class="scilabnumber">100</span><span class="scilabdefault">;</span> <span class="scilabnumber">1.5</span><span class="scilabdefault">;</span> <span class="scilabnumber">100</span><span class="scilabdefault">;</span> <span class="scilabnumber">100</span><span class="scilabdefault">;</span> <span class="scilabnumber">1000</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Integer Constraints</span>
+<span class="scilabid">intcon</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">2</span> <span class="scilabdefault">,</span><span class="scilabnumber">4</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Running intqpipopt</span>
+<span class="scilabopenclose">[</span><span class="scilabid">xopt</span><span class="scilabdefault">,</span><span class="scilabid">fopt</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span><span class="scilabid">intqpipopt</span><span class="scilabopenclose">(</span><span class="scilabid">H</span><span class="scilabdefault">,</span><span class="scilabid">f</span><span class="scilabdefault">,</span><span class="scilabid">intcon</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabid">Aeq</span><span class="scilabdefault">,</span><span class="scilabid">beq</span><span class="scilabdefault">,</span><span class="scilabid">lb</span><span class="scilabdefault">,</span><span class="scilabid">ub</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Example</h3>
+<p class="para">In this example, we initialize the values of x to speed up the computation. We further enhance the functionality of qpipoptmat by setting input options.</p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 5:</span>
+<span class="scilabcomment">//Minimize 0.5*x</span><span class="scilabcomment">&#0039;</span><span class="scilabcomment">*H*x + f</span><span class="scilabcomment">&#0039;</span><span class="scilabcomment">*x with</span>
+<span class="scilabid">f</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span> <span class="scilabnumber">2</span><span class="scilabdefault">;</span> <span class="scilabnumber">3</span><span class="scilabdefault">;</span> <span class="scilabnumber">4</span><span class="scilabdefault">;</span> <span class="scilabnumber">5</span><span class="scilabdefault">;</span> <span class="scilabnumber">6</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span> <span class="scilabid">H</span><span class="scilaboperator">=</span><a class="scilabcommand" href="scilab://eye">eye</a><span class="scilabopenclose">(</span><span class="scilabnumber">6</span><span class="scilabdefault">,</span><span class="scilabnumber">6</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Inequality constraints</span>
+<span class="scilabid">A</span><span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span>
+<span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span> <span class="scilabnumber">2.5</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Equality constraints</span>
+<span class="scilabid">Aeq</span><span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span>
+<span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">4</span><span class="scilabdefault">,</span><span class="scilabnumber">5</span><span class="scilabdefault">,</span><span class="scilabnumber">6</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilabnumber">5</span><span class="scilabdefault">,</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">beq</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span> <span class="scilabnumber">2</span><span class="scilabdefault">;</span> <span class="scilabnumber">3</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Variable bounds</span>
+<span class="scilabid">lb</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">1000</span><span class="scilabdefault">;</span> <span class="scilaboperator">-</span><span class="scilabnumber">10000</span><span class="scilabdefault">;</span> <span class="scilabnumber">0</span><span class="scilabdefault">;</span> <span class="scilaboperator">-</span><span class="scilabnumber">1000</span><span class="scilabdefault">;</span> <span class="scilaboperator">-</span><span class="scilabnumber">1000</span><span class="scilabdefault">;</span> <span class="scilaboperator">-</span><span class="scilabnumber">1000</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">ub</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">10000</span><span class="scilabdefault">;</span> <span class="scilabnumber">100</span><span class="scilabdefault">;</span> <span class="scilabnumber">1.5</span><span class="scilabdefault">;</span> <span class="scilabnumber">100</span><span class="scilabdefault">;</span> <span class="scilabnumber">100</span><span class="scilabdefault">;</span> <span class="scilabnumber">1000</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Initial guess and options</span>
+<span class="scilabid">x0</span> <span class="scilaboperator">=</span> <a class="scilabmacro" href="scilab://repmat">repmat</a><span class="scilabopenclose">(</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">6</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">options</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">MaxIter</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabnumber">300</span><span class="scilabdefault">,</span> <span class="scilabstring">&#0034;</span><span class="scilabstring">CpuTime</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabnumber">100</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Integer Constraints</span>
+<span class="scilabid">intcon</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">2</span> <span class="scilabdefault">,</span><span class="scilabnumber">4</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Running intqpipopt</span>
+<span class="scilabopenclose">[</span><span class="scilabid">xopt</span><span class="scilabdefault">,</span><span class="scilabid">fopt</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span><span class="scilabid">intqpipopt</span><span class="scilabopenclose">(</span><span class="scilabid">H</span><span class="scilabdefault">,</span><span class="scilabid">f</span><span class="scilabdefault">,</span><span class="scilabid">intcon</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabid">Aeq</span><span class="scilabdefault">,</span><span class="scilabid">beq</span><span class="scilabdefault">,</span><span class="scilabid">lb</span><span class="scilabdefault">,</span><span class="scilabid">ub</span><span class="scilabdefault">,</span><span class="scilabid">x0</span><span class="scilabdefault">,</span><span class="scilabid">options</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Example</h3>
+Infeasible Problems: Find x in R^6 such that it minimizes the objective function used above under the following constraints:
+<p class="para"><span><img src='./_LaTeX_intqpipopt.xml_6.png' style='position:relative;top:12px;width:398px;height:145px'/></span></p>
+<p class="para"></p>
+<div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 6:</span>
+<span class="scilabcomment">//Minimize 0.5*x</span><span class="scilabcomment">&#0039;</span><span class="scilabcomment">*H*x + f</span><span class="scilabcomment">&#0039;</span><span class="scilabcomment">*x with</span>
+<span class="scilabid">f</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span> <span class="scilabnumber">2</span><span class="scilabdefault">;</span> <span class="scilabnumber">3</span><span class="scilabdefault">;</span> <span class="scilabnumber">4</span><span class="scilabdefault">;</span> <span class="scilabnumber">5</span><span class="scilabdefault">;</span> <span class="scilabnumber">6</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span> <span class="scilabid">H</span><span class="scilaboperator">=</span><a class="scilabcommand" href="scilab://eye">eye</a><span class="scilabopenclose">(</span><span class="scilabnumber">6</span><span class="scilabdefault">,</span><span class="scilabnumber">6</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">f</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span> <span class="scilabnumber">2</span><span class="scilabdefault">;</span> <span class="scilabnumber">3</span><span class="scilabdefault">;</span> <span class="scilabnumber">4</span><span class="scilabdefault">;</span> <span class="scilabnumber">5</span><span class="scilabdefault">;</span> <span class="scilabnumber">6</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span> <span class="scilabid">H</span><span class="scilaboperator">=</span><a class="scilabcommand" href="scilab://eye">eye</a><span class="scilabopenclose">(</span><span class="scilabnumber">6</span><span class="scilabdefault">,</span><span class="scilabnumber">6</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Inequality constraints</span>
+<span class="scilabid">A</span><span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span>
+<span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span> <span class="scilabnumber">2.5</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Equality constraints</span>
+<span class="scilabid">Aeq</span><span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span>
+<span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">4</span><span class="scilabdefault">,</span><span class="scilabnumber">5</span><span class="scilabdefault">,</span><span class="scilabnumber">6</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">beq</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">4</span><span class="scilabdefault">;</span> <span class="scilabnumber">2</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Integer Constraints</span>
+<span class="scilabid">intcon</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">2</span> <span class="scilabdefault">,</span><span class="scilabnumber">4</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Running intqpipopt</span>
+<span class="scilabopenclose">[</span><span class="scilabid">xopt</span><span class="scilabdefault">,</span><span class="scilabid">fopt</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span><span class="scilabid">intqpipopt</span><span class="scilabopenclose">(</span><span class="scilabid">H</span><span class="scilabdefault">,</span><span class="scilabid">f</span><span class="scilabdefault">,</span><span class="scilabid">intcon</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabid">Aeq</span><span class="scilabdefault">,</span><span class="scilabid">beq</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Example</h3>
+<p class="para">Unbounded Problems: Find x in R^6 such that it minimizes the objective function used above under the following constraints:</p>
+<p class="para"><span><img src='./_LaTeX_intqpipopt.xml_7.png' style='position:relative;top:40px;width:426px;height:204px'/></span></p>
+<p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 7:</span>
+<span class="scilabcomment">//Minimize 0.5*x</span><span class="scilabcomment">&#0039;</span><span class="scilabcomment">*H*x + f</span><span class="scilabcomment">&#0039;</span><span class="scilabcomment">*x with</span>
+<span class="scilabid">f</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span> <span class="scilabnumber">2</span><span class="scilabdefault">;</span> <span class="scilabnumber">3</span><span class="scilabdefault">;</span> <span class="scilabnumber">4</span><span class="scilabdefault">;</span> <span class="scilabnumber">5</span><span class="scilabdefault">;</span> <span class="scilabnumber">6</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span> <span class="scilabid">H</span><span class="scilaboperator">=</span><a class="scilabcommand" href="scilab://eye">eye</a><span class="scilabopenclose">(</span><span class="scilabnumber">6</span><span class="scilabdefault">,</span><span class="scilabnumber">6</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span> <span class="scilabid">H</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilaboperator">=</span> <span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Inequality constraints</span>
+<span class="scilabid">A</span><span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span>
+<span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span> <span class="scilabnumber">2.5</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Equality constraints</span>
+<span class="scilabid">Aeq</span><span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span>
+<span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">4</span><span class="scilabdefault">,</span><span class="scilabnumber">5</span><span class="scilabdefault">,</span><span class="scilabnumber">6</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">beq</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span> <span class="scilabnumber">2</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">intcon</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">2</span> <span class="scilabdefault">,</span><span class="scilabnumber">4</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Running intqpipopt</span>
+<span class="scilabopenclose">[</span><span class="scilabid">xopt</span><span class="scilabdefault">,</span><span class="scilabid">fopt</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span><span class="scilabid">intqpipopt</span><span class="scilabopenclose">(</span><span class="scilabid">H</span><span class="scilabdefault">,</span><span class="scilabid">f</span><span class="scilabdefault">,</span><span class="scilabid">intcon</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabid">Aeq</span><span class="scilabdefault">,</span><span class="scilabid">beq</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Authors</h3>
+ <ul class="itemizedlist"><li class="member">Akshay Miterani and Pranav Deshpande</li></ul></div>
+ <br />
+
+ <div class="manualnavbar">
+ <table width="100%">
+ <tr><td colspan="3" class="next"><a href="http://bugzilla.scilab.org/enter_bug.cgi?product=Scilab%20software&component=Documentation%20pages" class="ulink">Report an issue</a></td></tr>
+<tr>
+ <td width="30%">
+ <span class="previous"><a href="intfminunc.html">&lt;&lt; intfminunc</a></span>
+
+ </td>
+ <td width="40%" class="center">
+ <span class="top"><a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a></span>
+
+ </td>
+ <td width="30%" class="next">
+ <span class="next"><a href="linprog.html">linprog &gt;&gt;</a></span>
+
+ </td>
+ </tr></table>
+ <hr />
+ </div>
+ </body>
+</html>
diff --git a/help/en_US/scilab_en_US_help/jhelpmap.jhm b/help/en_US/scilab_en_US_help/jhelpmap.jhm
index eb373d9..565fb48 100644
--- a/help/en_US/scilab_en_US_help/jhelpmap.jhm
+++ b/help/en_US/scilab_en_US_help/jhelpmap.jhm
@@ -2,12 +2,18 @@
<!DOCTYPE map PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp Map Version 1.0//EN" "http://java.sun.com/products/javahelp/map_1_0.dtd">
<map version="1.0">
<mapID target="index" url="index.html"/>
-<mapID target="section_031bbc67ce78762a40093bfdff4eaa3b" url="section_031bbc67ce78762a40093bfdff4eaa3b.html"/>
+<mapID target="section_44e1f57c5225357b5fe53cb5fad967e9" url="section_44e1f57c5225357b5fe53cb5fad967e9.html"/>
+<mapID target="cbcintlinprog" url="cbcintlinprog.html"/>
<mapID target="fgoalattain" url="fgoalattain.html"/>
<mapID target="fminbnd" url="fminbnd.html"/>
<mapID target="fmincon" url="fmincon.html"/>
<mapID target="fminimax" url="fminimax.html"/>
<mapID target="fminunc" url="fminunc.html"/>
+<mapID target="intfminbnd" url="intfminbnd.html"/>
+<mapID target="intfmincon" url="intfmincon.html"/>
+<mapID target="intfminimax" url="intfminimax.html"/>
+<mapID target="intfminunc" url="intfminunc.html"/>
+<mapID target="intqpipopt" url="intqpipopt.html"/>
<mapID target="linprog" url="linprog.html"/>
<mapID target="lsqlin" url="lsqlin.html"/>
<mapID target="lsqnonlin" url="lsqnonlin.html"/>
@@ -16,7 +22,7 @@
<mapID target="qpipoptmat" url="qpipoptmat.html"/>
<mapID target="symphony" url="symphony.html"/>
<mapID target="symphonymat" url="symphonymat.html"/>
-<mapID target="section_316c7f5a42ba69316753082a567f2a1a" url="section_316c7f5a42ba69316753082a567f2a1a.html"/>
+<mapID target="section_5fc7ef02a133896efbd190355314d3fc" url="section_5fc7ef02a133896efbd190355314d3fc.html"/>
<mapID target="sym_addConstr" url="sym_addConstr.html"/>
<mapID target="sym_addVar" url="sym_addVar.html"/>
<mapID target="sym_close" url="sym_close.html"/>
diff --git a/help/en_US/scilab_en_US_help/jhelptoc.xml b/help/en_US/scilab_en_US_help/jhelptoc.xml
index c769e27..55711ed 100644
--- a/help/en_US/scilab_en_US_help/jhelptoc.xml
+++ b/help/en_US/scilab_en_US_help/jhelptoc.xml
@@ -2,12 +2,18 @@
<!DOCTYPE toc PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp TOC Version 1.0//EN" "http://java.sun.com/products/javahelp/toc_1_0.dtd">
<toc version="1.0">
<tocitem target="index" text="FOSSEE Optimization Toolbox">
-<tocitem target="section_031bbc67ce78762a40093bfdff4eaa3b" text="FOSSEE Optimization Toolbox">
+<tocitem target="section_44e1f57c5225357b5fe53cb5fad967e9" text="FOSSEE Optimization Toolbox">
+<tocitem target="cbcintlinprog" text="cbcintlinprog"/>
<tocitem target="fgoalattain" text="fgoalattain"/>
<tocitem target="fminbnd" text="fminbnd"/>
<tocitem target="fmincon" text="fmincon"/>
<tocitem target="fminimax" text="fminimax"/>
<tocitem target="fminunc" text="fminunc"/>
+<tocitem target="intfminbnd" text="intfminbnd"/>
+<tocitem target="intfmincon" text="intfmincon"/>
+<tocitem target="intfminimax" text="intfminimax"/>
+<tocitem target="intfminunc" text="intfminunc"/>
+<tocitem target="intqpipopt" text="intqpipopt"/>
<tocitem target="linprog" text="linprog"/>
<tocitem target="lsqlin" text="lsqlin"/>
<tocitem target="lsqnonlin" text="lsqnonlin"/>
@@ -16,7 +22,7 @@
<tocitem target="qpipoptmat" text="qpipoptmat"/>
<tocitem target="symphony" text="symphony"/>
<tocitem target="symphonymat" text="symphonymat"/>
-<tocitem target="section_316c7f5a42ba69316753082a567f2a1a" text="Symphony Native Functions">
+<tocitem target="section_5fc7ef02a133896efbd190355314d3fc" text="Symphony Native Functions">
<tocitem target="sym_addConstr" text="sym_addConstr"/>
<tocitem target="sym_addVar" text="sym_addVar"/>
<tocitem target="sym_close" text="sym_close"/>
diff --git a/help/en_US/scilab_en_US_help/linprog.html b/help/en_US/scilab_en_US_help/linprog.html
index 0ecb1ba..c3310e2 100644
--- a/help/en_US/scilab_en_US_help/linprog.html
+++ b/help/en_US/scilab_en_US_help/linprog.html
@@ -12,11 +12,11 @@
<div class="manualnavbar">
<table width="100%"><tr>
<td width="30%">
- <span class="previous"><a href="fminunc.html">&lt;&lt; fminunc</a></span>
+ <span class="previous"><a href="intqpipopt.html">&lt;&lt; intqpipopt</a></span>
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a></span>
+ <span class="top"><a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; linprog</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; linprog</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">linprog</h1>
@@ -45,77 +45,90 @@
<span class="default">xopt</span><span class="default"> = </span><span class="functionid">linprog</span><span class="default">(</span><span class="default">file</span><span class="default">,</span><span class="default">param</span><span class="default">)</span>
<span class="default">[</span><span class="default">xopt</span><span class="default">,</span><span class="default">fopt</span><span class="default">,</span><span class="default">exitflag</span><span class="default">,</span><span class="default">output</span><span class="default">,</span><span class="default">lambda</span><span class="default">] = </span><span class="functionid">linprog</span><span class="default">( ... )</span></pre></div></div>
-<div class="refsection"><h3 class="title">Parameters</h3>
+ <div class="refsection"><h3 class="title">Input Parameters</h3>
<dl><dt><span class="term">c :</span>
- <dd><p class="para">a vector of double, contains coefficients of the variables in the objective</p></dd></dt>
+ <dd><p class="para">A vector of doubles, containing the coefficients of the variables in the objective function.</p></dd></dt>
<dt><span class="term">A :</span>
- <dd><p class="para">a matrix of double, represents the linear coefficients in the inequality constraints A⋅x ≤ b.</p></dd></dt>
+ <dd><p class="para">A matrix of doubles, containing the coefficients of linear inequality constraints of size (m X n) where &#0039;m&#0039; is the number of linear inequality constraints.</p></dd></dt>
<dt><span class="term">b :</span>
- <dd><p class="para">a vector of double, represents the linear coefficients in the inequality constraints A⋅x ≤ b.</p></dd></dt>
+ <dd><p class="para">A vector of doubles, related to &#0039;A&#0039; and containing the the Right hand side equation of the linear inequality constraints of size (m X 1).</p></dd></dt>
<dt><span class="term">Aeq :</span>
- <dd><p class="para">a matrix of double, represents the linear coefficients in the equality constraints Aeq⋅x = beq.</p></dd></dt>
+ <dd><p class="para">A matrix of doubles, containing the coefficients of linear equality constraints of size (m1 X n) where &#0039;m1&#0039; is the number of linear equality constraints.</p></dd></dt>
<dt><span class="term">beq :</span>
- <dd><p class="para">a vector of double, represents the linear coefficients in the equality constraints Aeq⋅x = beq.</p></dd></dt>
+ <dd><p class="para">A vector of doubles, related to &#0039;Aeq&#0039; and containing the the Right hand side equation of the linear equality constraints of size (m1 X 1).</p></dd></dt>
<dt><span class="term">lb :</span>
- <dd><p class="para">Lower bounds, specified as a vector or array of double. lb represents the lower bounds elementwise in lb ≤ x ≤ ub.</p></dd></dt>
+ <dd><p class="para">A vector of doubles, containing the lower bounds of the variables of size (1 X n) or (n X 1) where &#0039;n&#0039; is the number of variables.</p></dd></dt>
<dt><span class="term">ub :</span>
- <dd><p class="para">Upper bounds, specified as a vector or array of double. ub represents the upper bounds elementwise in lb ≤ x ≤ ub.</p></dd></dt>
+ <dd><p class="para">A vector of doubles, containing the upper bounds of the variables of size (1 X n) or (n X 1) where &#0039;n&#0039; is the number of variables.</p></dd></dt>
<dt><span class="term">options :</span>
- <dd><p class="para">a list containing the parameters to be set.</p></dd></dt>
+ <dd><p class="para">A list, containing the option for user to specify. See below for details.</p></dd></dt>
<dt><span class="term">file :</span>
- <dd><p class="para">a string describing the path to the mps file.</p></dd></dt>
- <dt><span class="term">xopt :</span>
- <dd><p class="para">a vector of double, the computed solution of the optimization problem.</p></dd></dt>
+ <dd><p class="para">A string describing the path to the mps file.</p></dd></dt></dl></div>
+<div class="refsection"><h3 class="title">Outputs</h3>
+ <dl><dt><span class="term">xopt :</span>
+ <dd><p class="para">A vector of doubles, containing the computed solution of the optimization problem.</p></dd></dt>
<dt><span class="term">fopt :</span>
- <dd><p class="para">a double, the value of the function at x.</p></dd></dt>
- <dt><span class="term">status :</span>
- <dd><p class="para">status flag returned from symphony. See below for details.</p></dd></dt>
+ <dd><p class="para">A double, containing the the function value at x.</p></dd></dt>
+ <dt><span class="term">exitflaf :</span>
+ <dd><p class="para">An integer, containing the flag which denotes the reason for termination of algorithm. See below for details.</p></dd></dt>
<dt><span class="term">output :</span>
- <dd><p class="para">The output data structure contains detailed information about the optimization process. See below for details.</p></dd></dt>
+ <dd><p class="para">A structure, containing the information about the optimization. See below for details.</p></dd></dt>
<dt><span class="term">lambda :</span>
- <dd><p class="para">The structure consist of the Lagrange multipliers at the solution of problem. See below for details.</p></dd></dt></dl></div>
+ <dd><p class="para">A structure, containing the Lagrange multipliers of lower bound, upper bound and constraints at the optimized point. See below for details.</p></dd></dt></dl></div>
+
+
<div class="refsection"><h3 class="title">Description</h3>
- <p class="para">OSI-CLP is used for solving the linear programming problems, OSI-CLP is a library written in C++.
-Search the minimum of a constrained linear programming problem specified by :</p>
- <p class="para"><span><img src='./_LaTeX_linprog.xml_1.png' style='position:relative;top:40px;width:212px;height:88px'/></span></p>
- <p class="para">The routine calls Clp for solving the linear programming problem, Clp is a library written in C++.</p>
- <p class="para">The options allows the user to set various parameters of the Optimization problem.
-It should be defined as type &#0034;list&#0034; and contains the following fields. In the current version it only contains maxiter.
-<ul class="itemizedlist"><li>Syntax : options= list(&#0034;MaxIter&#0034;, [---]);</li>
-<li>MaxIter : a Scalar, containing the Maximum Number of Iteration that the solver should take.</li>
-<li>Default Values : options = list(&#0034;MaxIter&#0034;, [3000]);</li></ul></p>
- <p class="para">The exitflag allows to know the status of the optimization which is given back by CLP.
-<ul class="itemizedlist"><li>exitflag=0 : Optimal Solution Found</li>
-<li>exitflag=1 : Primal Infeasible</li>
-<li>exitflag=2 : Dual Infeasible</li>
-<li>exitflag=3 : Maximum Number of Iterations Exceeded. Output may not be optimal.</li>
-<li>exitflag=4 : Solution Abandoned</li>
-<li>exitflag=5 : Primal objective limit reached.</li>
-<li>exitflag=6 : Dual objective limit reached.</li></ul></p>
- <p class="para">The output data structure contains detailed informations about the optimization process.
-It has type &#0034;struct&#0034; and contains the following fields.
-<ul class="itemizedlist"><li>output.iterations: The number of iterations performed during the search</li>
+ <p class="para">Search the minimum of a constrained linear programming problem specified by :</p>
+ <p class="para"><span><img src='./_LaTeX_linprog.xml_1.png' style='position:relative;top:18px;width:241px;height:94px'/></span></p>
+ <p class="para">OSI-CLP, an optimization library written in C++, is used for solving the linear programming problems.</p>
+<p class="para"><h3 class="title">Options</h3>
+The options allow the user to set various parameters of the Optimization problem. The syntax for the options is given by:</p>
+ <p class="para">options= list(&#0034;MaxIter&#0034;, [---], &#0034;CpuTime&#0034;, [---], &#0034;GradObj&#0034;, ---, &#0034;Hessian&#0034;, ---, &#0034;GradCon&#0034;, ---);</p>
+ <p class="para">The options should be defined as type &#0034;list&#0034; and consist of the following fields:
+<ul class="itemizedlist"><li>MaxIter : A Scalar, specifying the Maximum Number of iterations that the solver should take.</li></ul></p>
+<p class="para">The default values for the various items are given as:</p>
+ <p class="para">options = list(&#0034;MaxIter&#0034;, [3000], &#0034;CpuTime&#0034;, [600]);</p>
+
+ <p class="para">The exitflag allows the user to know the status of the optimization which is returned by Ipopt. The values it can take and what they indicate is described below:
+<ul class="itemizedlist"><li>0 : Optimal Solution Found</li>
+<li>1 : Primal Infeasible</li>
+<li>2 : Dual Infeasible</li>
+<li>3 : Maximum Number of Iterations Exceeded. Output may not be optimal.</li>
+<li>4 : Solution Abandoned</li>
+<li>5 : Primal objective limit reached.</li>
+<li>6 : Dual objective limit reached.</li></ul></p>
+
+ <p class="para">The output data structure contains detailed information about the optimization process.
+It is of type &#0034;struct&#0034; and contains the following fields.
+<ul class="itemizedlist"><li>output.Iterations: The number of iterations performed.</li>
<li>output.constrviolation: The max-norm of the constraint violation.</li></ul></p>
- <p class="para">The lambda data structure contains the Lagrange multipliers at the end
-of optimization. In the current version the values are returned only when the the solution is optimal.
+ <p class="para">The lambda data structure contains the Lagrange multipliers at the end of optimization. In the current version the values are returned only when the the solution is optimal.
It has type &#0034;struct&#0034; and contains the following fields.
<ul class="itemizedlist"><li>lambda.lower: The Lagrange multipliers for variable lower bounds.</li>
<li>lambda.eqlin: The Lagrange multipliers for the linear equality constraints.</li>
<li>lambda.ineqlin: The Lagrange multipliers for the linear inequality constraints.</li></ul></p>
<p class="para"></p></div>
-<div class="refsection"><h3 class="title">Examples</h3>
- <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Optimal problems</span>
-<span class="scilabcomment">//Linear program, linear inequality constraints</span>
+<p class="para">A few examples displaying the various functionalities of linprog have been provided below. You will find a series of problems and the appropriate code snippets to solve them.</p>
+<div class="refsection"><h3 class="title">Example</h3>
+ <p class="para">Here we solve a simple objective function, subjected to six linear inequality constraints.</p>
+ <p class="para">Find x in R^2 such that it minimizes:</p>
+ <p class="para"><span><img src='./_LaTeX_linprog.xml_2.png' style='position:relative;top:73px;width:272px;height:195px'/></span></p>
+ <p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 1: Linear program, linear inequality constraints</span>
<span class="scilabid">c</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilaboperator">/</span><span class="scilabnumber">3</span><span class="scilabopenclose">]</span><span class="scilaboperator">&#0039;</span>
<span class="scilabid">A</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilaboperator">/</span><span class="scilabnumber">4</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilaboperator">/</span><span class="scilabnumber">4</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span>
<span class="scilabid">b</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">2</span><span class="scilabopenclose">]</span>
<span class="scilabopenclose">[</span><span class="scilabid">xopt</span><span class="scilabdefault">,</span><span class="scilabid">fopt</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span><span class="scilabid">linprog</span><span class="scilabopenclose">(</span><span class="scilabid">c</span><span class="scilabdefault">,</span> <span class="scilabid">A</span><span class="scilabdefault">,</span> <span class="scilabid">b</span><span class="scilabopenclose">)</span>
<span class="scilabcomment">// Press ENTER to continue</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
-<div class="refsection"><h3 class="title">Examples</h3>
- <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Linear program with Linear Inequalities and Equalities`</span>
+<div class="refsection"><h3 class="title">Example</h3>
+<p class="para">Here we build up on the previous example by adding linear equality constraints.
+We add the following constraints to the problem specified above:</p>
+ <p class="para"><span><img src='./_LaTeX_linprog.xml_3.png' style='position:relative;top:16px;width:147px;height:40px'/></span></p>
+<p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 2: Linear program with Linear Inequalities and Equalities`</span>
<span class="scilabid">c</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilaboperator">/</span><span class="scilabnumber">3</span><span class="scilabopenclose">]</span><span class="scilaboperator">&#0039;</span>
<span class="scilabid">A</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilaboperator">/</span><span class="scilabnumber">4</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilaboperator">/</span><span class="scilabnumber">4</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span>
<span class="scilabid">b</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">2</span><span class="scilabopenclose">]</span>
@@ -124,8 +137,11 @@ It has type &#0034;struct&#0034; and contains the following fields.
<span class="scilabopenclose">[</span><span class="scilabid">xopt</span><span class="scilabdefault">,</span><span class="scilabid">fopt</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span><span class="scilabid">linprog</span><span class="scilabopenclose">(</span><span class="scilabid">c</span><span class="scilabdefault">,</span> <span class="scilabid">A</span><span class="scilabdefault">,</span> <span class="scilabid">b</span><span class="scilabdefault">,</span> <span class="scilabid">Aeq</span><span class="scilabdefault">,</span> <span class="scilabid">beq</span><span class="scilabopenclose">)</span>
<span class="scilabcomment">// Press ENTER to continue</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
-<div class="refsection"><h3 class="title">Examples</h3>
- <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Linear program with all constraint types</span>
+<div class="refsection"><h3 class="title">Example</h3>
+<p class="para">In this example, we proceed to add the upper and lower bounds to the objective function.</p>
+ <p class="para"><span><img src='./_LaTeX_linprog.xml_4.png' style='position:relative;top:17px;width:162px;height:42px'/></span></p>
+<p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 3: Linear program with all constraint types</span>
<span class="scilabid">c</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilaboperator">/</span><span class="scilabnumber">3</span><span class="scilabopenclose">]</span><span class="scilaboperator">&#0039;</span>
<span class="scilabid">A</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilaboperator">/</span><span class="scilabnumber">4</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilaboperator">/</span><span class="scilabnumber">4</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span>
<span class="scilabid">b</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">2</span><span class="scilabopenclose">]</span>
@@ -135,9 +151,11 @@ It has type &#0034;struct&#0034; and contains the following fields.
<span class="scilabid">ub</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1.5</span><span class="scilabdefault">,</span><span class="scilabnumber">1.25</span><span class="scilabopenclose">]</span>
<span class="scilabopenclose">[</span><span class="scilabid">xopt</span><span class="scilabdefault">,</span><span class="scilabid">fopt</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span><span class="scilabid">linprog</span><span class="scilabopenclose">(</span><span class="scilabid">c</span><span class="scilabdefault">,</span> <span class="scilabid">A</span><span class="scilabdefault">,</span> <span class="scilabid">b</span><span class="scilabdefault">,</span> <span class="scilabid">Aeq</span><span class="scilabdefault">,</span> <span class="scilabid">beq</span><span class="scilabdefault">,</span> <span class="scilabid">lb</span><span class="scilabdefault">,</span> <span class="scilabid">ub</span><span class="scilabopenclose">)</span>
<span class="scilabcomment">// Press ENTER to continue</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+<div class="refsection"><h3 class="title">Example</h3>
-<div class="refsection"><h3 class="title">Examples</h3>
- <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Primal Infeasible Problem</span>
+ <p class="para">Primal Infeasible Problems: Find x in R^3 such that it minimizes:</p>
+ <p class="para"><span><img src='./_LaTeX_linprog.xml_5.png' style='position:relative;top:27px;width:265px;height:176px'/></span></p>
+ <p class="para"></p> <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 4: Primal Infeasible Problem</span>
<span class="scilabid">c</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilaboperator">&#0039;</span>
<span class="scilabid">A</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span>
<span class="scilabid">b</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">4</span><span class="scilabopenclose">]</span>
@@ -148,8 +166,12 @@ It has type &#0034;struct&#0034; and contains the following fields.
<span class="scilabopenclose">[</span><span class="scilabid">xopt</span><span class="scilabdefault">,</span><span class="scilabid">fopt</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span> <span class="scilabid">linprog</span><span class="scilabopenclose">(</span><span class="scilabid">c</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabid">Aeq</span><span class="scilabdefault">,</span><span class="scilabid">beq</span><span class="scilabdefault">,</span><span class="scilabid">lb</span><span class="scilabdefault">,</span><span class="scilabid">ub</span><span class="scilabopenclose">)</span>
<span class="scilabcomment">// Press ENTER to continue</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
-<div class="refsection"><h3 class="title">Examples</h3>
- <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Dual Infeasible Problem</span>
+<div class="refsection"><h3 class="title">Example</h3>
+
+ <p class="para">Unbounded Problems: Find x in R^3 such that it minimizes:</p>
+ <p class="para"><span><img src='./_LaTeX_linprog.xml_6.png' style='position:relative;top:27px;width:266px;height:156px'/></span></p>
+ <p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 5: Unbounded Problem</span>
<span class="scilabid">c</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilabnumber">5</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">7</span><span class="scilabopenclose">]</span><span class="scilaboperator">&#0039;</span>
<span class="scilabid">A</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">4</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">4</span><span class="scilabopenclose">]</span>
<span class="scilabid">b</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">8</span><span class="scilabdefault">,</span><span class="scilabnumber">5</span><span class="scilabopenclose">]</span>
@@ -160,11 +182,15 @@ It has type &#0034;struct&#0034; and contains the following fields.
<span class="scilabopenclose">[</span><span class="scilabid">xopt</span><span class="scilabdefault">,</span><span class="scilabid">fopt</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span> <span class="scilabid">linprog</span><span class="scilabopenclose">(</span><span class="scilabid">c</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabid">Aeq</span><span class="scilabdefault">,</span><span class="scilabid">beq</span><span class="scilabdefault">,</span><span class="scilabid">lb</span><span class="scilabdefault">,</span><span class="scilabid">ub</span><span class="scilabopenclose">)</span>
<span class="scilabcomment">// Press ENTER to continue</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
-<div class="refsection"><h3 class="title">Examples</h3>
+<div class="refsection"><h3 class="title">Example</h3>
<div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabid">filepath</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://get_absolute_file_path">get_absolute_file_path</a><span class="scilabopenclose">(</span><span class="scilabstring">&#0039;</span><span class="scilabstring">linprog.dem.sce</span><span class="scilabstring">&#0039;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
<span class="scilabid">filepath</span> <span class="scilaboperator">=</span> <span class="scilabid">filepath</span> <span class="scilaboperator">+</span> <span class="scilabstring">&#0034;</span><span class="scilabstring">exmip1.mps</span><span class="scilabstring">&#0034;</span>
<span class="scilabopenclose">[</span><span class="scilabid">xopt</span><span class="scilabdefault">,</span><span class="scilabid">fopt</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span><span class="scilabid">linprog</span><span class="scilabopenclose">(</span><span class="scilabid">filepath</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+
+
+
<div class="refsection"><h3 class="title">Authors</h3>
<ul class="itemizedlist"><li class="member">Bhanu Priya Sayal, Guru Pradeep Reddy</li></ul></div>
<br />
@@ -174,11 +200,11 @@ It has type &#0034;struct&#0034; and contains the following fields.
<tr><td colspan="3" class="next"><a href="http://bugzilla.scilab.org/enter_bug.cgi?product=Scilab%20software&component=Documentation%20pages" class="ulink">Report an issue</a></td></tr>
<tr>
<td width="30%">
- <span class="previous"><a href="fminunc.html">&lt;&lt; fminunc</a></span>
+ <span class="previous"><a href="intqpipopt.html">&lt;&lt; intqpipopt</a></span>
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a></span>
+ <span class="top"><a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/lsqlin.html b/help/en_US/scilab_en_US_help/lsqlin.html
index 5a26c54..07a5369 100644
--- a/help/en_US/scilab_en_US_help/lsqlin.html
+++ b/help/en_US/scilab_en_US_help/lsqlin.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a></span>
+ <span class="top"><a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; lsqlin</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; lsqlin</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">lsqlin</h1>
@@ -41,67 +41,66 @@
<span class="default">xopt</span><span class="default"> = </span><span class="functionid">lsqlin</span><span class="default">(</span><span class="default">C</span><span class="default">,</span><span class="default">d</span><span class="default">,</span><span class="default">A</span><span class="default">,</span><span class="default">b</span><span class="default">,</span><span class="default">Aeq</span><span class="default">,</span><span class="default">beq</span><span class="default">)</span>
<span class="default">xopt</span><span class="default"> = </span><span class="functionid">lsqlin</span><span class="default">(</span><span class="default">C</span><span class="default">,</span><span class="default">d</span><span class="default">,</span><span class="default">A</span><span class="default">,</span><span class="default">b</span><span class="default">,</span><span class="default">Aeq</span><span class="default">,</span><span class="default">beq</span><span class="default">,</span><span class="default">lb</span><span class="default">,</span><span class="default">ub</span><span class="default">)</span>
<span class="default">xopt</span><span class="default"> = </span><span class="functionid">lsqlin</span><span class="default">(</span><span class="default">C</span><span class="default">,</span><span class="default">d</span><span class="default">,</span><span class="default">A</span><span class="default">,</span><span class="default">b</span><span class="default">,</span><span class="default">Aeq</span><span class="default">,</span><span class="default">beq</span><span class="default">,</span><span class="default">lb</span><span class="default">,</span><span class="default">ub</span><span class="default">,</span><span class="default">x0</span><span class="default">)</span>
-<span class="default">xopt</span><span class="default"> = </span><span class="functionid">lsqlin</span><span class="default">(</span><span class="default">C</span><span class="default">,</span><span class="default">d</span><span class="default">,</span><span class="default">A</span><span class="default">,</span><span class="default">b</span><span class="default">,</span><span class="default">Aeq</span><span class="default">,</span><span class="default">beq</span><span class="default">,</span><span class="default">lb</span><span class="default">,</span><span class="default">ub</span><span class="default">,</span><span class="default">x0</span><span class="default">,</span><span class="default">param</span><span class="default">)</span>
+<span class="default">xopt</span><span class="default"> = </span><span class="functionid">lsqlin</span><span class="default">(</span><span class="default">C</span><span class="default">,</span><span class="default">d</span><span class="default">,</span><span class="default">A</span><span class="default">,</span><span class="default">b</span><span class="default">,</span><span class="default">Aeq</span><span class="default">,</span><span class="default">beq</span><span class="default">,</span><span class="default">lb</span><span class="default">,</span><span class="default">ub</span><span class="default">,</span><span class="default">x0</span><span class="default">,</span><span class="default">options</span><span class="default">)</span>
<span class="default">[</span><span class="default">xopt</span><span class="default">,</span><span class="default">resnorm</span><span class="default">,</span><span class="default">residual</span><span class="default">,</span><span class="default">exitflag</span><span class="default">,</span><span class="default">output</span><span class="default">,</span><span class="default">lambda</span><span class="default">] = </span><span class="functionid">lsqlin</span><span class="default">( ... )</span></pre></div></div>
-<div class="refsection"><h3 class="title">Parameters</h3>
+<div class="refsection"><h3 class="title">Input Parameters</h3>
<dl><dt><span class="term">C :</span>
- <dd><p class="para">a matrix of double, represents the multiplier of the solution x in the expression C⋅x - d. Number of columns in C is equal to the number of elements in x.</p></dd></dt>
+ <dd><p class="para">A matrix of doubles, representing the multiplier of x in the expression C⋅x - d. The number of columns in C is equal to the number of elements in x.</p></dd></dt>
<dt><span class="term">d :</span>
- <dd><p class="para">a vector of double, represents the additive constant term in the expression C⋅x - d. Number of elements in d is equal to the number of rows in C matrix.</p></dd></dt>
+ <dd><p class="para">A vector of doubles, representing the additive constant term in the expression C⋅x - d. The number of elements in d is equal to the number of rows in C matrix.</p></dd></dt>
<dt><span class="term">A :</span>
- <dd><p class="para">a matrix of double, represents the linear coefficients in the inequality constraints A⋅x ≤ b.</p></dd></dt>
+ <dd><p class="para">A matrix of doubles, containing the coefficients of linear inequality constraints of size (m X n) where &#0039;m&#0039; is the number of linear inequality constraints.</p></dd></dt>
<dt><span class="term">b :</span>
- <dd><p class="para">a vector of double, represents the linear coefficients in the inequality constraints A⋅x ≤ b.</p></dd></dt>
+ <dd><p class="para">A vector of doubles, related to &#0039;A&#0039; and represents the linear coefficients in the linear inequality constraints of size (m X 1).</p></dd></dt>
<dt><span class="term">Aeq :</span>
- <dd><p class="para">a matrix of double, represents the linear coefficients in the equality constraints Aeq⋅x = beq.</p></dd></dt>
+ <dd><p class="para">A matrix of doubles, containing the coefficients of linear equality constraints of size (m1 X n) where &#0039;m1&#0039; is the number of linear equality constraints.</p></dd></dt>
<dt><span class="term">beq :</span>
- <dd><p class="para">a vector of double, represents the linear coefficients in the equality constraints Aeq⋅x = beq.</p></dd></dt>
+ <dd><p class="para">A vector of double, vector of doubles, related to &#0039;Aeq&#0039; and represents the linear coefficients in the equality constraints of size (m1 X 1).</p></dd></dt>
<dt><span class="term">lb :</span>
- <dd><p class="para">a vector of double, contains lower bounds of the variables.</p></dd></dt>
+ <dd><p class="para">A vector of doubles, containing the lower bounds of the variables of size (1 X n) or (n X 1) where &#0039;n&#0039; is the number of variables.</p></dd></dt>
<dt><span class="term">ub :</span>
- <dd><p class="para">a vector of double, contains upper bounds of the variables.</p></dd></dt>
+ <dd><p class="para">A vector of doubles, containing the upper bounds of the variables of size (1 X n) or (n X 1) where &#0039;n&#0039; is the number of variables.</p></dd></dt>
<dt><span class="term">x0 :</span>
- <dd><p class="para">a vector of double, contains initial guess of variables.</p></dd></dt>
- <dt><span class="term">param :</span>
- <dd><p class="para">a list containing the parameters to be set.</p></dd></dt>
- <dt><span class="term">xopt :</span>
- <dd><p class="para">a vector of double, the computed solution of the optimization problem.</p></dd></dt>
+ <dd><p class="para">A vector of doubles, containing the starting values of variables of size (1 X n) or (n X 1) where &#0039;n&#0039; is the number of variables.</p></dd></dt>
+ <dt><span class="term">options :</span>
+ <dd><p class="para">A list, containing the option for user to specify. See below for details.</p></dd></dt></dl></div>
+<div class="refsection"><h3 class="title">Outputs</h3>
+ <dl><dt><span class="term">xopt :</span>
+ <dd><p class="para">A vector of doubles, containing the computed solution of the optimization problem.</p></dd></dt>
<dt><span class="term">resnorm :</span>
- <dd><p class="para">a double, objective value returned as the scalar value norm(C⋅x-d)^2.</p></dd></dt>
+ <dd><p class="para">A double, containing the objective value returned as a scalar value norm(C⋅x-d)^2.</p></dd></dt>
<dt><span class="term">residual :</span>
- <dd><p class="para">a vector of double, solution residuals returned as the vector d-C⋅x.</p></dd></dt>
+ <dd><p class="para">A vector of doubles, containing the solution residuals, returned as a vector d-C⋅x.</p></dd></dt>
<dt><span class="term">exitflag :</span>
- <dd><p class="para">The exit status. See below for details.</p></dd></dt>
+ <dd><p class="para">An integer, containing the flag which denotes the reason for termination of algorithm. See below for details.</p></dd></dt>
<dt><span class="term">output :</span>
- <dd><p class="para">The structure consist of statistics about the optimization. See below for details.</p></dd></dt>
+ <dd><p class="para">A structure, containing the information about the optimization. See below for details.</p></dd></dt>
<dt><span class="term">lambda :</span>
- <dd><p class="para">The structure consist of the Lagrange multipliers at the solution of problem. See below for details.</p></dd></dt></dl></div>
-
+ <dd><p class="para">A structure, containing the Lagrange multipliers of the lower bounds, upper bounds and constraints at the optimized point. See below for details.</p></dd></dt></dl></div>
<div class="refsection"><h3 class="title">Description</h3>
- <p class="para">Search the minimum of a constrained linear least square problem specified by :</p>
- <p class="para"><span><img src='./_LaTeX_lsqlin.xml_1.png' style='position:relative;top:41px;width:230px;height:90px'/></span></p>
- <p class="para">The routine calls Ipopt for solving the linear least square problem, Ipopt is a library written in C++.</p>
- <p class="para">The options allows the user to set various parameters of the Optimization problem.
-It should be defined as type &#0034;list&#0034; and contains the following fields.
-<ul class="itemizedlist"><li>Syntax : options= list(&#0034;MaxIter&#0034;, [---], &#0034;CpuTime&#0034;, [---]);</li>
-<li>MaxIter : a Scalar, containing the Maximum Number of Iteration that the solver should take.</li>
-<li>CpuTime : a Scalar, containing the Maximum amount of CPU Time that the solver should take.</li>
-<li>Default Values : options = list(&#0034;MaxIter&#0034;, [3000], &#0034;CpuTime&#0034;, [600]);</li></ul></p>
- <p class="para">The exitflag allows to know the status of the optimization which is given back by Ipopt.
-<ul class="itemizedlist"><li>exitflag=0 : Optimal Solution Found</li>
-<li>exitflag=1 : Maximum Number of Iterations Exceeded. Output may not be optimal.</li>
-<li>exitflag=2 : Maximum CPU Time exceeded. Output may not be optimal.</li>
-<li>exitflag=3 : Stop at Tiny Step.</li>
-<li>exitflag=4 : Solved To Acceptable Level.</li>
-<li>exitflag=5 : Converged to a point of local infeasibility.</li></ul></p>
- <p class="para">For more details on exitflag see the ipopt documentation, go to http://www.coin-or.org/Ipopt/documentation/</p>
- <p class="para">The output data structure contains detailed informations about the optimization process.
-It has type &#0034;struct&#0034; and contains the following fields.
-<ul class="itemizedlist"><li>output.iterations: The number of iterations performed during the search</li>
+ <p class="para">Search the minimum of a constrained linear least square problem specified by:</p>
+ <p class="para"><span><img src='./_LaTeX_lsqlin.xml_1.png' style='position:relative;top:41px;width:277px;height:90px'/></span></p>
+ <p class="para">lsqlin calls Ipopt, an optimization library written in C++, to solve the linear least squares problem.</p>
+ <p class="para">The options should be defined as type &#0034;list&#0034; and consist of the following fields:</p>
+ <p class="para">options= list(&#0034;MaxIter&#0034;, [---], &#0034;CpuTime&#0034;, [---]);</p>
+ <p class="para"><ul class="itemizedlist"><li>MaxIter : A Scalar, specifying the maximum number of iterations that the solver should take.</li>
+<li>CpuTime : A Scalar, specifying the maximum amount of CPU time in seconds that the solver should take.</li></ul></p>
+ <p class="para">The default values for the various items are given as:</p>
+ <p class="para">options = list(&#0034;MaxIter&#0034;, [3000], &#0034;CpuTime&#0034;, [600]);</p>
+ <p class="para">The exitflag allows the user to know the status of the optimization which is returned by Ipopt. The values it can take and what they indicate is described below:
+<ul class="itemizedlist"><li>0 : Optimal Solution Found</li>
+<li>1 : Maximum Number of Iterations Exceeded. Output may not be optimal.</li>
+<li>2 : Maximum amount of CPU Time exceeded. Output may not be optimal.</li>
+<li>3 : Stop at Tiny Step.</li>
+<li>4 : Solved To Acceptable Level.</li>
+<li>5 : Converged to a point of local infeasibility.</li></ul></p>
+ <p class="para">For more details on exitflag, see the Ipopt documentation which can be found on http://www.coin-or.org/Ipopt/documentation/</p>
+ <p class="para">The output data structure contains detailed information about the optimization process.
+It is of type &#0034;struct&#0034; and contains the following fields.
+<ul class="itemizedlist"><li>output.iterations: The number of iterations performed.</li>
<li>output.constrviolation: The max-norm of the constraint violation.</li></ul></p>
- <p class="para">The lambda data structure contains the Lagrange multipliers at the end
-of optimization. In the current version the values are returned only when the the solution is optimal.
+ <p class="para">The lambda data structure contains the Lagrange multipliers at the end of optimization. In the current version, the values are returned only when the the solution is optimal.
It has type &#0034;struct&#0034; and contains the following fields.
<ul class="itemizedlist"><li>lambda.lower: The Lagrange multipliers for the lower bound constraints.</li>
<li>lambda.upper: The Lagrange multipliers for the upper bound constraints.</li>
@@ -109,23 +108,41 @@ It has type &#0034;struct&#0034; and contains the following fields.
<li>lambda.ineqlin: The Lagrange multipliers for the linear inequality constraints.</li></ul></p>
<p class="para"></p></div>
-<div class="refsection"><h3 class="title">Examples</h3>
- <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//A simple linear least square example</span>
-<span class="scilabid">C</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span> <span class="scilabnumber">2</span> <span class="scilabnumber">0</span><span class="scilabdefault">;</span>
-<span class="scilaboperator">-</span><span class="scilabnumber">1</span> <span class="scilabnumber">1</span><span class="scilabdefault">;</span>
-<span class="scilabnumber">0</span> <span class="scilabnumber">2</span><span class="scilabopenclose">]</span>
-<span class="scilabid">d</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span>
-<span class="scilabnumber">0</span>
-<span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
-<span class="scilabid">A</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">10</span> <span class="scilaboperator">-</span><span class="scilabnumber">2</span><span class="scilabdefault">;</span>
-<span class="scilaboperator">-</span><span class="scilabnumber">2</span> <span class="scilabnumber">10</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
-<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">4</span>
-<span class="scilaboperator">-</span><span class="scilabnumber">4</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
-<span class="scilabopenclose">[</span><span class="scilabid">xopt</span><span class="scilabdefault">,</span><span class="scilabid">resnorm</span><span class="scilabdefault">,</span><span class="scilabid">residual</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">lsqlin</span><span class="scilabopenclose">(</span><span class="scilabid">C</span><span class="scilabdefault">,</span><span class="scilabid">d</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabopenclose">)</span>
-<span class="scilabcomment">// Press ENTER to continue</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
-
-<div class="refsection"><h3 class="title">Examples</h3>
- <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//A basic example for equality, inequality constraints and variable bounds</span>
+
+<p class="para">A few examples displaying the various functionalities of lsqlin have been provided below. You will find a series of problems and the appropriate code snippets to solve them.</p>
+<div class="refsection"><h3 class="title">Example</h3>
+ <p class="para">We begin with a simple objective function subjected to three inequality constraints.</p>
+ <p class="para"><span><img src='./_LaTeX_lsqlin.xml_2.png' style='position:relative;top:27px;width:330px;height:225px'/></span></p>
+ <p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 1:An example with inequality constraints.</span>
+<span class="scilabcomment">//Initializing C and D.</span>
+<span class="scilabid">C</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span> <span class="scilabnumber">1</span> <span class="scilabnumber">1</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">1</span> <span class="scilabnumber">1</span> <span class="scilabnumber">0</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">0</span> <span class="scilabnumber">1</span> <span class="scilabnumber">1</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">1</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">1</span><span class="scilabopenclose">]</span>
+<span class="scilabid">d</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">89</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">67</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">53</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">35</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">20</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//We specify the linear inequality constraints below.</span>
+<span class="scilabid">A</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">3</span> <span class="scilabnumber">2</span> <span class="scilabnumber">1</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">2</span> <span class="scilabnumber">3</span> <span class="scilabnumber">4</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">1</span> <span class="scilabnumber">2</span> <span class="scilabnumber">3</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">191</span>
+<span class="scilabnumber">209</span>
+<span class="scilabnumber">162</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Run lsqlin</span>
+<span class="scilabopenclose">[</span><span class="scilabid">xopt</span><span class="scilabdefault">,</span><span class="scilabid">resnorm</span><span class="scilabdefault">,</span><span class="scilabid">residual</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">lsqlin</span><span class="scilabopenclose">(</span><span class="scilabid">C</span><span class="scilabdefault">,</span><span class="scilabid">d</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Example</h3>
+ <p class="para">Here we build up on the previous example by adding equality constraints.
+We add the following constraint to the problem specified above:</p>
+ <p class="para"><span><img src='./_LaTeX_lsqlin.xml_3.png' style='position:relative;top:8px;width:161px;height:24px'/></span></p>
+ <p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 2: Using inequality and equality constraints.</span>
+<span class="scilabcomment">//Initializing C and D.</span>
<span class="scilabid">C</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span> <span class="scilabnumber">1</span> <span class="scilabnumber">1</span><span class="scilabdefault">;</span>
<span class="scilabnumber">1</span> <span class="scilabnumber">1</span> <span class="scilabnumber">0</span><span class="scilabdefault">;</span>
<span class="scilabnumber">0</span> <span class="scilabnumber">1</span> <span class="scilabnumber">1</span><span class="scilabdefault">;</span>
@@ -135,19 +152,117 @@ It has type &#0034;struct&#0034; and contains the following fields.
<span class="scilabnumber">67</span><span class="scilabdefault">;</span>
<span class="scilabnumber">53</span><span class="scilabdefault">;</span>
<span class="scilabnumber">35</span><span class="scilabdefault">;</span>
-<span class="scilabnumber">20</span><span class="scilabdefault">;</span><span class="scilabopenclose">]</span>
+<span class="scilabnumber">20</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//We specify the linear inequality constraints below.</span>
<span class="scilabid">A</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">3</span> <span class="scilabnumber">2</span> <span class="scilabnumber">1</span><span class="scilabdefault">;</span>
<span class="scilabnumber">2</span> <span class="scilabnumber">3</span> <span class="scilabnumber">4</span><span class="scilabdefault">;</span>
<span class="scilabnumber">1</span> <span class="scilabnumber">2</span> <span class="scilabnumber">3</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">191</span>
<span class="scilabnumber">209</span>
<span class="scilabnumber">162</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//We specify the linear equality constraints below.</span>
<span class="scilabid">Aeq</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span> <span class="scilabnumber">2</span> <span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
<span class="scilabid">beq</span> <span class="scilaboperator">=</span> <span class="scilabnumber">10</span><span class="scilabdefault">;</span>
-<span class="scilabid">lb</span> <span class="scilaboperator">=</span> <a class="scilabmacro" href="scilab://repmat">repmat</a><span class="scilabopenclose">(</span><span class="scilabnumber">0.1</span><span class="scilabdefault">,</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
-<span class="scilabid">ub</span> <span class="scilaboperator">=</span> <a class="scilabmacro" href="scilab://repmat">repmat</a><span class="scilabopenclose">(</span><span class="scilabnumber">4</span><span class="scilabdefault">,</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Run lsqlin</span>
+<span class="scilabopenclose">[</span><span class="scilabid">xopt</span><span class="scilabdefault">,</span><span class="scilabid">resnorm</span><span class="scilabdefault">,</span><span class="scilabid">residual</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">lsqlin</span><span class="scilabopenclose">(</span><span class="scilabid">C</span><span class="scilabdefault">,</span><span class="scilabid">d</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabid">Aeq</span><span class="scilabdefault">,</span><span class="scilabid">beq</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Example</h3>
+ <p class="para">In this example, we proceed to add the upper and lower bounds to the objective function.</p>
+ <p class="para"><span><img src='./_LaTeX_lsqlin.xml_4.png' style='position:relative;top:27px;width:129px;height:62px'/></span></p>
+ <p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 3: Using equality, inequality constraints and variable bounds</span>
+<span class="scilabcomment">//Initializing C and D.</span>
+<span class="scilabid">C</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span> <span class="scilabnumber">1</span> <span class="scilabnumber">1</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">1</span> <span class="scilabnumber">1</span> <span class="scilabnumber">0</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">0</span> <span class="scilabnumber">1</span> <span class="scilabnumber">1</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">1</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">1</span><span class="scilabopenclose">]</span>
+<span class="scilabid">d</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">89</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">67</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">53</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">35</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">20</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//We specify the linear inequality constraints below.</span>
+<span class="scilabid">A</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">3</span> <span class="scilabnumber">2</span> <span class="scilabnumber">1</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">2</span> <span class="scilabnumber">3</span> <span class="scilabnumber">4</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">1</span> <span class="scilabnumber">2</span> <span class="scilabnumber">3</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">191</span>
+<span class="scilabnumber">209</span>
+<span class="scilabnumber">162</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//We specify the linear equality constraints below.</span>
+<span class="scilabid">Aeq</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span> <span class="scilabnumber">2</span> <span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">beq</span> <span class="scilaboperator">=</span> <span class="scilabnumber">10</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//The upper and lower bounds for the objective function are defined in simple vectors as shown below.</span>
+<span class="scilabid">lb</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">0.1</span><span class="scilabdefault">,</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">ub</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">4</span><span class="scilabdefault">,</span><span class="scilabnumber">5</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Run lsqlin</span>
<span class="scilabopenclose">[</span><span class="scilabid">xopt</span><span class="scilabdefault">,</span><span class="scilabid">resnorm</span><span class="scilabdefault">,</span><span class="scilabid">residual</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">lsqlin</span><span class="scilabopenclose">(</span><span class="scilabid">C</span><span class="scilabdefault">,</span><span class="scilabid">d</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabid">Aeq</span><span class="scilabdefault">,</span><span class="scilabid">beq</span><span class="scilabdefault">,</span><span class="scilabid">lb</span><span class="scilabdefault">,</span><span class="scilabid">ub</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+<div class="refsection"><h3 class="title">Example</h3>
+ <p class="para">In this example, we proceed to provide an initial value for x to facilitate the computation. We also further enhance the functionality of lsqlin by setting input options. This provides us with the ability to control the solver parameters such as the maximum number of solver iterations and the max. CPU time allowed for the computation.</p>
+ <p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 4: Using equality, inequality constraints and variable bounds, initializing x and options.</span>
+<span class="scilabcomment">//Initializing C and D.</span>
+<span class="scilabid">C</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span> <span class="scilabnumber">1</span> <span class="scilabnumber">1</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">1</span> <span class="scilabnumber">1</span> <span class="scilabnumber">0</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">0</span> <span class="scilabnumber">1</span> <span class="scilabnumber">1</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">1</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">1</span><span class="scilabopenclose">]</span>
+<span class="scilabid">d</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">89</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">67</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">53</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">35</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">20</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//We specify the linear inequality constraints below.</span>
+<span class="scilabid">A</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">3</span> <span class="scilabnumber">2</span> <span class="scilabnumber">1</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">2</span> <span class="scilabnumber">3</span> <span class="scilabnumber">4</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">1</span> <span class="scilabnumber">2</span> <span class="scilabnumber">3</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">191</span>
+<span class="scilabnumber">209</span>
+<span class="scilabnumber">162</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//We specify the linear equality constraints below.</span>
+<span class="scilabid">Aeq</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span> <span class="scilabnumber">2</span> <span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">beq</span> <span class="scilaboperator">=</span> <span class="scilabnumber">10</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//The upper and lower bounds for the objective function are defined in simple vectors as shown below.</span>
+<span class="scilabid">lb</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">0.1</span><span class="scilabdefault">,</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">ub</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">4</span><span class="scilabdefault">,</span><span class="scilabnumber">5</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Initializing x.</span>
+<span class="scilabid">x0</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilabnumber">3</span><span class="scilabopenclose">]</span>
+<span class="scilabcomment">//Setting the options</span>
+<span class="scilabid">options</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">MaxIter</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabopenclose">[</span><span class="scilabnumber">5000</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span> <span class="scilabstring">&#0034;</span><span class="scilabstring">CpuTime</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1000</span><span class="scilabopenclose">]</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Run lsqlin</span>
+<span class="scilabopenclose">[</span><span class="scilabid">xopt</span><span class="scilabdefault">,</span><span class="scilabid">resnorm</span><span class="scilabdefault">,</span><span class="scilabid">residual</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">lsqlin</span><span class="scilabopenclose">(</span><span class="scilabid">C</span><span class="scilabdefault">,</span><span class="scilabid">d</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabid">Aeq</span><span class="scilabdefault">,</span><span class="scilabid">beq</span><span class="scilabdefault">,</span><span class="scilabid">lb</span><span class="scilabdefault">,</span><span class="scilabid">ub</span><span class="scilabdefault">,</span><span class="scilabid">x0</span><span class="scilabdefault">,</span><span class="scilabid">options</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Example</h3>
+ <p class="para">Infeasible Problems: Find x in R^3 such that it minimizes:
+We add the following constraint to the objective function specified above:</p>
+ <p class="para"><span><img src='./_LaTeX_lsqlin.xml_5.png' style='position:relative;top:27px;width:357px;height:62px'/></span></p>
+ <p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 5: Infeasible problem</span>
+<span class="scilabcomment">//Initializing C and D.</span>
+<span class="scilabid">C</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span> <span class="scilabnumber">1</span> <span class="scilabnumber">1</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">1</span> <span class="scilabnumber">1</span> <span class="scilabnumber">0</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">0</span> <span class="scilabnumber">1</span> <span class="scilabnumber">1</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">1</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">1</span><span class="scilabopenclose">]</span>
+<span class="scilabid">d</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">89</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">67</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">53</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">35</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">20</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//We specify the linear inequality constraints below.</span>
+<span class="scilabid">A</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">3</span> <span class="scilabnumber">2</span> <span class="scilabnumber">1</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">2</span> <span class="scilabnumber">3</span> <span class="scilabnumber">4</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">1</span> <span class="scilabnumber">2</span> <span class="scilabnumber">3</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">191</span>
+<span class="scilabnumber">209</span>
+<span class="scilabnumber">162</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//We specify the linear equality constraints below.</span>
+<span class="scilabid">Aeq</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span> <span class="scilabnumber">2</span> <span class="scilabnumber">3</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">beq</span> <span class="scilaboperator">=</span> <span class="scilabnumber">200</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Run lsqlin</span>
+<span class="scilabopenclose">[</span><span class="scilabid">xopt</span><span class="scilabdefault">,</span><span class="scilabid">resnorm</span><span class="scilabdefault">,</span><span class="scilabid">residual</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">lsqlin</span><span class="scilabopenclose">(</span><span class="scilabid">C</span><span class="scilabdefault">,</span><span class="scilabid">d</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabid">Aeq</span><span class="scilabdefault">,</span><span class="scilabid">beq</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
<div class="refsection"><h3 class="title">Authors</h3>
<ul class="itemizedlist"><li class="member">Harpreet Singh</li></ul></div>
<br />
@@ -161,7 +276,7 @@ It has type &#0034;struct&#0034; and contains the following fields.
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a></span>
+ <span class="top"><a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/lsqnonlin.html b/help/en_US/scilab_en_US_help/lsqnonlin.html
index f2c32ce..b0b6219 100644
--- a/help/en_US/scilab_en_US_help/lsqnonlin.html
+++ b/help/en_US/scilab_en_US_help/lsqnonlin.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a></span>
+ <span class="top"><a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; lsqnonlin</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; lsqnonlin</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">lsqnonlin</h1>
@@ -45,63 +45,92 @@
<span class="default">[</span><span class="default">xopt</span><span class="default">,</span><span class="default">resnorm</span><span class="default">,</span><span class="default">residual</span><span class="default">,</span><span class="default">exitflag</span><span class="default">] = </span><span class="functionid">lsqnonlin</span><span class="default">( ... )</span>
<span class="default">[</span><span class="default">xopt</span><span class="default">,</span><span class="default">resnorm</span><span class="default">,</span><span class="default">residual</span><span class="default">,</span><span class="default">exitflag</span><span class="default">,</span><span class="default">output</span><span class="default">,</span><span class="default">lambda</span><span class="default">,</span><span class="default">gradient</span><span class="default">] = </span><span class="functionid">lsqnonlin</span><span class="default">( ... )</span></pre></div></div>
-<div class="refsection"><h3 class="title">Parameters</h3>
+<div class="refsection"><h3 class="title">Input Parameters</h3>
<dl><dt><span class="term">fun :</span>
- <dd><p class="para">a function, representing the objective function and gradient (if given) of the problem</p></dd></dt>
+ <dd><p class="para">A function, representing the objective function and gradient (if given) of the problem.</p></dd></dt>
<dt><span class="term">x0 :</span>
- <dd><p class="para">a vector of double, contains initial guess of variables.</p></dd></dt>
+ <dd><p class="para">A vector of doubles, containing the starting values of variables of size (1 X n) or (n X 1) where &#0039;n&#0039; is the number of variables.</p></dd></dt>
<dt><span class="term">lb :</span>
- <dd><p class="para">a vector of double, contains lower bounds of the variables.</p></dd></dt>
+ <dd><p class="para">A vector of doubles, containing the lower bounds of the variables of size (1 X n) or (n X 1) where &#0039;n&#0039; is the number of variables.</p></dd></dt>
<dt><span class="term">ub :</span>
- <dd><p class="para">a vector of double, contains upper bounds of the variables.</p></dd></dt>
+ <dd><p class="para">A vector of doubles, containing the upper bounds of the variables of size (1 X n) or (n X 1) where &#0039;n&#0039; is the number of variables.</p></dd></dt>
<dt><span class="term">options :</span>
- <dd><p class="para">a list containing the parameters to be set.</p></dd></dt>
- <dt><span class="term">xopt :</span>
- <dd><p class="para">a vector of double, the computed solution of the optimization problem.</p></dd></dt>
+ <dd><p class="para">A list, containing the option for user to specify. See below for details.</p></dd></dt></dl></div>
+<div class="refsection"><h3 class="title">Outputs</h3>
+ <dl><dt><span class="term">xopt :</span>
+ <dd><p class="para">A vector of doubles, containing the computed solution of the optimization problem.</p></dd></dt>
<dt><span class="term">resnorm :</span>
- <dd><p class="para">a double, objective value returned as the scalar value i.e. sum(fun(x).^2).</p></dd></dt>
+ <dd><p class="para">A double, containing the objective value returned as a scalar value i.e. sum(fun(x).^2).</p></dd></dt>
<dt><span class="term">residual :</span>
- <dd><p class="para">a vector of double, solution of objective function i.e. fun(x).</p></dd></dt>
+ <dd><p class="para">A vector of doubles, containing the solution of the objective function, returned as a vector i.e. fun(x).</p></dd></dt>
<dt><span class="term">exitflag :</span>
- <dd><p class="para">The exit status. See below for details.</p></dd></dt>
+ <dd><p class="para">An integer, containing the flag which denotes the reason for termination of algorithm. See below for details.</p></dd></dt>
<dt><span class="term">output :</span>
- <dd><p class="para">The structure consist of statistics about the optimization. See below for details.</p></dd></dt>
+ <dd><p class="para">A structure, containing the information about the optimization. See below for details.</p></dd></dt>
<dt><span class="term">lambda :</span>
- <dd><p class="para">The structure consist of the Lagrange multipliers at the solution of problem. See below for details.</p></dd></dt>
+ <dd><p class="para">A structure, containing the Lagrange multipliers of the lower bounds, upper bounds and constraints at the optimized point. See below for details.</p></dd></dt>
<dt><span class="term">gradient :</span>
- <dd><p class="para">a vector of doubles, containing the Objective&#0039;s gradient of the solution.</p></dd></dt></dl></div>
+ <dd><p class="para">A vector of doubles, containing the objective&#0039;s gradient of the solution.</p></dd></dt></dl></div>
<div class="refsection"><h3 class="title">Description</h3>
<p class="para">Search the minimum of a constrained non-linear least square problem specified by :</p>
- <p class="para"><span><img src='./_LaTeX_lsqnonlin.xml_1.png' style='position:relative;top:20px;width:341px;height:48px'/></span></p>
- <p class="para">The routine calls fmincon which calls Ipopt for solving the non-linear least square problem, Ipopt is a library written in C++.</p>
- <p class="para">The options allows the user to set various parameters of the Optimization problem.
-It should be defined as type &#0034;list&#0034; and contains the following fields.
-<ul class="itemizedlist"><li>Syntax : options= list(&#0034;MaxIter&#0034;, [---], &#0034;CpuTime&#0034;, [---],&#0034;GradObj&#0034;, &#0034;on&#0034;);</li>
-<li>MaxIter : a Scalar, containing the Maximum Number of Iteration that the solver should take.</li>
-<li>CpuTime : a Scalar, containing the Maximum amount of CPU Time that the solver should take.</li>
-<li>GradObj : a string, representing the gradient function is on or off.</li>
-<li>Default Values : options = list(&#0034;MaxIter&#0034;, [3000], &#0034;CpuTime&#0034;, [600], &#0034;GradObj&#0034;, &#0034;off&#0034;);</li></ul></p>
- <p class="para">The exitflag allows to know the status of the optimization which is given back by Ipopt.
-<ul class="itemizedlist"><li>exitflag=0 : Optimal Solution Found</li>
-<li>exitflag=1 : Maximum Number of Iterations Exceeded. Output may not be optimal.</li>
-<li>exitflag=2 : Maximum CPU Time exceeded. Output may not be optimal.</li>
-<li>exitflag=3 : Stop at Tiny Step.</li>
-<li>exitflag=4 : Solved To Acceptable Level.</li>
-<li>exitflag=5 : Converged to a point of local infeasibility.</li></ul></p>
- <p class="para">For more details on exitflag see the ipopt documentation, go to http://www.coin-or.org/Ipopt/documentation/</p>
- <p class="para">The output data structure contains detailed informations about the optimization process.
-It has type &#0034;struct&#0034; and contains the following fields.
-<ul class="itemizedlist"><li>output.iterations: The number of iterations performed during the search</li>
+ <p class="para"><span><img src='./_LaTeX_lsqnonlin.xml_1.png' style='position:relative;top:20px;width:264px;height:48px'/></span></p>
+ <p class="para">lsqnonlin calls fmincon, which calls Ipopt, an optimization library written in C++ to solve the non-linear least squares problem.</p>
+
+ <p class="para">The options should be defined as type &#0034;list&#0034; and consist of the following fields:</p>
+ <p class="para">options= list(&#0034;MaxIter&#0034;, [---], &#0034;CpuTime&#0034;, [---], &#0034;GradObj&#0034;, ---);</p>
+ <p class="para"><ul class="itemizedlist"><li>MaxIter : A Scalar, specifying the maximum number of iterations that the solver should take.</li>
+<li>CpuTime : A Scalar, specifying the maximum amount of CPU time in seconds that the solver should take.</li>
+<li>GradObj : A string, representing whetherthe gradient function is on or off.</li></ul></p>
+ <p class="para">The default values for the various items are given as:</p>
+ <p class="para">Default Values : options = list(&#0034;MaxIter&#0034;, [3000], &#0034;CpuTime&#0034;, [600], &#0034;GradObj&#0034;, &#0034;off&#0034;);</p>
+ <p class="para">The exitflag allows the user to know the status of the optimization which is returned by Ipopt. The values it can take and what they indicate is described below:
+<ul class="itemizedlist"><li>0 : Optimal Solution Found</li>
+<li>1 : Maximum Number of Iterations Exceeded. Output may not be optimal.</li>
+<li>2 : Maximum amount of CPU Time exceeded. Output may not be optimal.</li>
+<li>3 : Stop at Tiny Step.</li>
+<li>4 : Solved To Acceptable Level.</li>
+<li>5 : Converged to a point of local infeasibility.</li></ul></p>
+ <p class="para">For more details on exitflag, see the Ipopt documentation which can be found on http://www.coin-or.org/Ipopt/documentation/</p>
+ <p class="para">The output data structure contains detailed information about the optimization process.
+It is of type &#0034;struct&#0034; and contains the following fields.
+<ul class="itemizedlist"><li>output.iterations: The number of iterations performed.</li>
<li>output.constrviolation: The max-norm of the constraint violation.</li></ul></p>
- <p class="para">The lambda data structure contains the Lagrange multipliers at the end
-of optimization. In the current version the values are returned only when the the solution is optimal.
+ <p class="para">The lambda data structure contains the Lagrange multipliers at the end of optimization. In the current version, the values are returned only when the the solution is optimal.
It has type &#0034;struct&#0034; and contains the following fields.
<ul class="itemizedlist"><li>lambda.lower: The Lagrange multipliers for the lower bound constraints.</li>
<li>lambda.upper: The Lagrange multipliers for the upper bound constraints.</li></ul></p>
<p class="para"></p></div>
-
-<div class="refsection"><h3 class="title">Examples</h3>
+<p class="para">A few examples displaying the various functionalities of lsqnonlin have been provided below. You will find a series of problems and the appropriate code snippets to solve them.</p>
+<div class="refsection"><h3 class="title">Example</h3>
+ <p class="para">Here we solve a simple non-linear least square example taken from leastsq default present in scilab.</p>
+ <p class="para">Find x in R^2 such that it minimizes:</p>
+ <p class="para"><span><img src='./_LaTeX_lsqnonlin.xml_2.png' style='position:relative;top:9px;width:408px;height:74px'/></span></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// we have the m measures (ti, yi):</span>
+<span class="scilabid">m</span> <span class="scilaboperator">=</span> <span class="scilabnumber">10</span><span class="scilabdefault">;</span>
+<span class="scilabid">tm</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">0.25</span><span class="scilabdefault">,</span> <span class="scilabnumber">0.5</span><span class="scilabdefault">,</span> <span class="scilabnumber">0.75</span><span class="scilabdefault">,</span> <span class="scilabnumber">1.0</span><span class="scilabdefault">,</span> <span class="scilabnumber">1.25</span><span class="scilabdefault">,</span> <span class="scilabnumber">1.5</span><span class="scilabdefault">,</span> <span class="scilabnumber">1.75</span><span class="scilabdefault">,</span> <span class="scilabnumber">2.0</span><span class="scilabdefault">,</span> <span class="scilabnumber">2.25</span><span class="scilabdefault">,</span> <span class="scilabnumber">2.5</span><span class="scilabopenclose">]</span><span class="scilaboperator">&#0039;</span><span class="scilabdefault">;</span>
+<span class="scilabid">ym</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">0.79</span><span class="scilabdefault">,</span> <span class="scilabnumber">0.59</span><span class="scilabdefault">,</span> <span class="scilabnumber">0.47</span><span class="scilabdefault">,</span> <span class="scilabnumber">0.36</span><span class="scilabdefault">,</span> <span class="scilabnumber">0.29</span><span class="scilabdefault">,</span> <span class="scilabnumber">0.23</span><span class="scilabdefault">,</span> <span class="scilabnumber">0.17</span><span class="scilabdefault">,</span> <span class="scilabnumber">0.15</span><span class="scilabdefault">,</span> <span class="scilabnumber">0.12</span><span class="scilabdefault">,</span> <span class="scilabnumber">0.08</span><span class="scilabopenclose">]</span><span class="scilaboperator">&#0039;</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">// measure weights (here all equal to 1...)</span>
+<span class="scilabid">wm</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://ones">ones</a><span class="scilabopenclose">(</span><span class="scilabid">m</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">// and we want to find the parameters x such that the model fits the given</span>
+<span class="scilabcomment">// data in the least square sense:</span>
+<span class="scilabcomment">//</span>
+<span class="scilabcomment">// minimize f(x) = sum_i wm(i)^2 ( x(1)*exp(-x(2)*tm(i) - ym(i) )^2</span>
+<span class="scilabcomment">// initial parameters guess</span>
+<span class="scilabid">x0</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1.5</span> <span class="scilabdefault">;</span> <span class="scilabnumber">0.8</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">// in the first examples, we define the function fun and dfun</span>
+<span class="scilabcomment">// in scilab language</span>
+<span class="scilabfkeyword">function</span> <span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span><span class="scilabfunctionid">myfun</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabdefault">, </span><span class="scilabinputoutputargs">them</span><span class="scilabdefault">, </span><span class="scilabinputoutputargs">ym</span><span class="scilabdefault">, </span><span class="scilabinputoutputargs">wm</span><span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">y</span> <span class="scilaboperator">=</span> <span class="scilabinputoutputargs">wm</span><span class="scilaboperator">.*</span><span class="scilabopenclose">(</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><a class="scilabcommand" href="scilab://exp">exp</a><span class="scilabopenclose">(</span><span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabid">tm</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span> <span class="scilabinputoutputargs">ym</span> <span class="scilabopenclose">)</span>
+<span class="scilabfkeyword">endfunction</span>
+<span class="scilabcomment">// the simplest call</span>
+<span class="scilabopenclose">[</span><span class="scilabid">xopt</span><span class="scilabdefault">,</span><span class="scilabid">resnorm</span><span class="scilabdefault">,</span><span class="scilabid">residual</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabdefault">,</span><span class="scilabid">gradient</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">lsqnonlin</span><span class="scilabopenclose">(</span><span class="scilabfunctionid">myfun</span><span class="scilabdefault">,</span><span class="scilabid">x0</span><span class="scilabopenclose">)</span>
+<span class="scilabcomment">// Press ENTER to continue</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+<div class="refsection"><h3 class="title">Example</h3>
+<p class="para">Here we build up on the previous example by adding upper and lower bounds to the variables.
+We add the following bounds to the problem specified above:</p>
+ <p class="para"><span><img src='./_LaTeX_lsqnonlin.xml_3.png' style='position:relative;top:17px;width:137px;height:42px'/></span></p>
+ <p class="para"></p>
<div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//A simple non-linear least square example taken from leastsq default present in scilab</span>
<span class="scilabfkeyword">function</span> <span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span><span class="scilabfunctionid">yth</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">t</span><span class="scilabdefault">, </span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
<span class="scilabinputoutputargs">y</span> <span class="scilaboperator">=</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><a class="scilabcommand" href="scilab://exp">exp</a><span class="scilabopenclose">(</span><span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">t</span><span class="scilabopenclose">)</span>
@@ -123,11 +152,15 @@ It has type &#0034;struct&#0034; and contains the following fields.
<span class="scilabfkeyword">function</span> <span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span><span class="scilabfunctionid">myfun</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabdefault">, </span><span class="scilabinputoutputargs">tm</span><span class="scilabdefault">, </span><span class="scilabinputoutputargs">ym</span><span class="scilabdefault">, </span><span class="scilabinputoutputargs">wm</span><span class="scilabopenclose">)</span>
<span class="scilabinputoutputargs">y</span> <span class="scilaboperator">=</span> <span class="scilabinputoutputargs">wm</span><span class="scilaboperator">.*</span><span class="scilabopenclose">(</span> <span class="scilabfunctionid">yth</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">tm</span><span class="scilabdefault">,</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span> <span class="scilabinputoutputargs">ym</span> <span class="scilabopenclose">)</span>
<span class="scilabfkeyword">endfunction</span>
+<span class="scilabid">lb</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">5</span> <span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">5</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">ub</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">10</span><span class="scilabdefault">,</span> <span class="scilabnumber">10</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
<span class="scilabcomment">// the simplest call</span>
-<span class="scilabopenclose">[</span><span class="scilabid">xopt</span><span class="scilabdefault">,</span><span class="scilabid">resnorm</span><span class="scilabdefault">,</span><span class="scilabid">residual</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabdefault">,</span><span class="scilabid">gradient</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">lsqnonlin</span><span class="scilabopenclose">(</span><span class="scilabfunctionid">myfun</span><span class="scilabdefault">,</span><span class="scilabid">x0</span><span class="scilabopenclose">)</span>
+<span class="scilabopenclose">[</span><span class="scilabid">xopt</span><span class="scilabdefault">,</span><span class="scilabid">resnorm</span><span class="scilabdefault">,</span><span class="scilabid">residual</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabdefault">,</span><span class="scilabid">gradient</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">lsqnonlin</span><span class="scilabopenclose">(</span><span class="scilabfunctionid">myfun</span><span class="scilabdefault">,</span><span class="scilabid">x0</span><span class="scilabdefault">,</span><span class="scilabid">lb</span><span class="scilabdefault">,</span><span class="scilabid">ub</span><span class="scilabopenclose">)</span>
<span class="scilabcomment">// Press ENTER to continue</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
-<div class="refsection"><h3 class="title">Examples</h3>
+<div class="refsection"><h3 class="title">Example</h3>
+ <p class="para">In this example, we further enhance the functionality of lsqnonlin by setting input options. This provides us with the ability to control the solver parameters such as the maximum number of solver iterations and the max. CPU time allowed for the computation.</p>
+ <p class="para"></p>
<div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//A basic example taken from leastsq default present in scilab with gradient</span>
<span class="scilabfkeyword">function</span> <span class="scilabinputoutputargs">y</span><span class="scilaboperator">=</span><span class="scilabfunctionid">yth</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">t</span><span class="scilabdefault">, </span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span>
<span class="scilabinputoutputargs">y</span> <span class="scilaboperator">=</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><a class="scilabcommand" href="scilab://exp">exp</a><span class="scilabopenclose">(</span><span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">t</span><span class="scilabopenclose">)</span>
@@ -147,12 +180,14 @@ It has type &#0034;struct&#0034; and contains the following fields.
<span class="scilabcomment">// in the first examples, we define the function fun and dfun</span>
<span class="scilabcomment">// in scilab language</span>
<span class="scilabfkeyword">function</span> <span class="scilabopenclose">[</span><span class="scilabinputoutputargs">y</span><span class="scilabdefault">, </span><span class="scilabinputoutputargs">dy</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span><span class="scilabfunctionid">myfun</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabdefault">, </span><span class="scilabinputoutputargs">tm</span><span class="scilabdefault">, </span><span class="scilabinputoutputargs">ym</span><span class="scilabdefault">, </span><span class="scilabinputoutputargs">wm</span><span class="scilabopenclose">)</span>
-<span class="scilabinputoutputargs">y</span> <span class="scilaboperator">=</span> <span class="scilabinputoutputargs">wm</span><span class="scilaboperator">.*</span><span class="scilabopenclose">(</span> <span class="scilabfunctionid">yth</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">tm</span><span class="scilabdefault">,</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span> <span class="scilabinputoutputargs">ym</span> <span class="scilabopenclose">)</span>
+<span class="scilabinputoutputargs">y</span> <span class="scilaboperator">=</span> <span class="scilabinputoutputargs">wm</span><span class="scilaboperator">.*</span><span class="scilabopenclose">(</span> <span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><a class="scilabcommand" href="scilab://exp">exp</a><span class="scilabopenclose">(</span><span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">tm</span><span class="scilabopenclose">)</span> <span class="scilaboperator">-</span> <span class="scilabinputoutputargs">ym</span> <span class="scilabopenclose">)</span>
<span class="scilabid">v</span> <span class="scilaboperator">=</span> <span class="scilabinputoutputargs">wm</span><span class="scilaboperator">.*</span><a class="scilabcommand" href="scilab://exp">exp</a><span class="scilabopenclose">(</span><span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">tm</span><span class="scilabopenclose">)</span>
<span class="scilabinputoutputargs">dy</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabid">v</span> <span class="scilabdefault">,</span> <span class="scilaboperator">-</span><span class="scilabinputoutputargs">x</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilaboperator">*</span><span class="scilabinputoutputargs">tm</span><span class="scilaboperator">.*</span><span class="scilabid">v</span><span class="scilabopenclose">]</span>
<span class="scilabfkeyword">endfunction</span>
+<span class="scilabid">lb</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">5</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">5</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">ub</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">10</span><span class="scilabdefault">,</span><span class="scilabnumber">10</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
<span class="scilabid">options</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">GradObj</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabstring">&#0034;</span><span class="scilabstring">on</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span>
-<span class="scilabopenclose">[</span><span class="scilabid">xopt</span><span class="scilabdefault">,</span><span class="scilabid">resnorm</span><span class="scilabdefault">,</span><span class="scilabid">residual</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabdefault">,</span><span class="scilabid">gradient</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">lsqnonlin</span><span class="scilabopenclose">(</span><span class="scilabfunctionid">myfun</span><span class="scilabdefault">,</span><span class="scilabid">x0</span><span class="scilabdefault">,</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span><span class="scilabid">options</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+<span class="scilabopenclose">[</span><span class="scilabid">xopt</span><span class="scilabdefault">,</span><span class="scilabid">resnorm</span><span class="scilabdefault">,</span><span class="scilabid">residual</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabdefault">,</span><span class="scilabid">gradient</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">lsqnonlin</span><span class="scilabopenclose">(</span><span class="scilabfunctionid">myfun</span><span class="scilabdefault">,</span><span class="scilabid">x0</span><span class="scilabdefault">,</span><span class="scilabid">lb</span><span class="scilabdefault">,</span><span class="scilabid">ub</span><span class="scilabdefault">,</span><span class="scilabid">options</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
<div class="refsection"><h3 class="title">Authors</h3>
<ul class="itemizedlist"><li class="member">Harpreet Singh</li></ul></div>
@@ -167,7 +202,7 @@ It has type &#0034;struct&#0034; and contains the following fields.
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a></span>
+ <span class="top"><a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/lsqnonneg.html b/help/en_US/scilab_en_US_help/lsqnonneg.html
index 5cd01df..f9783ad 100644
--- a/help/en_US/scilab_en_US_help/lsqnonneg.html
+++ b/help/en_US/scilab_en_US_help/lsqnonneg.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a></span>
+ <span class="top"><a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; lsqnonneg</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; lsqnonneg</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">lsqnonneg</h1>
@@ -38,58 +38,63 @@
<div class="refsynopsisdiv"><h3 class="title">Calling Sequence</h3>
<div class="synopsis"><pre><span class="default">xopt</span><span class="default"> = </span><span class="functionid">lsqnonneg</span><span class="default">(</span><span class="default">C</span><span class="default">,</span><span class="default">d</span><span class="default">)</span>
-<span class="default">xopt</span><span class="default"> = </span><span class="functionid">lsqnonneg</span><span class="default">(</span><span class="default">C</span><span class="default">,</span><span class="default">d</span><span class="default">,</span><span class="default">param</span><span class="default">)</span>
+<span class="default">xopt</span><span class="default"> = </span><span class="functionid">lsqnonneg</span><span class="default">(</span><span class="default">C</span><span class="default">,</span><span class="default">d</span><span class="default">,</span><span class="default">options</span><span class="default">)</span>
<span class="default">[</span><span class="default">xopt</span><span class="default">,</span><span class="default">resnorm</span><span class="default">,</span><span class="default">residual</span><span class="default">,</span><span class="default">exitflag</span><span class="default">,</span><span class="default">output</span><span class="default">,</span><span class="default">lambda</span><span class="default">] = </span><span class="functionid">lsqnonneg</span><span class="default">( ... )</span></pre></div></div>
-<div class="refsection"><h3 class="title">Parameters</h3>
+<div class="refsection"><h3 class="title">Input Parameters</h3>
<dl><dt><span class="term">C :</span>
- <dd><p class="para">a matrix of double, represents the multiplier of the solution x in the expression C⋅x - d. Number of columns in C is equal to the number of elements in x.</p></dd></dt>
- <dt><span class="term">d :</span>
- <dd><p class="para">a vector of double, represents the additive constant term in the expression C⋅x - d. Number of elements in d is equal to the number of rows in C matrix.</p></dd></dt>
- <dt><span class="term">xopt :</span>
- <dd><p class="para">a vector of double, the computed solution of the optimization problem.</p></dd></dt>
+ <dd><p class="para">A matrix of doubles, representing the multiplier of x in the expression C⋅x - d. The number of columns in C is equal to the number of elements in x.</p></dd></dt>
+ <dt><span class="term">d :</span>
+ <dd><p class="para">A vector of doubles, representing the additive constant term in the expression C⋅x - d. The number of elements in d is equal to the number of rows in C matrix.</p></dd></dt>
+ <dt><span class="term">options:</span>
+ <dd><p class="para">A list, containing the option for user to specify. See below for details.</p></dd></dt></dl></div>
+<div class="refsection"><h3 class="title">Outputs</h3>
+ <dl><dt><span class="term">xopt :</span>
+ <dd><p class="para">A vector of doubles, containing the computed solution of the optimization problem.</p></dd></dt>
<dt><span class="term">resnorm :</span>
- <dd><p class="para">a double, objective value returned as the scalar value norm(C⋅x-d)^2.</p></dd></dt>
+ <dd><p class="para">A double, containing the objective value returned as a scalar value norm(C⋅x-d)^2.</p></dd></dt>
<dt><span class="term">residual :</span>
- <dd><p class="para">a vector of double, solution residuals returned as the vector d-C⋅x.</p></dd></dt>
+ <dd><p class="para">A vector of doubles, containing the solution residuals, returned as a vector d-C⋅x.</p></dd></dt>
<dt><span class="term">exitflag :</span>
- <dd><p class="para">The exit status. See below for details.</p></dd></dt>
+ <dd><p class="para">An integer, containing the flag which denotes the reason for termination of algorithm. See below for details.</p></dd></dt>
<dt><span class="term">output :</span>
- <dd><p class="para">The structure consist of statistics about the optimization. See below for details.</p></dd></dt>
+ <dd><p class="para">A structure, containing the information about the optimization. See below for details.</p></dd></dt>
<dt><span class="term">lambda :</span>
- <dd><p class="para">The structure consist of the Lagrange multipliers at the solution of problem. See below for details.</p></dd></dt></dl></div>
+ <dd><p class="para">A structure, containing the Lagrange multipliers at the optimized point. See below for details.</p></dd></dt></dl></div>
<div class="refsection"><h3 class="title">Description</h3>
<p class="para">Solves nonnegative least-squares curve fitting problems specified by :</p>
- <p class="para"><span><img src='./_LaTeX_lsqnonneg.xml_1.png' style='position:relative;top:19px;width:193px;height:46px'/></span></p>
- <p class="para">The routine calls Ipopt for solving the nonnegative least-squares curve fitting problems, Ipopt is a library written in C++.</p>
- <p class="para">The options allows the user to set various parameters of the Optimization problem.
-It should be defined as type &#0034;list&#0034; and contains the following fields.
-<ul class="itemizedlist"><li>Syntax : options= list(&#0034;MaxIter&#0034;, [---], &#0034;CpuTime&#0034;, [---]);</li>
-<li>MaxIter : a Scalar, containing the Maximum Number of Iteration that the solver should take.</li>
-<li>CpuTime : a Scalar, containing the Maximum amount of CPU Time that the solver should take.</li>
-<li>Default Values : options = list(&#0034;MaxIter&#0034;, [3000], &#0034;CpuTime&#0034;, [600]);</li></ul></p>
- <p class="para">The exitflag allows to know the status of the optimization which is given back by Ipopt.
-<ul class="itemizedlist"><li>exitflag=0 : Optimal Solution Found</li>
-<li>exitflag=1 : Maximum Number of Iterations Exceeded. Output may not be optimal.</li>
-<li>exitflag=2 : Maximum CPU Time exceeded. Output may not be optimal.</li>
-<li>exitflag=3 : Stop at Tiny Step.</li>
-<li>exitflag=4 : Solved To Acceptable Level.</li>
-<li>exitflag=5 : Converged to a point of local infeasibility.</li></ul></p>
- <p class="para">For more details on exitflag see the ipopt documentation, go to http://www.coin-or.org/Ipopt/documentation/</p>
- <p class="para">The output data structure contains detailed informations about the optimization process.
-It has type &#0034;struct&#0034; and contains the following fields.
-<ul class="itemizedlist"><li>output.iterations: The number of iterations performed during the search</li>
+ <p class="para"><span><img src='./_LaTeX_lsqnonneg.xml_1.png' style='position:relative;top:19px;width:195px;height:46px'/></span></p>
+ <p class="para">lsqlin calls Ipopt, an optimization library written in C++, to solve the nonnegative least-squares curve fitting problem.</p>
+ <p class="para">The options should be defined as type &#0034;list&#0034; and consist of the following fields:</p>
+ <p class="para">options= list(&#0034;MaxIter&#0034;, [---], &#0034;CpuTime&#0034;, [---]);</p>
+ <p class="para"><ul class="itemizedlist"><li>MaxIter : A Scalar, specifying the maximum number of iterations that the solver should take.</li>
+<li>CpuTime : A Scalar, specifying the maximum amount of CPU time in seconds that the solver should take.</li></ul></p>
+ <p class="para">The default values for the various items are given as:</p>
+ <p class="para">options = list(&#0034;MaxIter&#0034;, [3000], &#0034;CpuTime&#0034;, [600]);</p>
+ <p class="para">The exitflag allows the user to know the status of the optimization which is returned by Ipopt. The values it can take and what they indicate is described below:
+<ul class="itemizedlist"><li>0 : Optimal Solution Found</li>
+<li>1 : Maximum Number of Iterations Exceeded. Output may not be optimal.</li>
+<li>2 : Maximum amount of CPU Time exceeded. Output may not be optimal.</li>
+<li>3 : Stop at Tiny Step.</li>
+<li>4 : Solved To Acceptable Level.</li>
+<li>5 : Converged to a point of local infeasibility.</li></ul></p>
+ <p class="para">For more details on exitflag, see the Ipopt documentation which can be found on http://www.coin-or.org/Ipopt/documentation/</p>
+ <p class="para">The output data structure contains detailed information about the optimization process.
+It is of type &#0034;struct&#0034; and contains the following fields.
+<ul class="itemizedlist"><li>output.iterations: The number of iterations performed.</li>
<li>output.constrviolation: The max-norm of the constraint violation.</li></ul></p>
- <p class="para">The lambda data structure contains the Lagrange multipliers at the end
-of optimization. In the current version the values are returned only when the the solution is optimal.
+ <p class="para">The lambda data structure contains the Lagrange multipliers at the end of optimization. In the current version, the values are returned only when the the solution is optimal.
It has type &#0034;struct&#0034; and contains the following fields.
<ul class="itemizedlist"><li>lambda.lower: The Lagrange multipliers for the lower bound constraints.</li>
<li>lambda.upper: The Lagrange multipliers for the upper bound constraints.</li></ul></p>
<p class="para"></p></div>
-
-<div class="refsection"><h3 class="title">Examples</h3>
- <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// A basic lsqnonneg problem</span>
+<p class="para">A few examples displaying the various functionalities of lsqnonneg have been provided below. You will find a series of problems and the appropriate code snippets to solve them.</p>
+<div class="refsection"><h3 class="title">Example</h3>
+ <p class="para">We begin with a simple objective function.</p>
+ <p class="para"><span><img src='./_LaTeX_lsqnonneg.xml_2.png' style='position:relative;top:51px;width:313px;height:140px'/></span></p>
+ <p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Example 1: A basic lsqnonneg problem</span>
<span class="scilabid">C</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span> <span class="scilabnumber">1</span> <span class="scilabnumber">1</span><span class="scilabdefault">;</span>
<span class="scilabnumber">1</span> <span class="scilabnumber">1</span> <span class="scilabnumber">0</span><span class="scilabdefault">;</span>
<span class="scilabnumber">0</span> <span class="scilabnumber">1</span> <span class="scilabnumber">1</span><span class="scilabdefault">;</span>
@@ -102,6 +107,23 @@ It has type &#0034;struct&#0034; and contains the following fields.
<span class="scilabnumber">20</span><span class="scilabdefault">;</span><span class="scilabopenclose">]</span>
<span class="scilabopenclose">[</span><span class="scilabid">xopt</span><span class="scilabdefault">,</span><span class="scilabid">resnorm</span><span class="scilabdefault">,</span><span class="scilabid">residual</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">lsqnonneg</span><span class="scilabopenclose">(</span><span class="scilabid">C</span><span class="scilabdefault">,</span><span class="scilabid">d</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+<div class="refsection"><h3 class="title">Example</h3>
+ <p class="para">In this example, we further enhance the functionality of qpipopt by setting input options. This provides us with the ability to control the solver parameters such as the maximum number of solver iterations and the max. CPU time allowed for the computation.</p>
+ <p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Example 2: A basic lsqnonneg problem with solver options.</span>
+<span class="scilabid">C</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span> <span class="scilabnumber">1</span> <span class="scilabnumber">1</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">1</span> <span class="scilabnumber">1</span> <span class="scilabnumber">0</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">0</span> <span class="scilabnumber">1</span> <span class="scilabnumber">1</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">1</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">1</span><span class="scilabopenclose">]</span>
+<span class="scilabid">d</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">89</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">67</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">53</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">35</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">20</span><span class="scilabdefault">;</span><span class="scilabopenclose">]</span>
+<span class="scilabid">options</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">MaxIter</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabopenclose">[</span><span class="scilabnumber">5000</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span> <span class="scilabstring">&#0034;</span><span class="scilabstring">CpuTime</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1000</span><span class="scilabopenclose">]</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabopenclose">[</span><span class="scilabid">xopt</span><span class="scilabdefault">,</span><span class="scilabid">resnorm</span><span class="scilabdefault">,</span><span class="scilabid">residual</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">lsqnonneg</span><span class="scilabopenclose">(</span><span class="scilabid">C</span><span class="scilabdefault">,</span><span class="scilabid">d</span><span class="scilabdefault">,</span><span class="scilabid">options</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
<div class="refsection"><h3 class="title">Authors</h3>
<ul class="itemizedlist"><li class="member">Harpreet Singh</li></ul></div>
<br />
@@ -115,7 +137,7 @@ It has type &#0034;struct&#0034; and contains the following fields.
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a></span>
+ <span class="top"><a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/qpipopt.html b/help/en_US/scilab_en_US_help/qpipopt.html
index f134d7a..b8491a9 100644
--- a/help/en_US/scilab_en_US_help/qpipopt.html
+++ b/help/en_US/scilab_en_US_help/qpipopt.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a></span>
+ <span class="top"><a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; qpipopt</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; qpipopt</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">qpipopt</h1>
@@ -39,85 +39,90 @@
<div class="refsynopsisdiv"><h3 class="title">Calling Sequence</h3>
<div class="synopsis"><pre><span class="default">xopt</span><span class="default"> = </span><span class="functionid">qpipopt</span><span class="default">(</span><span class="default">nbVar</span><span class="default">,</span><span class="default">nbCon</span><span class="default">,</span><span class="default">H</span><span class="default">,</span><span class="default">f</span><span class="default">,</span><span class="default">lb</span><span class="default">,</span><span class="default">ub</span><span class="default">,</span><span class="default">A</span><span class="default">,</span><span class="default">conLB</span><span class="default">,</span><span class="default">conUB</span><span class="default">)</span>
<span class="default">xopt</span><span class="default"> = </span><span class="functionid">qpipopt</span><span class="default">(</span><span class="default">nbVar</span><span class="default">,</span><span class="default">nbCon</span><span class="default">,</span><span class="default">H</span><span class="default">,</span><span class="default">f</span><span class="default">,</span><span class="default">lb</span><span class="default">,</span><span class="default">ub</span><span class="default">,</span><span class="default">A</span><span class="default">,</span><span class="default">conLB</span><span class="default">,</span><span class="default">conUB</span><span class="default">,</span><span class="default">x0</span><span class="default">)</span>
-<span class="default">xopt</span><span class="default"> = </span><span class="functionid">qpipopt</span><span class="default">(</span><span class="default">nbVar</span><span class="default">,</span><span class="default">nbCon</span><span class="default">,</span><span class="default">H</span><span class="default">,</span><span class="default">f</span><span class="default">,</span><span class="default">lb</span><span class="default">,</span><span class="default">ub</span><span class="default">,</span><span class="default">A</span><span class="default">,</span><span class="default">conLB</span><span class="default">,</span><span class="default">conUB</span><span class="default">,</span><span class="default">x0</span><span class="default">,</span><span class="default">param</span><span class="default">)</span>
+<span class="default">xopt</span><span class="default"> = </span><span class="functionid">qpipopt</span><span class="default">(</span><span class="default">nbVar</span><span class="default">,</span><span class="default">nbCon</span><span class="default">,</span><span class="default">H</span><span class="default">,</span><span class="default">f</span><span class="default">,</span><span class="default">lb</span><span class="default">,</span><span class="default">ub</span><span class="default">,</span><span class="default">A</span><span class="default">,</span><span class="default">conLB</span><span class="default">,</span><span class="default">conUB</span><span class="default">,</span><span class="default">x0</span><span class="default">,</span><span class="default">options</span><span class="default">)</span>
<span class="default">[</span><span class="default">xopt</span><span class="default">,</span><span class="default">fopt</span><span class="default">,</span><span class="default">exitflag</span><span class="default">,</span><span class="default">output</span><span class="default">,</span><span class="default">lamda</span><span class="default">] = </span><span class="functionid">qpipopt</span><span class="default">( ... )</span></pre></div></div>
-<div class="refsection"><h3 class="title">Parameters</h3>
+<div class="refsection"><h3 class="title">Input Parameters</h3>
<dl><dt><span class="term">nbVar :</span>
- <dd><p class="para">a double, number of variables</p></dd></dt>
+ <dd><p class="para">A double, denoting the number of variables</p></dd></dt>
<dt><span class="term">nbCon :</span>
- <dd><p class="para">a double, number of constraints</p></dd></dt>
+ <dd><p class="para">A double, denoting the number of constraints</p></dd></dt>
<dt><span class="term">H :</span>
- <dd><p class="para">a symmetric matrix of double, represents coefficients of quadratic in the quadratic problem.</p></dd></dt>
+ <dd><p class="para">A symmetric matrix of doubles, representing the Hessian of the quadratic problem.</p></dd></dt>
<dt><span class="term">f :</span>
- <dd><p class="para">a vector of double, represents coefficients of linear in the quadratic problem</p></dd></dt>
+ <dd><p class="para">A vector of doubles, representing coefficients of the linear terms in the quadratic problem.</p></dd></dt>
<dt><span class="term">lb :</span>
- <dd><p class="para">a vector of double, contains lower bounds of the variables.</p></dd></dt>
+ <dd><p class="para">A vector of doubles, containing the lower bounds of the variables.</p></dd></dt>
<dt><span class="term">ub :</span>
- <dd><p class="para">a vector of double, contains upper bounds of the variables.</p></dd></dt>
+ <dd><p class="para">A vector of doubles, containing the upper bounds of the variables.</p></dd></dt>
<dt><span class="term">A :</span>
- <dd><p class="para">a matrix of double, contains the constraint matrix conLB ≤ A⋅x ≤ conUB.</p></dd></dt>
+ <dd><p class="para">A matrix of doubles, representing the constraint matrix in conLB ≤ A⋅x ≤ conUB.</p></dd></dt>
<dt><span class="term">conLB :</span>
- <dd><p class="para">a vector of double, contains lower bounds of the constraints conLB ≤ A⋅x ≤ conUB.</p></dd></dt>
+ <dd><p class="para">A vector of doubles, containing the lower bounds of the constraints conLB ≤ A⋅x ≤ conUB.</p></dd></dt>
<dt><span class="term">conUB :</span>
- <dd><p class="para">a vector of double, contains upper bounds of the constraints conLB ≤ A⋅x ≤ conUB.</p></dd></dt>
+ <dd><p class="para">A vector of doubles, containing the upper bounds of the constraints conLB ≤ A⋅x ≤ conUB.</p></dd></dt>
<dt><span class="term">x0 :</span>
- <dd><p class="para">a vector of double, contains initial guess of variables.</p></dd></dt>
- <dt><span class="term">param :</span>
- <dd><p class="para">a list containing the parameters to be set.</p></dd></dt>
- <dt><span class="term">xopt :</span>
- <dd><p class="para">a vector of double, the computed solution of the optimization problem.</p></dd></dt>
+ <dd><p class="para">A vector of doubles, containing the starting values of variables of size (1 X n) or (n X 1) where &#0039;n&#0039; is the number of variables.</p></dd></dt>
+ <dt><span class="term">options :</span>
+ <dd><p class="para">A list, containing the option for user to specify. See below for details.</p></dd></dt></dl></div>
+<div class="refsection"><h3 class="title">Outputs</h3>
+ <dl><dt><span class="term">xopt :</span>
+ <dd><p class="para">A vector of doubles, containing the computed solution of the optimization problem.</p></dd></dt>
<dt><span class="term">fopt :</span>
- <dd><p class="para">a double, the value of the function at x.</p></dd></dt>
+ <dd><p class="para">A double, containing the value of the function at xopt.</p></dd></dt>
<dt><span class="term">exitflag :</span>
- <dd><p class="para">The exit status. See below for details.</p></dd></dt>
+ <dd><p class="para">An integer, containing the flag which denotes the reason for termination of algorithm. See below for details.</p></dd></dt>
<dt><span class="term">output :</span>
- <dd><p class="para">The structure consist of statistics about the optimization. See below for details.</p></dd></dt>
+ <dd><p class="para">A structure, containing the information about the optimization. See below for details.</p></dd></dt>
<dt><span class="term">lambda :</span>
- <dd><p class="para">The structure consist of the Lagrange multipliers at the solution of problem. See below for details.</p></dd></dt></dl></div>
+ <dd><p class="para">A structure, containing the Lagrange multipliers of the lower bounds, upper bounds and constraints at the optimized point. See below for details.</p></dd></dt></dl></div>
<div class="refsection"><h3 class="title">Description</h3>
<p class="para">Search the minimum of a constrained linear quadratic optimization problem specified by :</p>
- <p class="para"><span><img src='./_LaTeX_qpipopt.xml_1.png' style='position:relative;top:31px;width:292px;height:70px'/></span></p>
- <p class="para">The routine calls Ipopt for solving the quadratic problem, Ipopt is a library written in C++.</p>
- <p class="para">The options allows the user to set various parameters of the Optimization problem.
-It should be defined as type &#0034;list&#0034; and contains the following fields.
-<ul class="itemizedlist"><li>Syntax : options= list(&#0034;MaxIter&#0034;, [---], &#0034;CpuTime&#0034;, [---]);</li>
-<li>MaxIter : a Scalar, containing the Maximum Number of Iteration that the solver should take.</li>
-<li>CpuTime : a Scalar, containing the Maximum amount of CPU Time that the solver should take.</li>
-<li>Default Values : options = list(&#0034;MaxIter&#0034;, [3000], &#0034;CpuTime&#0034;, [600]);</li></ul></p>
- <p class="para">The exitflag allows to know the status of the optimization which is given back by Ipopt.
-<ul class="itemizedlist"><li>exitflag=0 : Optimal Solution Found</li>
-<li>exitflag=1 : Maximum Number of Iterations Exceeded. Output may not be optimal.</li>
-<li>exitflag=2 : Maximum CPU Time exceeded. Output may not be optimal.</li>
-<li>exitflag=3 : Stop at Tiny Step.</li>
-<li>exitflag=4 : Solved To Acceptable Level.</li>
-<li>exitflag=5 : Converged to a point of local infeasibility.</li></ul></p>
- <p class="para">For more details on exitflag see the ipopt documentation, go to http://www.coin-or.org/Ipopt/documentation/</p>
- <p class="para">The output data structure contains detailed informations about the optimization process.
-It has type &#0034;struct&#0034; and contains the following fields.
-<ul class="itemizedlist"><li>output.iterations: The number of iterations performed during the search</li>
+ <p class="para"><span><img src='./_LaTeX_qpipopt.xml_1.png' style='position:relative;top:31px;width:299px;height:70px'/></span></p>
+ <p class="para">qpipopt calls Ipopt, an optimization library written in C++, to solve the optimization problem.</p>
+ <p class="para"><h3 class="title">Options</h3>
+The options allow the user to set various parameters of the Optimization problem. The syntax for the options is given by:</p>
+ <p class="para">options= list(&#0034;MaxIter&#0034;, [---], &#0034;CpuTime&#0034;, [---], &#0034;GradObj&#0034;, ---, &#0034;Hessian&#0034;, ---, &#0034;GradCon&#0034;, ---);</p>
+ <p class="para">The options should be defined as type &#0034;list&#0034; and consist of the following fields:
+<ul class="itemizedlist"><li>MaxIter : A Scalar, specifying the maximum number of iterations that the solver should take.</li>
+<li>CpuTime : A Scalar, specifying the maximum amount of CPU time in seconds that the solver should take.</li></ul></p>
+ <p class="para">The default values for the various items are given as:</p>
+ <p class="para">options = list(&#0034;MaxIter&#0034;, [3000], &#0034;CpuTime&#0034;, [600]);</p>
+ <p class="para">The exitflag allows the user to know the status of the optimization which is returned by Ipopt. The values it can take and what they indicate is described below:
+<ul class="itemizedlist"><li>0 : Optimal Solution Found</li>
+<li>1 : Maximum Number of Iterations Exceeded. Output may not be optimal.</li>
+<li>2 : Maximum amount of CPU Time exceeded. Output may not be optimal.</li>
+<li>3 : Stop at Tiny Step.</li>
+<li>4 : Solved To Acceptable Level.</li>
+<li>5 : Converged to a point of local infeasibility.</li></ul></p>
+ <p class="para">For more details on exitflag, see the Ipopt documentation which can be found on http://www.coin-or.org/Ipopt/documentation/</p>
+ <p class="para">The output data structure contains detailed information about the optimization process.
+It is of type &#0034;struct&#0034; and contains the following fields.
+<ul class="itemizedlist"><li>output.iterations: The number of iterations performed.</li>
<li>output.constrviolation: The max-norm of the constraint violation.</li></ul></p>
- <p class="para">The lambda data structure contains the Lagrange multipliers at the end
-of optimization. In the current version the values are returned only when the the solution is optimal.
+ <p class="para">The lambda data structure contains the Lagrange multipliers at the end of optimization. In the current version, the values are returned only when the the solution is optimal.
It has type &#0034;struct&#0034; and contains the following fields.
<ul class="itemizedlist"><li>lambda.lower: The Lagrange multipliers for the lower bound constraints.</li>
<li>lambda.upper: The Lagrange multipliers for the upper bound constraints.</li>
<li>lambda.eqlin: The Lagrange multipliers for the linear equality constraints.</li>
<li>lambda.ineqlin: The Lagrange multipliers for the linear inequality constraints.</li></ul></p>
<p class="para"></p></div>
-
-<div class="refsection"><h3 class="title">Examples</h3>
- <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Ref : example 14 :</span>
-<span class="scilabcomment">//https://www.me.utexas.edu/~jensen/ORMM/supplements/methods/nlpmethod/S2_quadratic.pdf</span>
-<span class="scilabcomment">// min. -8*x1*x1 -16*x2*x2 + x1 + 4*x2</span>
+<p class="para">A few examples displaying the various functionalities of qpipopt have been provided below. You will find a series of problems and the appropriate code snippets to solve them.</p>
+<div class="refsection"><h3 class="title">Example</h3>
+ <p class="para">We begin with a quadratic objective functions, subjected to two bounds for the functions, and two bounds for the constraints.</p>
+ <p class="para">Find x in R^2 such that it minimizes:</p>
+ <p class="para"><span><img src='./_LaTeX_qpipopt.xml_2.png' style='position:relative;top:37px;width:224px;height:139px'/></span></p>
+<p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 1: Standard quadratic objective function</span>
+<span class="scilabcomment">//(Ref : example 14)https://www.me.utexas.edu/~jensen/ORMM/supplements/methods/nlpmethod/S2_quadratic.pdf</span>
+<span class="scilabcomment">// min. -8*x1^2 -16*x2^2 + x1 + 4*x2</span>
<span class="scilabcomment">// such that</span>
<span class="scilabcomment">// x1 + x2 </span><span class="scilabcomment">&#0060;</span><span class="scilabcomment">= 5,</span>
<span class="scilabcomment">// x1 </span><span class="scilabcomment">&#0060;</span><span class="scilabcomment">= 3,</span>
<span class="scilabcomment">// x1 </span><span class="scilabcomment">&#0062;</span><span class="scilabcomment">= 0,</span>
<span class="scilabcomment">// x2 </span><span class="scilabcomment">&#0062;</span><span class="scilabcomment">= 0</span>
-<span class="scilabid">H</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">2</span> <span class="scilabnumber">0</span>
-<span class="scilabnumber">0</span> <span class="scilabnumber">8</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">H</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">16</span> <span class="scilabnumber">0</span><span class="scilabdefault">;</span> <span class="scilabnumber">0</span> <span class="scilabnumber">8</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
<span class="scilabid">f</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">8</span><span class="scilabdefault">;</span> <span class="scilaboperator">-</span><span class="scilabnumber">16</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
<span class="scilabid">A</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span> <span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span> <span class="scilabnumber">0</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
<span class="scilabid">conUB</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">5</span><span class="scilabdefault">;</span><span class="scilabnumber">3</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
@@ -129,24 +134,82 @@ It has type &#0034;struct&#0034; and contains the following fields.
<span class="scilabopenclose">[</span><span class="scilabid">xopt</span><span class="scilabdefault">,</span><span class="scilabid">fopt</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">qpipopt</span><span class="scilabopenclose">(</span><span class="scilabid">nbVar</span><span class="scilabdefault">,</span><span class="scilabid">nbCon</span><span class="scilabdefault">,</span><span class="scilabid">H</span><span class="scilabdefault">,</span><span class="scilabid">f</span><span class="scilabdefault">,</span><span class="scilabid">lb</span><span class="scilabdefault">,</span><span class="scilabid">ub</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">conLB</span><span class="scilabdefault">,</span><span class="scilabid">conUB</span><span class="scilabopenclose">)</span>
<span class="scilabcomment">//Press ENTER to continue</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
-<div class="refsection"><h3 class="title">Examples</h3>
- <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Find x in R^6 such that:</span>
-<span class="scilabid">A</span><span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span>
-<span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">4</span><span class="scilabdefault">,</span><span class="scilabnumber">5</span><span class="scilabdefault">,</span><span class="scilabnumber">6</span><span class="scilabdefault">;</span>
-<span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilabnumber">5</span><span class="scilabdefault">,</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span>
-<span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span>
-<span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
-<span class="scilabid">conLB</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilabnumber">2</span><span class="scilabdefault">;</span><span class="scilabnumber">3</span><span class="scilabdefault">;</span><span class="scilaboperator">-</span><span class="scilabconstants">%inf</span><span class="scilabdefault">;</span><span class="scilaboperator">-</span><span class="scilabconstants">%inf</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
-<span class="scilabid">conUB</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilabnumber">2</span><span class="scilabdefault">;</span><span class="scilabnumber">3</span><span class="scilabdefault">;</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilabnumber">2.5</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
-<span class="scilabid">lb</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">1000</span><span class="scilabdefault">;</span><span class="scilaboperator">-</span><span class="scilabnumber">10000</span><span class="scilabdefault">;</span> <span class="scilabnumber">0</span><span class="scilabdefault">;</span> <span class="scilaboperator">-</span><span class="scilabnumber">1000</span><span class="scilabdefault">;</span> <span class="scilaboperator">-</span><span class="scilabnumber">1000</span><span class="scilabdefault">;</span> <span class="scilaboperator">-</span><span class="scilabnumber">1000</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
-<span class="scilabid">ub</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">10000</span><span class="scilabdefault">;</span> <span class="scilabnumber">100</span><span class="scilabdefault">;</span> <span class="scilabnumber">1.5</span><span class="scilabdefault">;</span> <span class="scilabnumber">100</span><span class="scilabdefault">;</span> <span class="scilabnumber">100</span><span class="scilabdefault">;</span> <span class="scilabnumber">1000</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
-<span class="scilabcomment">//and minimize 0.5*x</span><span class="scilabcomment">&#0039;</span><span class="scilabcomment">⋅H⋅x + f</span><span class="scilabcomment">&#0039;</span><span class="scilabcomment">⋅x with</span>
-<span class="scilabid">f</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span> <span class="scilabnumber">2</span><span class="scilabdefault">;</span> <span class="scilabnumber">3</span><span class="scilabdefault">;</span> <span class="scilabnumber">4</span><span class="scilabdefault">;</span> <span class="scilabnumber">5</span><span class="scilabdefault">;</span> <span class="scilabnumber">6</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span> <span class="scilabid">H</span><span class="scilaboperator">=</span><a class="scilabcommand" href="scilab://eye">eye</a><span class="scilabopenclose">(</span><span class="scilabnumber">6</span><span class="scilabdefault">,</span><span class="scilabnumber">6</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
-<span class="scilabid">nbVar</span> <span class="scilaboperator">=</span> <span class="scilabnumber">6</span><span class="scilabdefault">;</span>
-<span class="scilabid">nbCon</span> <span class="scilaboperator">=</span> <span class="scilabnumber">5</span><span class="scilabdefault">;</span>
-<span class="scilabid">x0</span> <span class="scilaboperator">=</span> <a class="scilabmacro" href="scilab://repmat">repmat</a><span class="scilabopenclose">(</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabid">nbVar</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
-<span class="scilabid">param</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">MaxIter</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabnumber">300</span><span class="scilabdefault">,</span> <span class="scilabstring">&#0034;</span><span class="scilabstring">CpuTime</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabnumber">100</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
-<span class="scilabopenclose">[</span><span class="scilabid">xopt</span><span class="scilabdefault">,</span><span class="scilabid">fopt</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span><span class="scilabid">qpipopt</span><span class="scilabopenclose">(</span><span class="scilabid">nbVar</span><span class="scilabdefault">,</span><span class="scilabid">nbCon</span><span class="scilabdefault">,</span><span class="scilabid">H</span><span class="scilabdefault">,</span><span class="scilabid">f</span><span class="scilabdefault">,</span><span class="scilabid">lb</span><span class="scilabdefault">,</span><span class="scilabid">ub</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">conLB</span><span class="scilabdefault">,</span><span class="scilabid">conUB</span><span class="scilabdefault">,</span><span class="scilabid">x0</span><span class="scilabdefault">,</span><span class="scilabid">param</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+<div class="refsection"><h3 class="title">Example</h3>
+ <p class="para">We build on the previous example by providing a starting point, to facilitate the computation.</p>
+ <p class="para"><span><img src='./_LaTeX_qpipopt.xml_3.png' style='position:relative;top:37px;width:224px;height:133px'/></span></p>
+<p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 2: Standard quadratic objective function with starting points</span>
+<span class="scilabcomment">//Find x in R^2 such that:</span>
+<span class="scilabid">H</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">16</span> <span class="scilabnumber">0</span><span class="scilabdefault">;</span> <span class="scilabnumber">0</span> <span class="scilabnumber">8</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">f</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">8</span><span class="scilabdefault">;</span> <span class="scilaboperator">-</span><span class="scilabnumber">16</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">A</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span> <span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span> <span class="scilabnumber">0</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">conUB</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">5</span><span class="scilabdefault">;</span><span class="scilabnumber">3</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">conLB</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabconstants">%inf</span><span class="scilabdefault">;</span> <span class="scilaboperator">-</span><span class="scilabconstants">%inf</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">lb</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">0</span><span class="scilabdefault">;</span> <span class="scilabnumber">0</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">ub</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabconstants">%inf</span><span class="scilabdefault">;</span> <span class="scilabconstants">%inf</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">nbVar</span> <span class="scilaboperator">=</span> <span class="scilabnumber">2</span><span class="scilabdefault">;</span>
+<span class="scilabid">nbCon</span> <span class="scilaboperator">=</span> <span class="scilabnumber">2</span><span class="scilabdefault">;</span>
+<span class="scilabid">x0</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span> <span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabopenclose">[</span><span class="scilabid">xopt</span><span class="scilabdefault">,</span><span class="scilabid">fopt</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span><span class="scilabid">qpipopt</span><span class="scilabopenclose">(</span><span class="scilabid">nbVar</span><span class="scilabdefault">,</span><span class="scilabid">nbCon</span><span class="scilabdefault">,</span><span class="scilabid">H</span><span class="scilabdefault">,</span><span class="scilabid">f</span><span class="scilabdefault">,</span><span class="scilabid">lb</span><span class="scilabdefault">,</span><span class="scilabid">ub</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">conLB</span><span class="scilabdefault">,</span><span class="scilabid">conUB</span><span class="scilabdefault">,</span><span class="scilabid">x0</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Example</h3>
+ <p class="para">We can further enhance the functionality of qpipopt by setting input options. This provides us with the ability to control the solver parameters such as the maximum number of solver iterations and the max. CPU time allowed for the computation.</p>
+ <p class="para"><span><img src='./_LaTeX_qpipopt.xml_4.png' style='position:relative;top:37px;width:224px;height:133px'/></span></p>
+<p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 3: Standard quadratic objective function with starting points and options.</span>
+<span class="scilabid">H</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">16</span> <span class="scilabnumber">0</span><span class="scilabdefault">;</span> <span class="scilabnumber">0</span> <span class="scilabnumber">8</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">f</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">8</span><span class="scilabdefault">;</span> <span class="scilaboperator">-</span><span class="scilabnumber">16</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">A</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span> <span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span> <span class="scilabnumber">0</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">conUB</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">5</span><span class="scilabdefault">;</span><span class="scilabnumber">3</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">conLB</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabconstants">%inf</span><span class="scilabdefault">;</span> <span class="scilaboperator">-</span><span class="scilabconstants">%inf</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">lb</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">0</span><span class="scilabdefault">;</span> <span class="scilabnumber">0</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">ub</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabconstants">%inf</span><span class="scilabdefault">;</span> <span class="scilabconstants">%inf</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">nbVar</span> <span class="scilaboperator">=</span> <span class="scilabnumber">2</span><span class="scilabdefault">;</span>
+<span class="scilabid">nbCon</span> <span class="scilaboperator">=</span> <span class="scilabnumber">2</span><span class="scilabdefault">;</span>
+<span class="scilabid">x0</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span> <span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">options</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">MaxIter</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabnumber">300</span><span class="scilabdefault">,</span> <span class="scilabstring">&#0034;</span><span class="scilabstring">CpuTime</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabnumber">100</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabopenclose">[</span><span class="scilabid">xopt</span><span class="scilabdefault">,</span><span class="scilabid">fopt</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span><span class="scilabid">qpipopt</span><span class="scilabopenclose">(</span><span class="scilabid">nbVar</span><span class="scilabdefault">,</span><span class="scilabid">nbCon</span><span class="scilabdefault">,</span><span class="scilabid">H</span><span class="scilabdefault">,</span><span class="scilabid">f</span><span class="scilabdefault">,</span><span class="scilabid">lb</span><span class="scilabdefault">,</span><span class="scilabid">ub</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">conLB</span><span class="scilabdefault">,</span><span class="scilabid">conUB</span><span class="scilabdefault">,</span><span class="scilabid">x0</span><span class="scilabdefault">,</span><span class="scilabid">options</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+<div class="refsection"><h3 class="title">Example</h3>
+ <p class="para">Infeasible Problems: Find x in R^2 such that it minimizes:</p>
+ <p class="para"><span><img src='./_LaTeX_qpipopt.xml_5.png' style='position:relative;top:37px;width:224px;height:139px'/></span></p>
+<p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 4: Infeasible Problem</span>
+<span class="scilabcomment">//(Ref : example 14)https://www.me.utexas.edu/~jensen/ORMM/supplements/methods/nlpmethod/S2_quadratic.pdf</span>
+<span class="scilabcomment">// min. -8*x1^2 -16*x2^2 + x1 + 4*x2</span>
+<span class="scilabcomment">// such that</span>
+<span class="scilabcomment">// x1 + x2 </span><span class="scilabcomment">&#0060;</span><span class="scilabcomment">= 5,</span>
+<span class="scilabcomment">// x1 </span><span class="scilabcomment">&#0060;</span><span class="scilabcomment">= 3,</span>
+<span class="scilabcomment">// x1 </span><span class="scilabcomment">&#0062;</span><span class="scilabcomment">= 0,</span>
+<span class="scilabcomment">// x2 </span><span class="scilabcomment">&#0062;</span><span class="scilabcomment">= 0</span>
+<span class="scilabid">H</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">16</span> <span class="scilabnumber">0</span><span class="scilabdefault">;</span> <span class="scilabnumber">0</span> <span class="scilabnumber">8</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">f</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">8</span><span class="scilabdefault">;</span> <span class="scilaboperator">-</span><span class="scilabnumber">16</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">A</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span> <span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span> <span class="scilabnumber">0</span><span class="scilabopenclose">]</span>
+<span class="scilabid">conUB</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">5</span><span class="scilabdefault">;</span><span class="scilabnumber">3</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">conLB</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabconstants">%inf</span><span class="scilabdefault">;</span> <span class="scilaboperator">-</span><span class="scilabconstants">%inf</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">lb</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">4</span><span class="scilabdefault">;</span> <span class="scilabnumber">0</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">ub</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabconstants">%inf</span><span class="scilabdefault">;</span> <span class="scilabconstants">%inf</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">nbVar</span> <span class="scilaboperator">=</span> <span class="scilabnumber">2</span><span class="scilabdefault">;</span>
+<span class="scilabid">nbCon</span> <span class="scilaboperator">=</span> <span class="scilabnumber">2</span><span class="scilabdefault">;</span>
+<span class="scilabopenclose">[</span><span class="scilabid">xopt</span><span class="scilabdefault">,</span><span class="scilabid">fopt</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">qpipopt</span><span class="scilabopenclose">(</span><span class="scilabid">nbVar</span><span class="scilabdefault">,</span><span class="scilabid">nbCon</span><span class="scilabdefault">,</span><span class="scilabid">H</span><span class="scilabdefault">,</span><span class="scilabid">f</span><span class="scilabdefault">,</span><span class="scilabid">lb</span><span class="scilabdefault">,</span><span class="scilabid">ub</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">conLB</span><span class="scilabdefault">,</span><span class="scilabid">conUB</span><span class="scilabopenclose">)</span>
+<span class="scilabcomment">//Press ENTER to continue</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Example</h3>
+ <p class="para">Unbounded Problems: Find x in R^2 such that it minimizes:</p>
+ <p class="para"><span><img src='./_LaTeX_qpipopt.xml_6.png' style='position:relative;top:37px;width:224px;height:133px'/></span></p>
+<p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 5: Unbounded Problem</span>
+<span class="scilabcomment">//Find x in R^2 such that:</span>
+<span class="scilabid">H</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">16</span> <span class="scilabnumber">0</span><span class="scilabdefault">;</span> <span class="scilabnumber">0</span> <span class="scilabnumber">8</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">f</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">8</span><span class="scilabdefault">;</span> <span class="scilaboperator">-</span><span class="scilabnumber">16</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">A</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">2</span> <span class="scilabnumber">0</span><span class="scilabdefault">;</span><span class="scilabnumber">0</span> <span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">conUB</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">5</span><span class="scilabdefault">;</span><span class="scilabnumber">3</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">conLB</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabconstants">%inf</span><span class="scilabdefault">;</span> <span class="scilaboperator">-</span><span class="scilabconstants">%inf</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">lb</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">0</span><span class="scilabdefault">;</span> <span class="scilabnumber">0</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">ub</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabconstants">%inf</span><span class="scilabdefault">;</span> <span class="scilabconstants">%inf</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">nbVar</span> <span class="scilaboperator">=</span> <span class="scilabnumber">2</span><span class="scilabdefault">;</span>
+<span class="scilabid">nbCon</span> <span class="scilaboperator">=</span> <span class="scilabnumber">2</span><span class="scilabdefault">;</span>
+<span class="scilabid">x0</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span> <span class="scilabdefault">;</span><span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabopenclose">[</span><span class="scilabid">xopt</span><span class="scilabdefault">,</span><span class="scilabid">fopt</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span><span class="scilabid">qpipopt</span><span class="scilabopenclose">(</span><span class="scilabid">nbVar</span><span class="scilabdefault">,</span><span class="scilabid">nbCon</span><span class="scilabdefault">,</span><span class="scilabid">H</span><span class="scilabdefault">,</span><span class="scilabid">f</span><span class="scilabdefault">,</span><span class="scilabid">lb</span><span class="scilabdefault">,</span><span class="scilabid">ub</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">conLB</span><span class="scilabdefault">,</span><span class="scilabid">conUB</span><span class="scilabdefault">,</span><span class="scilabid">x0</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
<div class="refsection"><h3 class="title">Authors</h3>
<ul class="itemizedlist"><li class="member">Keyur Joshi, Saikiran, Iswarya, Harpreet Singh</li></ul></div>
@@ -161,7 +224,7 @@ It has type &#0034;struct&#0034; and contains the following fields.
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a></span>
+ <span class="top"><a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/qpipoptmat.html b/help/en_US/scilab_en_US_help/qpipoptmat.html
index cd9a0ad..7aa50eb 100644
--- a/help/en_US/scilab_en_US_help/qpipoptmat.html
+++ b/help/en_US/scilab_en_US_help/qpipoptmat.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a></span>
+ <span class="top"><a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; qpipoptmat</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; qpipoptmat</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">qpipoptmat</h1>
@@ -45,62 +45,64 @@
<span class="default">xopt</span><span class="default"> = </span><span class="functionid">qpipoptmat</span><span class="default">(</span><span class="default">H</span><span class="default">,</span><span class="default">f</span><span class="default">,</span><span class="default">A</span><span class="default">,</span><span class="default">b</span><span class="default">,</span><span class="default">Aeq</span><span class="default">,</span><span class="default">beq</span><span class="default">,</span><span class="default">lb</span><span class="default">,</span><span class="default">ub</span><span class="default">,</span><span class="default">x0</span><span class="default">,</span><span class="default">param</span><span class="default">)</span>
<span class="default">[</span><span class="default">xopt</span><span class="default">,</span><span class="default">fopt</span><span class="default">,</span><span class="default">exitflag</span><span class="default">,</span><span class="default">output</span><span class="default">,</span><span class="default">lamda</span><span class="default">] = </span><span class="functionid">qpipoptmat</span><span class="default">( ... )</span></pre></div></div>
-<div class="refsection"><h3 class="title">Parameters</h3>
+<div class="refsection"><h3 class="title">Input Parameters</h3>
<dl><dt><span class="term">H :</span>
- <dd><p class="para">a symmetric matrix of double, represents coefficients of quadratic in the quadratic problem.</p></dd></dt>
+ <dd><p class="para">A symmetric matrix of doubles, representing the Hessian of the quadratic problem.</p></dd></dt>
<dt><span class="term">f :</span>
- <dd><p class="para">a vector of double, represents coefficients of linear in the quadratic problem</p></dd></dt>
+ <dd><p class="para">A vector of doubles, representing coefficients of the linear terms in the quadratic problem.</p></dd></dt>
<dt><span class="term">A :</span>
- <dd><p class="para">a matrix of double, represents the linear coefficients in the inequality constraints A⋅x ≤ b.</p></dd></dt>
+ <dd><p class="para">A matrix of doubles, containing the coefficients of linear inequality constraints of size (m X n) where &#0039;m&#0039; is the number of linear inequality constraints.</p></dd></dt>
<dt><span class="term">b :</span>
- <dd><p class="para">a vector of double, represents the linear coefficients in the inequality constraints A⋅x ≤ b.</p></dd></dt>
+ <dd><p class="para">A vector of doubles, related to &#0039;A&#0039; and containing the the Right hand side equation of the linear inequality constraints of size (m X 1).</p></dd></dt>
<dt><span class="term">Aeq :</span>
- <dd><p class="para">a matrix of double, represents the linear coefficients in the equality constraints Aeq⋅x = beq.</p></dd></dt>
+ <dd><p class="para">A matrix of doubles, containing the coefficients of linear equality constraints of size (m1 X n) where &#0039;m1&#0039; is the number of linear equality constraints.</p></dd></dt>
<dt><span class="term">beq :</span>
- <dd><p class="para">a vector of double, represents the linear coefficients in the equality constraints Aeq⋅x = beq.</p></dd></dt>
+ <dd><p class="para">A vector of doubles, related to &#0039;Aeq&#0039; and containing the the Right hand side equation of the linear equality constraints of size (m1 X 1).</p></dd></dt>
<dt><span class="term">lb :</span>
- <dd><p class="para">a vector of double, contains lower bounds of the variables.</p></dd></dt>
+ <dd><p class="para">A vector of doubles, containing the lower bounds of the variables of size (1 X n) or (n X 1) where &#0039;n&#0039; is the number of variables.</p></dd></dt>
<dt><span class="term">ub :</span>
- <dd><p class="para">a vector of double, contains upper bounds of the variables.</p></dd></dt>
+ <dd><p class="para">A vector of doubles, containing the upper bounds of the variables of size (1 X n) or (n X 1) where &#0039;n&#0039; is the number of variables.</p></dd></dt>
<dt><span class="term">x0 :</span>
- <dd><p class="para">a vector of double, contains initial guess of variables.</p></dd></dt>
+ <dd><p class="para">A vector of doubles, containing the starting values of variables of size (1 X n) or (n X 1) where &#0039;n&#0039; is the number of variables.</p></dd></dt>
<dt><span class="term">param :</span>
- <dd><p class="para">a list containing the parameters to be set.</p></dd></dt>
- <dt><span class="term">xopt :</span>
- <dd><p class="para">a vector of double, the computed solution of the optimization problem.</p></dd></dt>
+ <dd><p class="para">A list, containing the option for user to specify. See below for details.</p></dd></dt></dl></div>
+<div class="refsection"><h3 class="title">Outputs</h3>
+ <dl><dt><span class="term">xopt :</span>
+ <dd><p class="para">A vector of doubles, containing the computed solution of the optimization problem.</p></dd></dt>
<dt><span class="term">fopt :</span>
- <dd><p class="para">a double, the value of the function at x.</p></dd></dt>
+ <dd><p class="para">A double, containing the value of the function at xopt.</p></dd></dt>
<dt><span class="term">exitflag :</span>
- <dd><p class="para">The exit status. See below for details.</p></dd></dt>
+ <dd><p class="para">An integer, containing the flag which denotes the reason for termination of algorithm. See below for details.</p></dd></dt>
<dt><span class="term">output :</span>
- <dd><p class="para">The structure consist of statistics about the optimization. See below for details.</p></dd></dt>
+ <dd><p class="para">A structure, containing the information about the optimization. See below for details.</p></dd></dt>
<dt><span class="term">lambda :</span>
- <dd><p class="para">The structure consist of the Lagrange multipliers at the solution of problem. See below for details.</p></dd></dt></dl></div>
+ <dd><p class="para">A structure, containing the Lagrange multipliers of the lower bounds, upper bounds and constraints at the optimized point. See below for details.</p></dd></dt></dl></div>
<div class="refsection"><h3 class="title">Description</h3>
<p class="para">Search the minimum of a constrained linear quadratic optimization problem specified by :</p>
- <p class="para"><span><img src='./_LaTeX_qpipoptmat.xml_1.png' style='position:relative;top:41px;width:277px;height:90px'/></span></p>
- <p class="para">The routine calls Ipopt for solving the quadratic problem, Ipopt is a library written in C++.</p>
- <p class="para">The options allows the user to set various parameters of the Optimization problem.
-It should be defined as type &#0034;list&#0034; and contains the following fields.
-<ul class="itemizedlist"><li>Syntax : options= list(&#0034;MaxIter&#0034;, [---], &#0034;CpuTime&#0034;, [---]);</li>
-<li>MaxIter : a Scalar, containing the Maximum Number of Iteration that the solver should take.</li>
-<li>CpuTime : a Scalar, containing the Maximum amount of CPU Time that the solver should take.</li>
-<li>Default Values : options = list(&#0034;MaxIter&#0034;, [3000], &#0034;CpuTime&#0034;, [600]);</li></ul></p>
- <p class="para">The exitflag allows to know the status of the optimization which is given back by Ipopt.
-<ul class="itemizedlist"><li>exitflag=0 : Optimal Solution Found</li>
-<li>exitflag=1 : Maximum Number of Iterations Exceeded. Output may not be optimal.</li>
-<li>exitflag=2 : Maximum CPU Time exceeded. Output may not be optimal.</li>
-<li>exitflag=3 : Stop at Tiny Step.</li>
-<li>exitflag=4 : Solved To Acceptable Level.</li>
-<li>exitflag=5 : Converged to a point of local infeasibility.</li></ul></p>
- <p class="para">For more details on exitflag see the ipopt documentation, go to http://www.coin-or.org/Ipopt/documentation/</p>
- <p class="para">The output data structure contains detailed informations about the optimization process.
-It has type &#0034;struct&#0034; and contains the following fields.
-<ul class="itemizedlist"><li>output.iterations: The number of iterations performed during the search</li>
+ <p class="para"><span><img src='./_LaTeX_qpipoptmat.xml_1.png' style='position:relative;top:18px;width:315px;height:95px'/></span></p>
+ <p class="para">qpipoptmat calls Ipopt, an optimization library written in C++, to solve the optimization problem.</p>
+ <h3 class="title">Options</h3>
+ <p class="para">The options allow the user to set various parameters of the Optimization problem. The syntax for the options is given by:</p>
+ <p class="para">options= list(&#0034;MaxIter&#0034;, [---], &#0034;CpuTime&#0034;, [---], &#0034;GradObj&#0034;, ---, &#0034;Hessian&#0034;, ---, &#0034;GradCon&#0034;, ---);</p>
+ <p class="para">The options should be defined as type &#0034;list&#0034; and consist of the following fields:
+<ul class="itemizedlist"><li>MaxIter : A Scalar, specifying the maximum number of iterations that the solver should take.</li>
+<li>CpuTime : A Scalar, specifying the maximum amount of CPU time in seconds that the solver should take.</li></ul></p>
+ <p class="para">The default values for the various items are given as:</p>
+ <p class="para">options = list(&#0034;MaxIter&#0034;, [3000], &#0034;CpuTime&#0034;, [600]);</p>
+ <p class="para">The exitflag allows the user to know the status of the optimization which is returned by Ipopt. The values it can take and what they indicate is described below:
+<ul class="itemizedlist"><li>0 : Optimal Solution Found</li>
+<li>1 : Maximum Number of Iterations Exceeded. Output may not be optimal.</li>
+<li>2 : Maximum amount of CPU Time exceeded. Output may not be optimal.</li>
+<li>3 : Stop at Tiny Step.</li>
+<li>4 : Solved To Acceptable Level.</li>
+<li>5 : Converged to a point of local infeasibility.</li></ul></p>
+ <p class="para">For more details on exitflag, see the Ipopt documentation which can be found on http://www.coin-or.org/Ipopt/documentation/</p>
+ <p class="para">The output data structure contains detailed information about the optimization process.
+It is of type &#0034;struct&#0034; and contains the following fields.
+<ul class="itemizedlist"><li>output.iterations: The number of iterations performed.</li>
<li>output.constrviolation: The max-norm of the constraint violation.</li></ul></p>
- <p class="para">The lambda data structure contains the Lagrange multipliers at the end
-of optimization. In the current version the values are returned only when the the solution is optimal.
+ <p class="para">The lambda data structure contains the Lagrange multipliers at the end of optimization. In the current version, the values are returned only when the the solution is optimal.
It has type &#0034;struct&#0034; and contains the following fields.
<ul class="itemizedlist"><li>lambda.lower: The Lagrange multipliers for the lower bound constraints.</li>
<li>lambda.upper: The Lagrange multipliers for the upper bound constraints.</li>
@@ -108,42 +110,126 @@ It has type &#0034;struct&#0034; and contains the following fields.
<li>lambda.ineqlin: The Lagrange multipliers for the linear inequality constraints.</li></ul></p>
<p class="para"></p></div>
-<div class="refsection"><h3 class="title">Examples</h3>
- <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Ref : example 14 :</span>
-<span class="scilabcomment">//https://www.me.utexas.edu/~jensen/ORMM/supplements/methods/nlpmethod/S2_quadratic.pdf</span>
-<span class="scilabcomment">// min. -8*x1*x1 -16*x2*x2 + x1 + 4*x2</span>
-<span class="scilabcomment">// such that</span>
-<span class="scilabcomment">// x1 + x2 </span><span class="scilabcomment">&#0060;</span><span class="scilabcomment">= 5,</span>
-<span class="scilabcomment">// x1 </span><span class="scilabcomment">&#0060;</span><span class="scilabcomment">= 3,</span>
-<span class="scilabcomment">// x1 </span><span class="scilabcomment">&#0062;</span><span class="scilabcomment">= 0,</span>
-<span class="scilabcomment">// x2 </span><span class="scilabcomment">&#0062;</span><span class="scilabcomment">= 0</span>
-<span class="scilabid">H</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">2</span> <span class="scilabnumber">0</span>
-<span class="scilabnumber">0</span> <span class="scilabnumber">8</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
-<span class="scilabid">f</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">8</span><span class="scilabdefault">;</span> <span class="scilaboperator">-</span><span class="scilabnumber">16</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
-<span class="scilabid">A</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span> <span class="scilabnumber">1</span><span class="scilabdefault">;</span><span class="scilabnumber">1</span> <span class="scilabnumber">0</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
-<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">5</span><span class="scilabdefault">;</span><span class="scilabnumber">3</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
-<span class="scilabid">lb</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">0</span><span class="scilabdefault">;</span> <span class="scilabnumber">0</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
-<span class="scilabid">ub</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabconstants">%inf</span><span class="scilabdefault">;</span> <span class="scilabconstants">%inf</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
-<span class="scilabopenclose">[</span><span class="scilabid">xopt</span><span class="scilabdefault">,</span><span class="scilabid">fopt</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">qpipoptmat</span><span class="scilabopenclose">(</span><span class="scilabid">H</span><span class="scilabdefault">,</span><span class="scilabid">f</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span><span class="scilabid">lb</span><span class="scilabdefault">,</span><span class="scilabid">ub</span><span class="scilabopenclose">)</span>
-<span class="scilabcomment">// Press ENTER to continue</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
-
-<div class="refsection"><h3 class="title">Examples</h3>
- <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Find x in R^6 such that:</span>
+
+<div class="refsection"><h3 class="title">Example</h3>
+ <p class="para">Here we solve a simple objective function.</p>
+ <p class="para">Find x in R^6 such that it minimizes:</p>
+ <p class="para"><span><img src='./_LaTeX_qpipoptmat.xml_2.png' style='position:relative;top:42px;width:284px;height:92px'/></span></p>
+ <p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 1:</span>
+<span class="scilabcomment">//Minimize 0.5*x</span><span class="scilabcomment">&#0039;</span><span class="scilabcomment">*H*x + f</span><span class="scilabcomment">&#0039;</span><span class="scilabcomment">*x with</span>
+<span class="scilabid">f</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span> <span class="scilabnumber">2</span><span class="scilabdefault">;</span> <span class="scilabnumber">3</span><span class="scilabdefault">;</span> <span class="scilabnumber">4</span><span class="scilabdefault">;</span> <span class="scilabnumber">5</span><span class="scilabdefault">;</span> <span class="scilabnumber">6</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span> <span class="scilabid">H</span><span class="scilaboperator">=</span><a class="scilabcommand" href="scilab://eye">eye</a><span class="scilabopenclose">(</span><span class="scilabnumber">6</span><span class="scilabdefault">,</span><span class="scilabnumber">6</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabopenclose">[</span><span class="scilabid">xopt</span><span class="scilabdefault">,</span><span class="scilabid">fopt</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span><span class="scilabid">qpipoptmat</span><span class="scilabopenclose">(</span><span class="scilabid">H</span><span class="scilabdefault">,</span><span class="scilabid">f</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Example</h3>
+ We proceed to add simple linear inequality constraints.
+
+<p class="para"><span><img src='./_LaTeX_qpipoptmat.xml_3.png' style='position:relative;top:17px;width:229px;height:42px'/></span></p>
+ <p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 2:</span>
+<span class="scilabid">f</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span> <span class="scilabnumber">2</span><span class="scilabdefault">;</span> <span class="scilabnumber">3</span><span class="scilabdefault">;</span> <span class="scilabnumber">4</span><span class="scilabdefault">;</span> <span class="scilabnumber">5</span><span class="scilabdefault">;</span> <span class="scilabnumber">6</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span> <span class="scilabid">H</span><span class="scilaboperator">=</span><a class="scilabcommand" href="scilab://eye">eye</a><span class="scilabopenclose">(</span><span class="scilabnumber">6</span><span class="scilabdefault">,</span><span class="scilabnumber">6</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Inequality constraints</span>
+<span class="scilabid">A</span><span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span>
+<span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span> <span class="scilabnumber">2.5</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabopenclose">[</span><span class="scilabid">xopt</span><span class="scilabdefault">,</span><span class="scilabid">fopt</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span><span class="scilabid">qpipoptmat</span><span class="scilabopenclose">(</span><span class="scilabid">H</span><span class="scilabdefault">,</span><span class="scilabid">f</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Example</h3>
+ Here we build up on the previous example by adding linear equality constraints.
+We add the following constraints to the problem specified above:
+<p class="para"><span><img src='./_LaTeX_qpipoptmat.xml_4.png' style='position:relative;top:27px;width:238px;height:62px'/></span></p>
+ <p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 3:</span>
+<span class="scilabcomment">//Minimize 0.5*x</span><span class="scilabcomment">&#0039;</span><span class="scilabcomment">*H*x + f</span><span class="scilabcomment">&#0039;</span><span class="scilabcomment">*x with</span>
+<span class="scilabid">f</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span> <span class="scilabnumber">2</span><span class="scilabdefault">;</span> <span class="scilabnumber">3</span><span class="scilabdefault">;</span> <span class="scilabnumber">4</span><span class="scilabdefault">;</span> <span class="scilabnumber">5</span><span class="scilabdefault">;</span> <span class="scilabnumber">6</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span> <span class="scilabid">H</span><span class="scilaboperator">=</span><a class="scilabcommand" href="scilab://eye">eye</a><span class="scilabopenclose">(</span><span class="scilabnumber">6</span><span class="scilabdefault">,</span><span class="scilabnumber">6</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Inequality constraints</span>
+<span class="scilabid">A</span><span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span>
+<span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span> <span class="scilabnumber">2.5</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Equality constraints</span>
+<span class="scilabid">Aeq</span><span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span>
+<span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">4</span><span class="scilabdefault">,</span><span class="scilabnumber">5</span><span class="scilabdefault">,</span><span class="scilabnumber">6</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilabnumber">5</span><span class="scilabdefault">,</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">beq</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span> <span class="scilabnumber">2</span><span class="scilabdefault">;</span> <span class="scilabnumber">3</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabopenclose">[</span><span class="scilabid">xopt</span><span class="scilabdefault">,</span><span class="scilabid">fopt</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span><span class="scilabid">qpipoptmat</span><span class="scilabopenclose">(</span><span class="scilabid">H</span><span class="scilabdefault">,</span><span class="scilabid">f</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabid">Aeq</span><span class="scilabdefault">,</span><span class="scilabid">beq</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Example</h3>
+<p class="para">In this example, we proceed to add the upper and lower bounds to the objective function.</p>
+<p class="para"><span><img src='./_LaTeX_qpipoptmat.xml_5.png' style='position:relative;top:57px;width:193px;height:122px'/></span></p>
+ <p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 4:</span>
+<span class="scilabcomment">//Minimize 0.5*x</span><span class="scilabcomment">&#0039;</span><span class="scilabcomment">*H*x + f</span><span class="scilabcomment">&#0039;</span><span class="scilabcomment">*x with</span>
+<span class="scilabid">f</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span> <span class="scilabnumber">2</span><span class="scilabdefault">;</span> <span class="scilabnumber">3</span><span class="scilabdefault">;</span> <span class="scilabnumber">4</span><span class="scilabdefault">;</span> <span class="scilabnumber">5</span><span class="scilabdefault">;</span> <span class="scilabnumber">6</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span> <span class="scilabid">H</span><span class="scilaboperator">=</span><a class="scilabcommand" href="scilab://eye">eye</a><span class="scilabopenclose">(</span><span class="scilabnumber">6</span><span class="scilabdefault">,</span><span class="scilabnumber">6</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Inequality constraints</span>
+<span class="scilabid">A</span><span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span>
+<span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span> <span class="scilabnumber">2.5</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Equality constraints</span>
<span class="scilabid">Aeq</span><span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span>
<span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">4</span><span class="scilabdefault">,</span><span class="scilabnumber">5</span><span class="scilabdefault">,</span><span class="scilabnumber">6</span><span class="scilabdefault">;</span>
<span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilabnumber">5</span><span class="scilabdefault">,</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
<span class="scilabid">beq</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span> <span class="scilabnumber">2</span><span class="scilabdefault">;</span> <span class="scilabnumber">3</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Variable bounds</span>
+<span class="scilabid">lb</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">1000</span><span class="scilabdefault">;</span> <span class="scilaboperator">-</span><span class="scilabnumber">10000</span><span class="scilabdefault">;</span> <span class="scilabnumber">0</span><span class="scilabdefault">;</span> <span class="scilaboperator">-</span><span class="scilabnumber">1000</span><span class="scilabdefault">;</span> <span class="scilaboperator">-</span><span class="scilabnumber">1000</span><span class="scilabdefault">;</span> <span class="scilaboperator">-</span><span class="scilabnumber">1000</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">ub</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">10000</span><span class="scilabdefault">;</span> <span class="scilabnumber">100</span><span class="scilabdefault">;</span> <span class="scilabnumber">1.5</span><span class="scilabdefault">;</span> <span class="scilabnumber">100</span><span class="scilabdefault">;</span> <span class="scilabnumber">100</span><span class="scilabdefault">;</span> <span class="scilabnumber">1000</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabopenclose">[</span><span class="scilabid">xopt</span><span class="scilabdefault">,</span><span class="scilabid">fopt</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span><span class="scilabid">qpipoptmat</span><span class="scilabopenclose">(</span><span class="scilabid">H</span><span class="scilabdefault">,</span><span class="scilabid">f</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabid">Aeq</span><span class="scilabdefault">,</span><span class="scilabid">beq</span><span class="scilabdefault">,</span><span class="scilabid">lb</span><span class="scilabdefault">,</span><span class="scilabid">ub</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Example</h3>
+<p class="para">In this example, we initialize the values of x to speed up the computation. We further enhance the functionality of qpipoptmat by setting input options.</p>
+<p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 5:</span>
+<span class="scilabcomment">//Minimize 0.5*x</span><span class="scilabcomment">&#0039;</span><span class="scilabcomment">*H*x + f</span><span class="scilabcomment">&#0039;</span><span class="scilabcomment">*x with</span>
+<span class="scilabid">f</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span> <span class="scilabnumber">2</span><span class="scilabdefault">;</span> <span class="scilabnumber">3</span><span class="scilabdefault">;</span> <span class="scilabnumber">4</span><span class="scilabdefault">;</span> <span class="scilabnumber">5</span><span class="scilabdefault">;</span> <span class="scilabnumber">6</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span> <span class="scilabid">H</span><span class="scilaboperator">=</span><a class="scilabcommand" href="scilab://eye">eye</a><span class="scilabopenclose">(</span><span class="scilabnumber">6</span><span class="scilabdefault">,</span><span class="scilabnumber">6</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Inequality constraints</span>
<span class="scilabid">A</span><span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span>
<span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span> <span class="scilabnumber">2.5</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Equality constraints</span>
+<span class="scilabid">Aeq</span><span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span>
+<span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">4</span><span class="scilabdefault">,</span><span class="scilabnumber">5</span><span class="scilabdefault">,</span><span class="scilabnumber">6</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilabnumber">5</span><span class="scilabdefault">,</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">beq</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span> <span class="scilabnumber">2</span><span class="scilabdefault">;</span> <span class="scilabnumber">3</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Variable bounds</span>
<span class="scilabid">lb</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">1000</span><span class="scilabdefault">;</span> <span class="scilaboperator">-</span><span class="scilabnumber">10000</span><span class="scilabdefault">;</span> <span class="scilabnumber">0</span><span class="scilabdefault">;</span> <span class="scilaboperator">-</span><span class="scilabnumber">1000</span><span class="scilabdefault">;</span> <span class="scilaboperator">-</span><span class="scilabnumber">1000</span><span class="scilabdefault">;</span> <span class="scilaboperator">-</span><span class="scilabnumber">1000</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
<span class="scilabid">ub</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">10000</span><span class="scilabdefault">;</span> <span class="scilabnumber">100</span><span class="scilabdefault">;</span> <span class="scilabnumber">1.5</span><span class="scilabdefault">;</span> <span class="scilabnumber">100</span><span class="scilabdefault">;</span> <span class="scilabnumber">100</span><span class="scilabdefault">;</span> <span class="scilabnumber">1000</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Initial guess and options</span>
<span class="scilabid">x0</span> <span class="scilaboperator">=</span> <a class="scilabmacro" href="scilab://repmat">repmat</a><span class="scilabopenclose">(</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">6</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
-<span class="scilabid">param</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">MaxIter</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabnumber">300</span><span class="scilabdefault">,</span> <span class="scilabstring">&#0034;</span><span class="scilabstring">CpuTime</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabnumber">100</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
-<span class="scilabcomment">//and minimize 0.5*x</span><span class="scilabcomment">&#0039;</span><span class="scilabcomment">*H*x + f</span><span class="scilabcomment">&#0039;</span><span class="scilabcomment">*x with</span>
+<span class="scilabid">options</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">MaxIter</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabnumber">300</span><span class="scilabdefault">,</span> <span class="scilabstring">&#0034;</span><span class="scilabstring">CpuTime</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabnumber">100</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabopenclose">[</span><span class="scilabid">xopt</span><span class="scilabdefault">,</span><span class="scilabid">fopt</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span><span class="scilabid">qpipoptmat</span><span class="scilabopenclose">(</span><span class="scilabid">H</span><span class="scilabdefault">,</span><span class="scilabid">f</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabid">Aeq</span><span class="scilabdefault">,</span><span class="scilabid">beq</span><span class="scilabdefault">,</span><span class="scilabid">lb</span><span class="scilabdefault">,</span><span class="scilabid">ub</span><span class="scilabdefault">,</span><span class="scilabid">x0</span><span class="scilabdefault">,</span><span class="scilabid">options</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Example</h3>
+Infeasible Problems: Find x in R^6 such that it minimizes the following objective function under the given constraints:
+<p class="para"><span><img src='./_LaTeX_qpipoptmat.xml_6.png' style='position:relative;top:40px;width:298px;height:88px'/></span></p>
+<p class="para"></p>
+<div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 6:</span>
+<span class="scilabcomment">//Minimize 0.5*x</span><span class="scilabcomment">&#0039;</span><span class="scilabcomment">*H*x + f</span><span class="scilabcomment">&#0039;</span><span class="scilabcomment">*x with</span>
<span class="scilabid">f</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span> <span class="scilabnumber">2</span><span class="scilabdefault">;</span> <span class="scilabnumber">3</span><span class="scilabdefault">;</span> <span class="scilabnumber">4</span><span class="scilabdefault">;</span> <span class="scilabnumber">5</span><span class="scilabdefault">;</span> <span class="scilabnumber">6</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span> <span class="scilabid">H</span><span class="scilaboperator">=</span><a class="scilabcommand" href="scilab://eye">eye</a><span class="scilabopenclose">(</span><span class="scilabnumber">6</span><span class="scilabdefault">,</span><span class="scilabnumber">6</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
-<span class="scilabopenclose">[</span><span class="scilabid">xopt</span><span class="scilabdefault">,</span><span class="scilabid">fopt</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span><span class="scilabid">qpipoptmat</span><span class="scilabopenclose">(</span><span class="scilabid">H</span><span class="scilabdefault">,</span><span class="scilabid">f</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabid">Aeq</span><span class="scilabdefault">,</span><span class="scilabid">beq</span><span class="scilabdefault">,</span><span class="scilabid">lb</span><span class="scilabdefault">,</span><span class="scilabid">ub</span><span class="scilabdefault">,</span><span class="scilabid">x0</span><span class="scilabdefault">,</span><span class="scilabid">param</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+<span class="scilabcomment">//Inequality constraints</span>
+<span class="scilabid">A</span><span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span>
+<span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span> <span class="scilabnumber">2.5</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Equality constraints</span>
+<span class="scilabid">Aeq</span><span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span>
+<span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">4</span><span class="scilabdefault">,</span><span class="scilabnumber">5</span><span class="scilabdefault">,</span><span class="scilabnumber">6</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">beq</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">4</span><span class="scilabdefault">;</span> <span class="scilabnumber">2</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabopenclose">[</span><span class="scilabid">xopt</span><span class="scilabdefault">,</span><span class="scilabid">fopt</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span><span class="scilabid">qpipoptmat</span><span class="scilabopenclose">(</span><span class="scilabid">H</span><span class="scilabdefault">,</span><span class="scilabid">f</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabid">Aeq</span><span class="scilabdefault">,</span><span class="scilabid">beq</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+<div class="refsection"><h3 class="title">Example</h3>
+<p class="para">Unbounded Problems: Find x in R^6 such that it minimizes the objective function used above under the following constraints:</p>
+<p class="para"><span><img src='./_LaTeX_qpipoptmat.xml_7.png' style='position:relative;top:40px;width:426px;height:204px'/></span></p>
+<p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Example 7:</span>
+<span class="scilabcomment">//Minimize 0.5*x</span><span class="scilabcomment">&#0039;</span><span class="scilabcomment">*H*x + f</span><span class="scilabcomment">&#0039;</span><span class="scilabcomment">*x with</span>
+<span class="scilabid">f</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span> <span class="scilabnumber">2</span><span class="scilabdefault">;</span> <span class="scilabnumber">3</span><span class="scilabdefault">;</span> <span class="scilabnumber">4</span><span class="scilabdefault">;</span> <span class="scilabnumber">5</span><span class="scilabdefault">;</span> <span class="scilabnumber">6</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span> <span class="scilabid">H</span><span class="scilaboperator">=</span><a class="scilabcommand" href="scilab://eye">eye</a><span class="scilabopenclose">(</span><span class="scilabnumber">6</span><span class="scilabdefault">,</span><span class="scilabnumber">6</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span> <span class="scilabid">H</span><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span> <span class="scilaboperator">=</span> <span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Inequality constraints</span>
+<span class="scilabid">A</span><span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span>
+<span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span> <span class="scilabnumber">2.5</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Equality constraints</span>
+<span class="scilabid">Aeq</span><span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span>
+<span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilaboperator">-</span><span class="scilabnumber">4</span><span class="scilabdefault">,</span><span class="scilabnumber">5</span><span class="scilabdefault">,</span><span class="scilabnumber">6</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">beq</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span> <span class="scilabnumber">2</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabopenclose">[</span><span class="scilabid">xopt</span><span class="scilabdefault">,</span><span class="scilabid">fopt</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span><span class="scilabid">qpipoptmat</span><span class="scilabopenclose">(</span><span class="scilabid">H</span><span class="scilabdefault">,</span><span class="scilabid">f</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabid">Aeq</span><span class="scilabdefault">,</span><span class="scilabid">beq</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
<div class="refsection"><h3 class="title">Authors</h3>
<ul class="itemizedlist"><li class="member">Keyur Joshi, Saikiran, Iswarya, Harpreet Singh</li></ul></div>
<br />
@@ -157,7 +243,7 @@ It has type &#0034;struct&#0034; and contains the following fields.
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a></span>
+ <span class="top"><a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/section_016165dcad2b2229387faee34442c3dd.html b/help/en_US/scilab_en_US_help/section_016165dcad2b2229387faee34442c3dd.html
new file mode 100644
index 0000000..2c3f0b9
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/section_016165dcad2b2229387faee34442c3dd.html
@@ -0,0 +1,285 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <title></title>
+ <style type="text/css" media="all">
+ @import url("scilab_code.css");
+ @import url("xml_code.css");
+ @import url("c_code.css");
+ @import url("style.css");
+ </style>
+ </head>
+ <body>
+ <div class="manualnavbar">
+ <table width="100%"><tr>
+ <td width="30%">
+ <span class="previous"><a href="symphonymat.html">&lt;&lt; symphonymat</a></span>
+
+ </td>
+ <td width="40%" class="center">
+ <span class="top"><a href="section_7f9be39cf912aa1e283b946d86a6bd7c.html">FOSSEE Optimization Toolbox</a></span>
+
+ </td>
+ <td width="30%" class="next">
+
+ </td>
+ </tr></table>
+ <hr />
+ </div>
+
+
+
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_7f9be39cf912aa1e283b946d86a6bd7c.html">FOSSEE Optimization Toolbox</a> &gt; Symphony Native Functions</span>
+
+ <br /><br />
+ <h3 class="title-chapter">Symphony Native Functions</h3>
+<ul class="list-refentry"><li><a href="sym_addConstr.html" class="refentry">sym_addConstr</a> &#8212; <span class="refentry-description">Add a new constraint</span></li>
+
+
+
+<li><a href="sym_addVar.html" class="refentry">sym_addVar</a> &#8212; <span class="refentry-description">Add a new variable</span></li>
+
+
+
+<li><a href="sym_close.html" class="refentry">sym_close</a> &#8212; <span class="refentry-description">Close the Symphony environment</span></li>
+
+
+
+<li><a href="sym_deleteConstrs.html" class="refentry">sym_deleteConstrs</a> &#8212; <span class="refentry-description">This routine is used to delete rows from the original constraint matrix.</span></li>
+
+
+
+<li><a href="sym_deleteVars.html" class="refentry">sym_deleteVars</a> &#8212; <span class="refentry-description">This routine is used to delete columns from the original problem description.</span></li>
+
+
+
+<li><a href="sym_getConstrActivity.html" class="refentry">sym_getConstrActivity</a> &#8212; <span class="refentry-description">Get the activity of the constraints in the solution</span></li>
+
+
+
+<li><a href="sym_getConstrLower.html" class="refentry">sym_getConstrLower</a> &#8212; <span class="refentry-description">To get the lower bounds of the constraints.</span></li>
+
+
+
+<li><a href="sym_getConstrRange.html" class="refentry">sym_getConstrRange</a> &#8212; <span class="refentry-description">To to get the constraint ranges.</span></li>
+
+
+
+<li><a href="sym_getConstrSense.html" class="refentry">sym_getConstrSense</a> &#8212; <span class="refentry-description">To get the row senses.</span></li>
+
+
+
+<li><a href="sym_getConstrUpper.html" class="refentry">sym_getConstrUpper</a> &#8212; <span class="refentry-description">To get the upper bounds of the constraints.</span></li>
+
+
+
+<li><a href="sym_getDblParam.html" class="refentry">sym_getDblParam</a> &#8212; <span class="refentry-description">This routine is used to get the value of a double type parameter.</span></li>
+
+
+
+<li><a href="sym_getInfinity.html" class="refentry">sym_getInfinity</a> &#8212; <span class="refentry-description">Get Symphony&#0039;s infinity value</span></li>
+
+
+
+<li><a href="sym_getIntParam.html" class="refentry">sym_getIntParam</a> &#8212; <span class="refentry-description">This routine is used to get the value of an integer type parameter.</span></li>
+
+
+
+<li><a href="sym_getIterCount.html" class="refentry">sym_getIterCount</a> &#8212; <span class="refentry-description">To get the number of the analyzed nodes of the branching tree after solving the problem.</span></li>
+
+
+
+<li><a href="sym_getMatrix.html" class="refentry">sym_getMatrix</a> &#8212; <span class="refentry-description">To get the constraint matrix.</span></li>
+
+
+
+<li><a href="sym_getNumConstr.html" class="refentry">sym_getNumConstr</a> &#8212; <span class="refentry-description">To get the number of the constraints of the current problem.</span></li>
+
+
+
+<li><a href="sym_getNumElements.html" class="refentry">sym_getNumElements</a> &#8212; <span class="refentry-description">To get the number of non-zero entries of the constraint matrix of the current problem.</span></li>
+
+
+
+<li><a href="sym_getNumVar.html" class="refentry">sym_getNumVar</a> &#8212; <span class="refentry-description">To get the number of the variables of the current problem.</span></li>
+
+
+
+<li><a href="sym_getObjCoeff.html" class="refentry">sym_getObjCoeff</a> &#8212; <span class="refentry-description">To get the objective vector.</span></li>
+
+
+
+<li><a href="sym_getObjSense.html" class="refentry">sym_getObjSense</a> &#8212; <span class="refentry-description">Get the objective sense</span></li>
+
+
+
+<li><a href="sym_getObjVal.html" class="refentry">sym_getObjVal</a> &#8212; <span class="refentry-description">Get the optimized objective value</span></li>
+
+
+
+<li><a href="sym_getPrimalBound.html" class="refentry">sym_getPrimalBound</a> &#8212; <span class="refentry-description">Get the primal bound of the problem</span></li>
+
+
+
+<li><a href="sym_getRhs.html" class="refentry">sym_getRhs</a> &#8212; <span class="refentry-description">To to get the right hand side vector(column vector).</span></li>
+
+
+
+<li><a href="sym_getStatus.html" class="refentry">sym_getStatus</a> &#8212; <span class="refentry-description">To get status of the problem solver.</span></li>
+
+
+
+<li><a href="sym_getStrParam.html" class="refentry">sym_getStrParam</a> &#8212; <span class="refentry-description">This routine is used to get the value of a string type parameter.</span></li>
+
+
+
+<li><a href="sym_getVarLower.html" class="refentry">sym_getVarLower</a> &#8212; <span class="refentry-description">To get the lower bounds of the variables.</span></li>
+
+
+
+<li><a href="sym_getVarSoln.html" class="refentry">sym_getVarSoln</a> &#8212; <span class="refentry-description">Get the solution for the problem</span></li>
+
+
+
+<li><a href="sym_getVarUpper.html" class="refentry">sym_getVarUpper</a> &#8212; <span class="refentry-description">To get the upper bounds of the variables.</span></li>
+
+
+
+<li><a href="sym_isAbandoned.html" class="refentry">sym_isAbandoned</a> &#8212; <span class="refentry-description">To check whether the problem was abandoned for some reason.</span></li>
+
+
+
+<li><a href="sym_isBinary.html" class="refentry">sym_isBinary</a> &#8212; <span class="refentry-description">Check if a variable is constrained to be binary</span></li>
+
+
+
+<li><a href="sym_isContinuous.html" class="refentry">sym_isContinuous</a> &#8212; <span class="refentry-description">Check if a variable is continuous</span></li>
+
+
+
+<li><a href="sym_isEnvActive.html" class="refentry">sym_isEnvActive</a> &#8212; <span class="refentry-description">Check if Symphony environment is active</span></li>
+
+
+
+<li><a href="sym_isInfeasible.html" class="refentry">sym_isInfeasible</a> &#8212; <span class="refentry-description">To check whether the problem was proven to be infeasible.</span></li>
+
+
+
+<li><a href="sym_isInteger.html" class="refentry">sym_isInteger</a> &#8212; <span class="refentry-description">Check if a variable is constrained to be an integer</span></li>
+
+
+
+<li><a href="sym_isIterLimitReached.html" class="refentry">sym_isIterLimitReached</a> &#8212; <span class="refentry-description">To know whether the iteration limit (node limit) was reached.</span></li>
+
+
+
+<li><a href="sym_isOptimal.html" class="refentry">sym_isOptimal</a> &#8212; <span class="refentry-description">To check whether the problem was solved to optimality.</span></li>
+
+
+
+<li><a href="sym_isTargetGapAchieved.html" class="refentry">sym_isTargetGapAchieved</a> &#8212; <span class="refentry-description">To know whether the target gap was reached.</span></li>
+
+
+
+<li><a href="sym_isTimeLimitReached.html" class="refentry">sym_isTimeLimitReached</a> &#8212; <span class="refentry-description">To know whether the time limit was reached.</span></li>
+
+
+
+<li><a href="sym_loadMPS.html" class="refentry">sym_loadMPS</a> &#8212; <span class="refentry-description">This routine is used to load an instance from an MPS file.</span></li>
+
+
+
+<li><a href="sym_loadProblem.html" class="refentry">sym_loadProblem</a> &#8212; <span class="refentry-description">Load a problem into Symphony</span></li>
+
+
+
+<li><a href="sym_loadProblemBasic.html" class="refentry">sym_loadProblemBasic</a> &#8212; <span class="refentry-description">Load a problem into Symphony (basic version)</span></li>
+
+
+
+<li><a href="sym_open.html" class="refentry">sym_open</a> &#8212; <span class="refentry-description">Open the Symphony environment</span></li>
+
+
+
+<li><a href="sym_resetParams.html" class="refentry">sym_resetParams</a> &#8212; <span class="refentry-description">This routine sets all the environment variables and parameters to their default values.</span></li>
+
+
+
+<li><a href="sym_setConstrLower.html" class="refentry">sym_setConstrLower</a> &#8212; <span class="refentry-description">Set the lower bound of a constraint</span></li>
+
+
+
+<li><a href="sym_setConstrType.html" class="refentry">sym_setConstrType</a> &#8212; <span class="refentry-description">Set the type of a constraint</span></li>
+
+
+
+<li><a href="sym_setConstrUpper.html" class="refentry">sym_setConstrUpper</a> &#8212; <span class="refentry-description">Set the upper bound of a constraint</span></li>
+
+
+
+<li><a href="sym_setContinuous.html" class="refentry">sym_setContinuous</a> &#8212; <span class="refentry-description">This routine is used to set the type of a variable to be continuous.</span></li>
+
+
+
+<li><a href="sym_setDblParam.html" class="refentry">sym_setDblParam</a> &#8212; <span class="refentry-description">This routine is used to set a double type parameter.</span></li>
+
+
+
+<li><a href="sym_setIntParam.html" class="refentry">sym_setIntParam</a> &#8212; <span class="refentry-description">This routine is used to set an integer type parameter.</span></li>
+
+
+
+<li><a href="sym_setInteger.html" class="refentry">sym_setInteger</a> &#8212; <span class="refentry-description">This routine is used to set the type of a variable to be integer.</span></li>
+
+
+
+<li><a href="sym_setObjCoeff.html" class="refentry">sym_setObjCoeff</a> &#8212; <span class="refentry-description">Set coefficient of a variable in the objective</span></li>
+
+
+
+<li><a href="sym_setObjSense.html" class="refentry">sym_setObjSense</a> &#8212; <span class="refentry-description">Set the objective sense</span></li>
+
+
+
+<li><a href="sym_setPrimalBound.html" class="refentry">sym_setPrimalBound</a> &#8212; <span class="refentry-description">Set the primal bound of the problem</span></li>
+
+
+
+<li><a href="sym_setStrParam.html" class="refentry">sym_setStrParam</a> &#8212; <span class="refentry-description">This routine is used to set a string type parameter.</span></li>
+
+
+
+<li><a href="sym_setVarLower.html" class="refentry">sym_setVarLower</a> &#8212; <span class="refentry-description">Set lower bound of a variable</span></li>
+
+
+
+<li><a href="sym_setVarSoln.html" class="refentry">sym_setVarSoln</a> &#8212; <span class="refentry-description">Set a solution for the problem</span></li>
+
+
+
+<li><a href="sym_setVarUpper.html" class="refentry">sym_setVarUpper</a> &#8212; <span class="refentry-description">Set upper bound of a variable</span></li>
+
+
+
+<li><a href="sym_solve.html" class="refentry">sym_solve</a> &#8212; <span class="refentry-description">To solve the currently loaded MILP problem from scratch.</span></li></ul>
+ <br />
+
+ <div class="manualnavbar">
+ <table width="100%">
+ <tr><td colspan="3" class="next"><a href="http://bugzilla.scilab.org/enter_bug.cgi?product=Scilab%20software&component=Documentation%20pages" class="ulink">Report an issue</a></td></tr>
+<tr>
+ <td width="30%">
+ <span class="previous"><a href="symphonymat.html">&lt;&lt; symphonymat</a></span>
+
+ </td>
+ <td width="40%" class="center">
+ <span class="top"><a href="section_7f9be39cf912aa1e283b946d86a6bd7c.html">FOSSEE Optimization Toolbox</a></span>
+
+ </td>
+ <td width="30%" class="next">
+
+ </td>
+ </tr></table>
+ <hr />
+ </div>
+ </body>
+</html>
diff --git a/help/en_US/scilab_en_US_help/section_2122a46e06605359e022857633f38a15.html b/help/en_US/scilab_en_US_help/section_2122a46e06605359e022857633f38a15.html
new file mode 100644
index 0000000..5bfcab1
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/section_2122a46e06605359e022857633f38a15.html
@@ -0,0 +1,358 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <title></title>
+ <style type="text/css" media="all">
+ @import url("scilab_code.css");
+ @import url("xml_code.css");
+ @import url("c_code.css");
+ @import url("style.css");
+ </style>
+ </head>
+ <body>
+ <div class="manualnavbar">
+ <table width="100%"><tr>
+ <td width="30%">
+
+ </td>
+ <td width="40%" class="center">
+ <span class="top"><a href="index.html">FOSSEE Optimization Toolbox</a></span>
+
+ </td>
+ <td width="30%" class="next">
+
+ </td>
+ </tr></table>
+ <hr />
+ </div>
+
+
+
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; FOSSEE Optimization Toolbox</span>
+
+ <br /><br />
+ <h3 class="title-part">FOSSEE Optimization Toolbox</h3>
+<ul class="list-chapter"><li><a href="fgoalattain.html" class="refentry">fgoalattain</a> &#8212; <span class="refentry-description">Solves a multiobjective goal attainment problem</span></li>
+
+
+
+
+
+<li><a href="fminbnd.html" class="refentry">fminbnd</a> &#8212; <span class="refentry-description">Solves a multi-variable optimization problem on a bounded interval</span></li>
+
+
+
+
+
+<li><a href="fmincon.html" class="refentry">fmincon</a> &#8212; <span class="refentry-description">Solves a multi-variable constrainted optimization problem</span></li>
+
+
+
+
+
+<li><a href="fminimax.html" class="refentry">fminimax</a> &#8212; <span class="refentry-description">Solves minimax constraint problem</span></li>
+
+
+
+
+
+<li><a href="fminunc.html" class="refentry">fminunc</a> &#8212; <span class="refentry-description">Solves a multi-variable unconstrainted optimization problem</span></li>
+
+
+
+
+
+<li><a href="linprog.html" class="refentry">linprog</a> &#8212; <span class="refentry-description">Solves a linear programming problem.</span></li>
+
+
+
+
+
+<li><a href="lsqlin.html" class="refentry">lsqlin</a> &#8212; <span class="refentry-description">Solves a linear quadratic problem.</span></li>
+
+
+
+
+
+<li><a href="lsqnonlin.html" class="refentry">lsqnonlin</a> &#8212; <span class="refentry-description">Solves a non linear data fitting problems.</span></li>
+
+
+
+
+
+<li><a href="lsqnonneg.html" class="refentry">lsqnonneg</a> &#8212; <span class="refentry-description">Solves nonnegative least-squares curve fitting problems.</span></li>
+
+
+
+
+
+<li><a href="qpipopt.html" class="refentry">qpipopt</a> &#8212; <span class="refentry-description">Solves a linear quadratic problem.</span></li>
+
+
+
+
+
+<li><a href="qpipoptmat.html" class="refentry">qpipoptmat</a> &#8212; <span class="refentry-description">Solves a linear quadratic problem.</span></li>
+
+
+
+
+
+<li><a href="symphony.html" class="refentry">symphony</a> &#8212; <span class="refentry-description">Solves a mixed integer linear programming constrained optimization problem.</span></li>
+
+
+
+
+
+<li><a href="symphonymat.html" class="refentry">symphonymat</a> &#8212; <span class="refentry-description">Solves a mixed integer linear programming constrained optimization problem in intlinprog format.</span></li>
+
+<li><a href="section_c78c9c5b46dbea583df3c010a77e5758.html" class="chapter">Symphony Native Functions</a>
+<ul class="list-refentry"><li><a href="sym_addConstr.html" class="refentry">sym_addConstr</a> &#8212; <span class="refentry-description">Add a new constraint</span></li>
+
+
+
+<li><a href="sym_addVar.html" class="refentry">sym_addVar</a> &#8212; <span class="refentry-description">Add a new variable</span></li>
+
+
+
+<li><a href="sym_close.html" class="refentry">sym_close</a> &#8212; <span class="refentry-description">Close the Symphony environment</span></li>
+
+
+
+<li><a href="sym_deleteConstrs.html" class="refentry">sym_deleteConstrs</a> &#8212; <span class="refentry-description">This routine is used to delete rows from the original constraint matrix.</span></li>
+
+
+
+<li><a href="sym_deleteVars.html" class="refentry">sym_deleteVars</a> &#8212; <span class="refentry-description">This routine is used to delete columns from the original problem description.</span></li>
+
+
+
+<li><a href="sym_getConstrActivity.html" class="refentry">sym_getConstrActivity</a> &#8212; <span class="refentry-description">Get the activity of the constraints in the solution</span></li>
+
+
+
+<li><a href="sym_getConstrLower.html" class="refentry">sym_getConstrLower</a> &#8212; <span class="refentry-description">To get the lower bounds of the constraints.</span></li>
+
+
+
+<li><a href="sym_getConstrRange.html" class="refentry">sym_getConstrRange</a> &#8212; <span class="refentry-description">To to get the constraint ranges.</span></li>
+
+
+
+<li><a href="sym_getConstrSense.html" class="refentry">sym_getConstrSense</a> &#8212; <span class="refentry-description">To get the row senses.</span></li>
+
+
+
+<li><a href="sym_getConstrUpper.html" class="refentry">sym_getConstrUpper</a> &#8212; <span class="refentry-description">To get the upper bounds of the constraints.</span></li>
+
+
+
+<li><a href="sym_getDblParam.html" class="refentry">sym_getDblParam</a> &#8212; <span class="refentry-description">This routine is used to get the value of a double type parameter.</span></li>
+
+
+
+<li><a href="sym_getInfinity.html" class="refentry">sym_getInfinity</a> &#8212; <span class="refentry-description">Get Symphony&#0039;s infinity value</span></li>
+
+
+
+<li><a href="sym_getIntParam.html" class="refentry">sym_getIntParam</a> &#8212; <span class="refentry-description">This routine is used to get the value of an integer type parameter.</span></li>
+
+
+
+<li><a href="sym_getIterCount.html" class="refentry">sym_getIterCount</a> &#8212; <span class="refentry-description">To get the number of the analyzed nodes of the branching tree after solving the problem.</span></li>
+
+
+
+<li><a href="sym_getMatrix.html" class="refentry">sym_getMatrix</a> &#8212; <span class="refentry-description">To get the constraint matrix.</span></li>
+
+
+
+<li><a href="sym_getNumConstr.html" class="refentry">sym_getNumConstr</a> &#8212; <span class="refentry-description">To get the number of the constraints of the current problem.</span></li>
+
+
+
+<li><a href="sym_getNumElements.html" class="refentry">sym_getNumElements</a> &#8212; <span class="refentry-description">To get the number of non-zero entries of the constraint matrix of the current problem.</span></li>
+
+
+
+<li><a href="sym_getNumVar.html" class="refentry">sym_getNumVar</a> &#8212; <span class="refentry-description">To get the number of the variables of the current problem.</span></li>
+
+
+
+<li><a href="sym_getObjCoeff.html" class="refentry">sym_getObjCoeff</a> &#8212; <span class="refentry-description">To get the objective vector.</span></li>
+
+
+
+<li><a href="sym_getObjSense.html" class="refentry">sym_getObjSense</a> &#8212; <span class="refentry-description">Get the objective sense</span></li>
+
+
+
+<li><a href="sym_getObjVal.html" class="refentry">sym_getObjVal</a> &#8212; <span class="refentry-description">Get the optimized objective value</span></li>
+
+
+
+<li><a href="sym_getPrimalBound.html" class="refentry">sym_getPrimalBound</a> &#8212; <span class="refentry-description">Get the primal bound of the problem</span></li>
+
+
+
+<li><a href="sym_getRhs.html" class="refentry">sym_getRhs</a> &#8212; <span class="refentry-description">To to get the right hand side vector(column vector).</span></li>
+
+
+
+<li><a href="sym_getStatus.html" class="refentry">sym_getStatus</a> &#8212; <span class="refentry-description">To get status of the problem solver.</span></li>
+
+
+
+<li><a href="sym_getStrParam.html" class="refentry">sym_getStrParam</a> &#8212; <span class="refentry-description">This routine is used to get the value of a string type parameter.</span></li>
+
+
+
+<li><a href="sym_getVarLower.html" class="refentry">sym_getVarLower</a> &#8212; <span class="refentry-description">To get the lower bounds of the variables.</span></li>
+
+
+
+<li><a href="sym_getVarSoln.html" class="refentry">sym_getVarSoln</a> &#8212; <span class="refentry-description">Get the solution for the problem</span></li>
+
+
+
+<li><a href="sym_getVarUpper.html" class="refentry">sym_getVarUpper</a> &#8212; <span class="refentry-description">To get the upper bounds of the variables.</span></li>
+
+
+
+<li><a href="sym_isAbandoned.html" class="refentry">sym_isAbandoned</a> &#8212; <span class="refentry-description">To check whether the problem was abandoned for some reason.</span></li>
+
+
+
+<li><a href="sym_isBinary.html" class="refentry">sym_isBinary</a> &#8212; <span class="refentry-description">Check if a variable is constrained to be binary</span></li>
+
+
+
+<li><a href="sym_isContinuous.html" class="refentry">sym_isContinuous</a> &#8212; <span class="refentry-description">Check if a variable is continuous</span></li>
+
+
+
+<li><a href="sym_isEnvActive.html" class="refentry">sym_isEnvActive</a> &#8212; <span class="refentry-description">Check if Symphony environment is active</span></li>
+
+
+
+<li><a href="sym_isInfeasible.html" class="refentry">sym_isInfeasible</a> &#8212; <span class="refentry-description">To check whether the problem was proven to be infeasible.</span></li>
+
+
+
+<li><a href="sym_isInteger.html" class="refentry">sym_isInteger</a> &#8212; <span class="refentry-description">Check if a variable is constrained to be an integer</span></li>
+
+
+
+<li><a href="sym_isIterLimitReached.html" class="refentry">sym_isIterLimitReached</a> &#8212; <span class="refentry-description">To know whether the iteration limit (node limit) was reached.</span></li>
+
+
+
+<li><a href="sym_isOptimal.html" class="refentry">sym_isOptimal</a> &#8212; <span class="refentry-description">To check whether the problem was solved to optimality.</span></li>
+
+
+
+<li><a href="sym_isTargetGapAchieved.html" class="refentry">sym_isTargetGapAchieved</a> &#8212; <span class="refentry-description">To know whether the target gap was reached.</span></li>
+
+
+
+<li><a href="sym_isTimeLimitReached.html" class="refentry">sym_isTimeLimitReached</a> &#8212; <span class="refentry-description">To know whether the time limit was reached.</span></li>
+
+
+
+<li><a href="sym_loadMPS.html" class="refentry">sym_loadMPS</a> &#8212; <span class="refentry-description">This routine is used to load an instance from an MPS file.</span></li>
+
+
+
+<li><a href="sym_loadProblem.html" class="refentry">sym_loadProblem</a> &#8212; <span class="refentry-description">Load a problem into Symphony</span></li>
+
+
+
+<li><a href="sym_loadProblemBasic.html" class="refentry">sym_loadProblemBasic</a> &#8212; <span class="refentry-description">Load a problem into Symphony (basic version)</span></li>
+
+
+
+<li><a href="sym_open.html" class="refentry">sym_open</a> &#8212; <span class="refentry-description">Open the Symphony environment</span></li>
+
+
+
+<li><a href="sym_resetParams.html" class="refentry">sym_resetParams</a> &#8212; <span class="refentry-description">This routine sets all the environment variables and parameters to their default values.</span></li>
+
+
+
+<li><a href="sym_setConstrLower.html" class="refentry">sym_setConstrLower</a> &#8212; <span class="refentry-description">Set the lower bound of a constraint</span></li>
+
+
+
+<li><a href="sym_setConstrType.html" class="refentry">sym_setConstrType</a> &#8212; <span class="refentry-description">Set the type of a constraint</span></li>
+
+
+
+<li><a href="sym_setConstrUpper.html" class="refentry">sym_setConstrUpper</a> &#8212; <span class="refentry-description">Set the upper bound of a constraint</span></li>
+
+
+
+<li><a href="sym_setContinuous.html" class="refentry">sym_setContinuous</a> &#8212; <span class="refentry-description">This routine is used to set the type of a variable to be continuous.</span></li>
+
+
+
+<li><a href="sym_setDblParam.html" class="refentry">sym_setDblParam</a> &#8212; <span class="refentry-description">This routine is used to set a double type parameter.</span></li>
+
+
+
+<li><a href="sym_setIntParam.html" class="refentry">sym_setIntParam</a> &#8212; <span class="refentry-description">This routine is used to set an integer type parameter.</span></li>
+
+
+
+<li><a href="sym_setInteger.html" class="refentry">sym_setInteger</a> &#8212; <span class="refentry-description">This routine is used to set the type of a variable to be integer.</span></li>
+
+
+
+<li><a href="sym_setObjCoeff.html" class="refentry">sym_setObjCoeff</a> &#8212; <span class="refentry-description">Set coefficient of a variable in the objective</span></li>
+
+
+
+<li><a href="sym_setObjSense.html" class="refentry">sym_setObjSense</a> &#8212; <span class="refentry-description">Set the objective sense</span></li>
+
+
+
+<li><a href="sym_setPrimalBound.html" class="refentry">sym_setPrimalBound</a> &#8212; <span class="refentry-description">Set the primal bound of the problem</span></li>
+
+
+
+<li><a href="sym_setStrParam.html" class="refentry">sym_setStrParam</a> &#8212; <span class="refentry-description">This routine is used to set a string type parameter.</span></li>
+
+
+
+<li><a href="sym_setVarLower.html" class="refentry">sym_setVarLower</a> &#8212; <span class="refentry-description">Set lower bound of a variable</span></li>
+
+
+
+<li><a href="sym_setVarSoln.html" class="refentry">sym_setVarSoln</a> &#8212; <span class="refentry-description">Set a solution for the problem</span></li>
+
+
+
+<li><a href="sym_setVarUpper.html" class="refentry">sym_setVarUpper</a> &#8212; <span class="refentry-description">Set upper bound of a variable</span></li>
+
+
+
+<li><a href="sym_solve.html" class="refentry">sym_solve</a> &#8212; <span class="refentry-description">To solve the currently loaded MILP problem from scratch.</span></li></ul></li></ul>
+ <br />
+
+ <div class="manualnavbar">
+ <table width="100%">
+ <tr><td colspan="3" class="next"><a href="http://bugzilla.scilab.org/enter_bug.cgi?product=Scilab%20software&component=Documentation%20pages" class="ulink">Report an issue</a></td></tr>
+<tr>
+ <td width="30%">
+
+ </td>
+ <td width="40%" class="center">
+ <span class="top"><a href="index.html">FOSSEE Optimization Toolbox</a></span>
+
+ </td>
+ <td width="30%" class="next">
+
+ </td>
+ </tr></table>
+ <hr />
+ </div>
+ </body>
+</html>
diff --git a/help/en_US/scilab_en_US_help/section_2f30ec7805b02b8760d8add3187208be.html b/help/en_US/scilab_en_US_help/section_2f30ec7805b02b8760d8add3187208be.html
new file mode 100644
index 0000000..085dbf7
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/section_2f30ec7805b02b8760d8add3187208be.html
@@ -0,0 +1,85 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <title></title>
+ <style type="text/css" media="all">
+ @import url("scilab_code.css");
+ @import url("xml_code.css");
+ @import url("c_code.css");
+ @import url("style.css");
+ </style>
+ </head>
+ <body>
+ <div class="manualnavbar">
+ <table width="100%"><tr>
+ <td width="30%">
+
+ </td>
+ <td width="40%" class="center">
+ <span class="top"><a href="index.html">FOSSEE Optimization Toolbox</a></span>
+
+ </td>
+ <td width="30%" class="next">
+
+ </td>
+ </tr></table>
+ <hr />
+ </div>
+
+
+
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; FOSSEE Optimization Toolbox</span>
+
+ <br /><br />
+ <h3 class="title-part">FOSSEE Optimization Toolbox</h3>
+<ul class="list-chapter"><li><a href="cbcintlinprog.html" class="refentry">cbcintlinprog</a> &#8212; <span class="refentry-description">Solves a mixed integer linear programming constrained optimization problem in intlinprog format.</span></li>
+
+
+
+
+
+<li><a href="intfminbnd.html" class="refentry">intfminbnd</a> &#8212; <span class="refentry-description">Solves a multi-variable optimization problem on a bounded interval</span></li>
+
+
+
+
+
+<li><a href="intfmincon.html" class="refentry">intfmincon</a> &#8212; <span class="refentry-description">Solves a constrainted multi-variable mixed integer non linear programming problem</span></li>
+
+
+
+
+
+<li><a href="intfminimax.html" class="refentry">intfminimax</a> &#8212; <span class="refentry-description">Solves minimax constraint problem</span></li>
+
+
+
+
+
+<li><a href="intfminunc.html" class="refentry">intfminunc</a> &#8212; <span class="refentry-description">Solves an unconstrainted multi-variable mixed integer non linear programming optimization problem</span></li>
+
+
+
+
+
+<li><a href="intqpipopt.html" class="refentry">intqpipopt</a> &#8212; <span class="refentry-description">Solves a linear quadratic problem.</span></li></ul>
+ <br />
+
+ <div class="manualnavbar">
+ <table width="100%">
+ <tr><td colspan="3" class="next"><a href="http://bugzilla.scilab.org/enter_bug.cgi?product=Scilab%20software&component=Documentation%20pages" class="ulink">Report an issue</a></td></tr>
+<tr>
+ <td width="30%">
+
+ </td>
+ <td width="40%" class="center">
+ <span class="top"><a href="index.html">FOSSEE Optimization Toolbox</a></span>
+
+ </td>
+ <td width="30%" class="next">
+
+ </td>
+ </tr></table>
+ <hr />
+ </div>
+ </body>
+</html>
diff --git a/help/en_US/scilab_en_US_help/section_44e1f57c5225357b5fe53cb5fad967e9.html b/help/en_US/scilab_en_US_help/section_44e1f57c5225357b5fe53cb5fad967e9.html
new file mode 100644
index 0000000..2af72b0
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/section_44e1f57c5225357b5fe53cb5fad967e9.html
@@ -0,0 +1,394 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <title></title>
+ <style type="text/css" media="all">
+ @import url("scilab_code.css");
+ @import url("xml_code.css");
+ @import url("c_code.css");
+ @import url("style.css");
+ </style>
+ </head>
+ <body>
+ <div class="manualnavbar">
+ <table width="100%"><tr>
+ <td width="30%">
+
+ </td>
+ <td width="40%" class="center">
+ <span class="top"><a href="index.html">FOSSEE Optimization Toolbox</a></span>
+
+ </td>
+ <td width="30%" class="next">
+
+ </td>
+ </tr></table>
+ <hr />
+ </div>
+
+
+
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; FOSSEE Optimization Toolbox</span>
+
+ <br /><br />
+ <h3 class="title-part">FOSSEE Optimization Toolbox</h3>
+<ul class="list-chapter"><li><a href="cbcintlinprog.html" class="refentry">cbcintlinprog</a> &#8212; <span class="refentry-description">Solves a mixed integer linear programming constrained optimization problem in intlinprog format.</span></li>
+
+
+
+
+
+<li><a href="fgoalattain.html" class="refentry">fgoalattain</a> &#8212; <span class="refentry-description">Solves a multiobjective goal attainment problem</span></li>
+
+
+
+
+
+<li><a href="fminbnd.html" class="refentry">fminbnd</a> &#8212; <span class="refentry-description">Solves a multi-variable optimization problem on a bounded interval</span></li>
+
+
+
+
+
+<li><a href="fmincon.html" class="refentry">fmincon</a> &#8212; <span class="refentry-description">Solves a multi-variable constrainted optimization problem.</span></li>
+
+
+
+
+
+<li><a href="fminimax.html" class="refentry">fminimax</a> &#8212; <span class="refentry-description">Solves minimax constraint problem</span></li>
+
+
+
+
+
+<li><a href="fminunc.html" class="refentry">fminunc</a> &#8212; <span class="refentry-description">Solves a multi-variable unconstrainted optimization problem</span></li>
+
+
+
+
+
+<li><a href="intfminbnd.html" class="refentry">intfminbnd</a> &#8212; <span class="refentry-description">Solves a multi-variable optimization problem on a bounded interval</span></li>
+
+
+
+
+
+<li><a href="intfmincon.html" class="refentry">intfmincon</a> &#8212; <span class="refentry-description">Solves a constrainted multi-variable mixed integer non linear programming problem</span></li>
+
+
+
+
+
+<li><a href="intfminimax.html" class="refentry">intfminimax</a> &#8212; <span class="refentry-description">Solves minimax constraint problem</span></li>
+
+
+
+
+
+<li><a href="intfminunc.html" class="refentry">intfminunc</a> &#8212; <span class="refentry-description">Solves an unconstrainted multi-variable mixed integer non linear programming optimization problem</span></li>
+
+
+
+
+
+<li><a href="intqpipopt.html" class="refentry">intqpipopt</a> &#8212; <span class="refentry-description">Solves a linear quadratic problem.</span></li>
+
+
+
+
+
+<li><a href="linprog.html" class="refentry">linprog</a> &#8212; <span class="refentry-description">Solves a linear programming problem.</span></li>
+
+
+
+
+
+<li><a href="lsqlin.html" class="refentry">lsqlin</a> &#8212; <span class="refentry-description">Solves a linear quadratic problem.</span></li>
+
+
+
+
+
+<li><a href="lsqnonlin.html" class="refentry">lsqnonlin</a> &#8212; <span class="refentry-description">Solves a non linear data fitting problems.</span></li>
+
+
+
+
+
+<li><a href="lsqnonneg.html" class="refentry">lsqnonneg</a> &#8212; <span class="refentry-description">Solves nonnegative least-squares curve fitting problems.</span></li>
+
+
+
+
+
+<li><a href="qpipopt.html" class="refentry">qpipopt</a> &#8212; <span class="refentry-description">Solves a linear quadratic problem.</span></li>
+
+
+
+
+
+<li><a href="qpipoptmat.html" class="refentry">qpipoptmat</a> &#8212; <span class="refentry-description">Solves a linear quadratic problem.</span></li>
+
+
+
+
+
+<li><a href="symphony.html" class="refentry">symphony</a> &#8212; <span class="refentry-description">Solves a mixed integer linear programming constrained optimization problem.</span></li>
+
+
+
+
+
+<li><a href="symphonymat.html" class="refentry">symphonymat</a> &#8212; <span class="refentry-description">Solves a mixed integer linear programming constrained optimization problem in intlinprog format.</span></li>
+
+<li><a href="section_5fc7ef02a133896efbd190355314d3fc.html" class="chapter">Symphony Native Functions</a>
+<ul class="list-refentry"><li><a href="sym_addConstr.html" class="refentry">sym_addConstr</a> &#8212; <span class="refentry-description">Add a new constraint</span></li>
+
+
+
+<li><a href="sym_addVar.html" class="refentry">sym_addVar</a> &#8212; <span class="refentry-description">Add a new variable</span></li>
+
+
+
+<li><a href="sym_close.html" class="refentry">sym_close</a> &#8212; <span class="refentry-description">Close the Symphony environment</span></li>
+
+
+
+<li><a href="sym_deleteConstrs.html" class="refentry">sym_deleteConstrs</a> &#8212; <span class="refentry-description">This routine is used to delete rows from the original constraint matrix.</span></li>
+
+
+
+<li><a href="sym_deleteVars.html" class="refentry">sym_deleteVars</a> &#8212; <span class="refentry-description">This routine is used to delete columns from the original problem description.</span></li>
+
+
+
+<li><a href="sym_getConstrActivity.html" class="refentry">sym_getConstrActivity</a> &#8212; <span class="refentry-description">Get the activity of the constraints in the solution</span></li>
+
+
+
+<li><a href="sym_getConstrLower.html" class="refentry">sym_getConstrLower</a> &#8212; <span class="refentry-description">To get the lower bounds of the constraints.</span></li>
+
+
+
+<li><a href="sym_getConstrRange.html" class="refentry">sym_getConstrRange</a> &#8212; <span class="refentry-description">To to get the constraint ranges.</span></li>
+
+
+
+<li><a href="sym_getConstrSense.html" class="refentry">sym_getConstrSense</a> &#8212; <span class="refentry-description">To get the row senses.</span></li>
+
+
+
+<li><a href="sym_getConstrUpper.html" class="refentry">sym_getConstrUpper</a> &#8212; <span class="refentry-description">To get the upper bounds of the constraints.</span></li>
+
+
+
+<li><a href="sym_getDblParam.html" class="refentry">sym_getDblParam</a> &#8212; <span class="refentry-description">This routine is used to get the value of a double type parameter.</span></li>
+
+
+
+<li><a href="sym_getInfinity.html" class="refentry">sym_getInfinity</a> &#8212; <span class="refentry-description">Get Symphony&#0039;s infinity value</span></li>
+
+
+
+<li><a href="sym_getIntParam.html" class="refentry">sym_getIntParam</a> &#8212; <span class="refentry-description">This routine is used to get the value of an integer type parameter.</span></li>
+
+
+
+<li><a href="sym_getIterCount.html" class="refentry">sym_getIterCount</a> &#8212; <span class="refentry-description">To get the number of the analyzed nodes of the branching tree after solving the problem.</span></li>
+
+
+
+<li><a href="sym_getMatrix.html" class="refentry">sym_getMatrix</a> &#8212; <span class="refentry-description">To get the constraint matrix.</span></li>
+
+
+
+<li><a href="sym_getNumConstr.html" class="refentry">sym_getNumConstr</a> &#8212; <span class="refentry-description">To get the number of the constraints of the current problem.</span></li>
+
+
+
+<li><a href="sym_getNumElements.html" class="refentry">sym_getNumElements</a> &#8212; <span class="refentry-description">To get the number of non-zero entries of the constraint matrix of the current problem.</span></li>
+
+
+
+<li><a href="sym_getNumVar.html" class="refentry">sym_getNumVar</a> &#8212; <span class="refentry-description">To get the number of the variables of the current problem.</span></li>
+
+
+
+<li><a href="sym_getObjCoeff.html" class="refentry">sym_getObjCoeff</a> &#8212; <span class="refentry-description">To get the objective vector.</span></li>
+
+
+
+<li><a href="sym_getObjSense.html" class="refentry">sym_getObjSense</a> &#8212; <span class="refentry-description">Get the objective sense</span></li>
+
+
+
+<li><a href="sym_getObjVal.html" class="refentry">sym_getObjVal</a> &#8212; <span class="refentry-description">Get the optimized objective value</span></li>
+
+
+
+<li><a href="sym_getPrimalBound.html" class="refentry">sym_getPrimalBound</a> &#8212; <span class="refentry-description">Get the primal bound of the problem</span></li>
+
+
+
+<li><a href="sym_getRhs.html" class="refentry">sym_getRhs</a> &#8212; <span class="refentry-description">To to get the right hand side vector(column vector).</span></li>
+
+
+
+<li><a href="sym_getStatus.html" class="refentry">sym_getStatus</a> &#8212; <span class="refentry-description">To get status of the problem solver.</span></li>
+
+
+
+<li><a href="sym_getStrParam.html" class="refentry">sym_getStrParam</a> &#8212; <span class="refentry-description">This routine is used to get the value of a string type parameter.</span></li>
+
+
+
+<li><a href="sym_getVarLower.html" class="refentry">sym_getVarLower</a> &#8212; <span class="refentry-description">To get the lower bounds of the variables.</span></li>
+
+
+
+<li><a href="sym_getVarSoln.html" class="refentry">sym_getVarSoln</a> &#8212; <span class="refentry-description">Get the solution for the problem</span></li>
+
+
+
+<li><a href="sym_getVarUpper.html" class="refentry">sym_getVarUpper</a> &#8212; <span class="refentry-description">To get the upper bounds of the variables.</span></li>
+
+
+
+<li><a href="sym_isAbandoned.html" class="refentry">sym_isAbandoned</a> &#8212; <span class="refentry-description">To check whether the problem was abandoned for some reason.</span></li>
+
+
+
+<li><a href="sym_isBinary.html" class="refentry">sym_isBinary</a> &#8212; <span class="refentry-description">Check if a variable is constrained to be binary</span></li>
+
+
+
+<li><a href="sym_isContinuous.html" class="refentry">sym_isContinuous</a> &#8212; <span class="refentry-description">Check if a variable is continuous</span></li>
+
+
+
+<li><a href="sym_isEnvActive.html" class="refentry">sym_isEnvActive</a> &#8212; <span class="refentry-description">Check if Symphony environment is active</span></li>
+
+
+
+<li><a href="sym_isInfeasible.html" class="refentry">sym_isInfeasible</a> &#8212; <span class="refentry-description">To check whether the problem was proven to be infeasible.</span></li>
+
+
+
+<li><a href="sym_isInteger.html" class="refentry">sym_isInteger</a> &#8212; <span class="refentry-description">Check if a variable is constrained to be an integer</span></li>
+
+
+
+<li><a href="sym_isIterLimitReached.html" class="refentry">sym_isIterLimitReached</a> &#8212; <span class="refentry-description">To know whether the iteration limit (node limit) was reached.</span></li>
+
+
+
+<li><a href="sym_isOptimal.html" class="refentry">sym_isOptimal</a> &#8212; <span class="refentry-description">To check whether the problem was solved to optimality.</span></li>
+
+
+
+<li><a href="sym_isTargetGapAchieved.html" class="refentry">sym_isTargetGapAchieved</a> &#8212; <span class="refentry-description">To know whether the target gap was reached.</span></li>
+
+
+
+<li><a href="sym_isTimeLimitReached.html" class="refentry">sym_isTimeLimitReached</a> &#8212; <span class="refentry-description">To know whether the time limit was reached.</span></li>
+
+
+
+<li><a href="sym_loadMPS.html" class="refentry">sym_loadMPS</a> &#8212; <span class="refentry-description">This routine is used to load an instance from an MPS file.</span></li>
+
+
+
+<li><a href="sym_loadProblem.html" class="refentry">sym_loadProblem</a> &#8212; <span class="refentry-description">Load a problem into Symphony</span></li>
+
+
+
+<li><a href="sym_loadProblemBasic.html" class="refentry">sym_loadProblemBasic</a> &#8212; <span class="refentry-description">Load a problem into Symphony (basic version)</span></li>
+
+
+
+<li><a href="sym_open.html" class="refentry">sym_open</a> &#8212; <span class="refentry-description">Open the Symphony environment</span></li>
+
+
+
+<li><a href="sym_resetParams.html" class="refentry">sym_resetParams</a> &#8212; <span class="refentry-description">This routine sets all the environment variables and parameters to their default values.</span></li>
+
+
+
+<li><a href="sym_setConstrLower.html" class="refentry">sym_setConstrLower</a> &#8212; <span class="refentry-description">Set the lower bound of a constraint</span></li>
+
+
+
+<li><a href="sym_setConstrType.html" class="refentry">sym_setConstrType</a> &#8212; <span class="refentry-description">Set the type of a constraint</span></li>
+
+
+
+<li><a href="sym_setConstrUpper.html" class="refentry">sym_setConstrUpper</a> &#8212; <span class="refentry-description">Set the upper bound of a constraint</span></li>
+
+
+
+<li><a href="sym_setContinuous.html" class="refentry">sym_setContinuous</a> &#8212; <span class="refentry-description">This routine is used to set the type of a variable to be continuous.</span></li>
+
+
+
+<li><a href="sym_setDblParam.html" class="refentry">sym_setDblParam</a> &#8212; <span class="refentry-description">This routine is used to set a double type parameter.</span></li>
+
+
+
+<li><a href="sym_setIntParam.html" class="refentry">sym_setIntParam</a> &#8212; <span class="refentry-description">This routine is used to set an integer type parameter.</span></li>
+
+
+
+<li><a href="sym_setInteger.html" class="refentry">sym_setInteger</a> &#8212; <span class="refentry-description">This routine is used to set the type of a variable to be integer.</span></li>
+
+
+
+<li><a href="sym_setObjCoeff.html" class="refentry">sym_setObjCoeff</a> &#8212; <span class="refentry-description">Set coefficient of a variable in the objective</span></li>
+
+
+
+<li><a href="sym_setObjSense.html" class="refentry">sym_setObjSense</a> &#8212; <span class="refentry-description">Set the objective sense</span></li>
+
+
+
+<li><a href="sym_setPrimalBound.html" class="refentry">sym_setPrimalBound</a> &#8212; <span class="refentry-description">Set the primal bound of the problem</span></li>
+
+
+
+<li><a href="sym_setStrParam.html" class="refentry">sym_setStrParam</a> &#8212; <span class="refentry-description">This routine is used to set a string type parameter.</span></li>
+
+
+
+<li><a href="sym_setVarLower.html" class="refentry">sym_setVarLower</a> &#8212; <span class="refentry-description">Set lower bound of a variable</span></li>
+
+
+
+<li><a href="sym_setVarSoln.html" class="refentry">sym_setVarSoln</a> &#8212; <span class="refentry-description">Set a solution for the problem</span></li>
+
+
+
+<li><a href="sym_setVarUpper.html" class="refentry">sym_setVarUpper</a> &#8212; <span class="refentry-description">Set upper bound of a variable</span></li>
+
+
+
+<li><a href="sym_solve.html" class="refentry">sym_solve</a> &#8212; <span class="refentry-description">To solve the currently loaded MILP problem from scratch.</span></li></ul></li></ul>
+ <br />
+
+ <div class="manualnavbar">
+ <table width="100%">
+ <tr><td colspan="3" class="next"><a href="http://bugzilla.scilab.org/enter_bug.cgi?product=Scilab%20software&component=Documentation%20pages" class="ulink">Report an issue</a></td></tr>
+<tr>
+ <td width="30%">
+
+ </td>
+ <td width="40%" class="center">
+ <span class="top"><a href="index.html">FOSSEE Optimization Toolbox</a></span>
+
+ </td>
+ <td width="30%" class="next">
+
+ </td>
+ </tr></table>
+ <hr />
+ </div>
+ </body>
+</html>
diff --git a/help/en_US/scilab_en_US_help/section_5216548269879268a26b5bc137b91f5d.html b/help/en_US/scilab_en_US_help/section_5216548269879268a26b5bc137b91f5d.html
new file mode 100644
index 0000000..085dbf7
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/section_5216548269879268a26b5bc137b91f5d.html
@@ -0,0 +1,85 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <title></title>
+ <style type="text/css" media="all">
+ @import url("scilab_code.css");
+ @import url("xml_code.css");
+ @import url("c_code.css");
+ @import url("style.css");
+ </style>
+ </head>
+ <body>
+ <div class="manualnavbar">
+ <table width="100%"><tr>
+ <td width="30%">
+
+ </td>
+ <td width="40%" class="center">
+ <span class="top"><a href="index.html">FOSSEE Optimization Toolbox</a></span>
+
+ </td>
+ <td width="30%" class="next">
+
+ </td>
+ </tr></table>
+ <hr />
+ </div>
+
+
+
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; FOSSEE Optimization Toolbox</span>
+
+ <br /><br />
+ <h3 class="title-part">FOSSEE Optimization Toolbox</h3>
+<ul class="list-chapter"><li><a href="cbcintlinprog.html" class="refentry">cbcintlinprog</a> &#8212; <span class="refentry-description">Solves a mixed integer linear programming constrained optimization problem in intlinprog format.</span></li>
+
+
+
+
+
+<li><a href="intfminbnd.html" class="refentry">intfminbnd</a> &#8212; <span class="refentry-description">Solves a multi-variable optimization problem on a bounded interval</span></li>
+
+
+
+
+
+<li><a href="intfmincon.html" class="refentry">intfmincon</a> &#8212; <span class="refentry-description">Solves a constrainted multi-variable mixed integer non linear programming problem</span></li>
+
+
+
+
+
+<li><a href="intfminimax.html" class="refentry">intfminimax</a> &#8212; <span class="refentry-description">Solves minimax constraint problem</span></li>
+
+
+
+
+
+<li><a href="intfminunc.html" class="refentry">intfminunc</a> &#8212; <span class="refentry-description">Solves an unconstrainted multi-variable mixed integer non linear programming optimization problem</span></li>
+
+
+
+
+
+<li><a href="intqpipopt.html" class="refentry">intqpipopt</a> &#8212; <span class="refentry-description">Solves a linear quadratic problem.</span></li></ul>
+ <br />
+
+ <div class="manualnavbar">
+ <table width="100%">
+ <tr><td colspan="3" class="next"><a href="http://bugzilla.scilab.org/enter_bug.cgi?product=Scilab%20software&component=Documentation%20pages" class="ulink">Report an issue</a></td></tr>
+<tr>
+ <td width="30%">
+
+ </td>
+ <td width="40%" class="center">
+ <span class="top"><a href="index.html">FOSSEE Optimization Toolbox</a></span>
+
+ </td>
+ <td width="30%" class="next">
+
+ </td>
+ </tr></table>
+ <hr />
+ </div>
+ </body>
+</html>
diff --git a/help/en_US/scilab_en_US_help/section_5fc7ef02a133896efbd190355314d3fc.html b/help/en_US/scilab_en_US_help/section_5fc7ef02a133896efbd190355314d3fc.html
new file mode 100644
index 0000000..2416e2e
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/section_5fc7ef02a133896efbd190355314d3fc.html
@@ -0,0 +1,285 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <title></title>
+ <style type="text/css" media="all">
+ @import url("scilab_code.css");
+ @import url("xml_code.css");
+ @import url("c_code.css");
+ @import url("style.css");
+ </style>
+ </head>
+ <body>
+ <div class="manualnavbar">
+ <table width="100%"><tr>
+ <td width="30%">
+ <span class="previous"><a href="symphonymat.html">&lt;&lt; symphonymat</a></span>
+
+ </td>
+ <td width="40%" class="center">
+ <span class="top"><a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a></span>
+
+ </td>
+ <td width="30%" class="next">
+
+ </td>
+ </tr></table>
+ <hr />
+ </div>
+
+
+
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; Symphony Native Functions</span>
+
+ <br /><br />
+ <h3 class="title-chapter">Symphony Native Functions</h3>
+<ul class="list-refentry"><li><a href="sym_addConstr.html" class="refentry">sym_addConstr</a> &#8212; <span class="refentry-description">Add a new constraint</span></li>
+
+
+
+<li><a href="sym_addVar.html" class="refentry">sym_addVar</a> &#8212; <span class="refentry-description">Add a new variable</span></li>
+
+
+
+<li><a href="sym_close.html" class="refentry">sym_close</a> &#8212; <span class="refentry-description">Close the Symphony environment</span></li>
+
+
+
+<li><a href="sym_deleteConstrs.html" class="refentry">sym_deleteConstrs</a> &#8212; <span class="refentry-description">This routine is used to delete rows from the original constraint matrix.</span></li>
+
+
+
+<li><a href="sym_deleteVars.html" class="refentry">sym_deleteVars</a> &#8212; <span class="refentry-description">This routine is used to delete columns from the original problem description.</span></li>
+
+
+
+<li><a href="sym_getConstrActivity.html" class="refentry">sym_getConstrActivity</a> &#8212; <span class="refentry-description">Get the activity of the constraints in the solution</span></li>
+
+
+
+<li><a href="sym_getConstrLower.html" class="refentry">sym_getConstrLower</a> &#8212; <span class="refentry-description">To get the lower bounds of the constraints.</span></li>
+
+
+
+<li><a href="sym_getConstrRange.html" class="refentry">sym_getConstrRange</a> &#8212; <span class="refentry-description">To to get the constraint ranges.</span></li>
+
+
+
+<li><a href="sym_getConstrSense.html" class="refentry">sym_getConstrSense</a> &#8212; <span class="refentry-description">To get the row senses.</span></li>
+
+
+
+<li><a href="sym_getConstrUpper.html" class="refentry">sym_getConstrUpper</a> &#8212; <span class="refentry-description">To get the upper bounds of the constraints.</span></li>
+
+
+
+<li><a href="sym_getDblParam.html" class="refentry">sym_getDblParam</a> &#8212; <span class="refentry-description">This routine is used to get the value of a double type parameter.</span></li>
+
+
+
+<li><a href="sym_getInfinity.html" class="refentry">sym_getInfinity</a> &#8212; <span class="refentry-description">Get Symphony&#0039;s infinity value</span></li>
+
+
+
+<li><a href="sym_getIntParam.html" class="refentry">sym_getIntParam</a> &#8212; <span class="refentry-description">This routine is used to get the value of an integer type parameter.</span></li>
+
+
+
+<li><a href="sym_getIterCount.html" class="refentry">sym_getIterCount</a> &#8212; <span class="refentry-description">To get the number of the analyzed nodes of the branching tree after solving the problem.</span></li>
+
+
+
+<li><a href="sym_getMatrix.html" class="refentry">sym_getMatrix</a> &#8212; <span class="refentry-description">To get the constraint matrix.</span></li>
+
+
+
+<li><a href="sym_getNumConstr.html" class="refentry">sym_getNumConstr</a> &#8212; <span class="refentry-description">To get the number of the constraints of the current problem.</span></li>
+
+
+
+<li><a href="sym_getNumElements.html" class="refentry">sym_getNumElements</a> &#8212; <span class="refentry-description">To get the number of non-zero entries of the constraint matrix of the current problem.</span></li>
+
+
+
+<li><a href="sym_getNumVar.html" class="refentry">sym_getNumVar</a> &#8212; <span class="refentry-description">To get the number of the variables of the current problem.</span></li>
+
+
+
+<li><a href="sym_getObjCoeff.html" class="refentry">sym_getObjCoeff</a> &#8212; <span class="refentry-description">To get the objective vector.</span></li>
+
+
+
+<li><a href="sym_getObjSense.html" class="refentry">sym_getObjSense</a> &#8212; <span class="refentry-description">Get the objective sense</span></li>
+
+
+
+<li><a href="sym_getObjVal.html" class="refentry">sym_getObjVal</a> &#8212; <span class="refentry-description">Get the optimized objective value</span></li>
+
+
+
+<li><a href="sym_getPrimalBound.html" class="refentry">sym_getPrimalBound</a> &#8212; <span class="refentry-description">Get the primal bound of the problem</span></li>
+
+
+
+<li><a href="sym_getRhs.html" class="refentry">sym_getRhs</a> &#8212; <span class="refentry-description">To to get the right hand side vector(column vector).</span></li>
+
+
+
+<li><a href="sym_getStatus.html" class="refentry">sym_getStatus</a> &#8212; <span class="refentry-description">To get status of the problem solver.</span></li>
+
+
+
+<li><a href="sym_getStrParam.html" class="refentry">sym_getStrParam</a> &#8212; <span class="refentry-description">This routine is used to get the value of a string type parameter.</span></li>
+
+
+
+<li><a href="sym_getVarLower.html" class="refentry">sym_getVarLower</a> &#8212; <span class="refentry-description">To get the lower bounds of the variables.</span></li>
+
+
+
+<li><a href="sym_getVarSoln.html" class="refentry">sym_getVarSoln</a> &#8212; <span class="refentry-description">Get the solution for the problem</span></li>
+
+
+
+<li><a href="sym_getVarUpper.html" class="refentry">sym_getVarUpper</a> &#8212; <span class="refentry-description">To get the upper bounds of the variables.</span></li>
+
+
+
+<li><a href="sym_isAbandoned.html" class="refentry">sym_isAbandoned</a> &#8212; <span class="refentry-description">To check whether the problem was abandoned for some reason.</span></li>
+
+
+
+<li><a href="sym_isBinary.html" class="refentry">sym_isBinary</a> &#8212; <span class="refentry-description">Check if a variable is constrained to be binary</span></li>
+
+
+
+<li><a href="sym_isContinuous.html" class="refentry">sym_isContinuous</a> &#8212; <span class="refentry-description">Check if a variable is continuous</span></li>
+
+
+
+<li><a href="sym_isEnvActive.html" class="refentry">sym_isEnvActive</a> &#8212; <span class="refentry-description">Check if Symphony environment is active</span></li>
+
+
+
+<li><a href="sym_isInfeasible.html" class="refentry">sym_isInfeasible</a> &#8212; <span class="refentry-description">To check whether the problem was proven to be infeasible.</span></li>
+
+
+
+<li><a href="sym_isInteger.html" class="refentry">sym_isInteger</a> &#8212; <span class="refentry-description">Check if a variable is constrained to be an integer</span></li>
+
+
+
+<li><a href="sym_isIterLimitReached.html" class="refentry">sym_isIterLimitReached</a> &#8212; <span class="refentry-description">To know whether the iteration limit (node limit) was reached.</span></li>
+
+
+
+<li><a href="sym_isOptimal.html" class="refentry">sym_isOptimal</a> &#8212; <span class="refentry-description">To check whether the problem was solved to optimality.</span></li>
+
+
+
+<li><a href="sym_isTargetGapAchieved.html" class="refentry">sym_isTargetGapAchieved</a> &#8212; <span class="refentry-description">To know whether the target gap was reached.</span></li>
+
+
+
+<li><a href="sym_isTimeLimitReached.html" class="refentry">sym_isTimeLimitReached</a> &#8212; <span class="refentry-description">To know whether the time limit was reached.</span></li>
+
+
+
+<li><a href="sym_loadMPS.html" class="refentry">sym_loadMPS</a> &#8212; <span class="refentry-description">This routine is used to load an instance from an MPS file.</span></li>
+
+
+
+<li><a href="sym_loadProblem.html" class="refentry">sym_loadProblem</a> &#8212; <span class="refentry-description">Load a problem into Symphony</span></li>
+
+
+
+<li><a href="sym_loadProblemBasic.html" class="refentry">sym_loadProblemBasic</a> &#8212; <span class="refentry-description">Load a problem into Symphony (basic version)</span></li>
+
+
+
+<li><a href="sym_open.html" class="refentry">sym_open</a> &#8212; <span class="refentry-description">Open the Symphony environment</span></li>
+
+
+
+<li><a href="sym_resetParams.html" class="refentry">sym_resetParams</a> &#8212; <span class="refentry-description">This routine sets all the environment variables and parameters to their default values.</span></li>
+
+
+
+<li><a href="sym_setConstrLower.html" class="refentry">sym_setConstrLower</a> &#8212; <span class="refentry-description">Set the lower bound of a constraint</span></li>
+
+
+
+<li><a href="sym_setConstrType.html" class="refentry">sym_setConstrType</a> &#8212; <span class="refentry-description">Set the type of a constraint</span></li>
+
+
+
+<li><a href="sym_setConstrUpper.html" class="refentry">sym_setConstrUpper</a> &#8212; <span class="refentry-description">Set the upper bound of a constraint</span></li>
+
+
+
+<li><a href="sym_setContinuous.html" class="refentry">sym_setContinuous</a> &#8212; <span class="refentry-description">This routine is used to set the type of a variable to be continuous.</span></li>
+
+
+
+<li><a href="sym_setDblParam.html" class="refentry">sym_setDblParam</a> &#8212; <span class="refentry-description">This routine is used to set a double type parameter.</span></li>
+
+
+
+<li><a href="sym_setIntParam.html" class="refentry">sym_setIntParam</a> &#8212; <span class="refentry-description">This routine is used to set an integer type parameter.</span></li>
+
+
+
+<li><a href="sym_setInteger.html" class="refentry">sym_setInteger</a> &#8212; <span class="refentry-description">This routine is used to set the type of a variable to be integer.</span></li>
+
+
+
+<li><a href="sym_setObjCoeff.html" class="refentry">sym_setObjCoeff</a> &#8212; <span class="refentry-description">Set coefficient of a variable in the objective</span></li>
+
+
+
+<li><a href="sym_setObjSense.html" class="refentry">sym_setObjSense</a> &#8212; <span class="refentry-description">Set the objective sense</span></li>
+
+
+
+<li><a href="sym_setPrimalBound.html" class="refentry">sym_setPrimalBound</a> &#8212; <span class="refentry-description">Set the primal bound of the problem</span></li>
+
+
+
+<li><a href="sym_setStrParam.html" class="refentry">sym_setStrParam</a> &#8212; <span class="refentry-description">This routine is used to set a string type parameter.</span></li>
+
+
+
+<li><a href="sym_setVarLower.html" class="refentry">sym_setVarLower</a> &#8212; <span class="refentry-description">Set lower bound of a variable</span></li>
+
+
+
+<li><a href="sym_setVarSoln.html" class="refentry">sym_setVarSoln</a> &#8212; <span class="refentry-description">Set a solution for the problem</span></li>
+
+
+
+<li><a href="sym_setVarUpper.html" class="refentry">sym_setVarUpper</a> &#8212; <span class="refentry-description">Set upper bound of a variable</span></li>
+
+
+
+<li><a href="sym_solve.html" class="refentry">sym_solve</a> &#8212; <span class="refentry-description">To solve the currently loaded MILP problem from scratch.</span></li></ul>
+ <br />
+
+ <div class="manualnavbar">
+ <table width="100%">
+ <tr><td colspan="3" class="next"><a href="http://bugzilla.scilab.org/enter_bug.cgi?product=Scilab%20software&component=Documentation%20pages" class="ulink">Report an issue</a></td></tr>
+<tr>
+ <td width="30%">
+ <span class="previous"><a href="symphonymat.html">&lt;&lt; symphonymat</a></span>
+
+ </td>
+ <td width="40%" class="center">
+ <span class="top"><a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a></span>
+
+ </td>
+ <td width="30%" class="next">
+
+ </td>
+ </tr></table>
+ <hr />
+ </div>
+ </body>
+</html>
diff --git a/help/en_US/scilab_en_US_help/section_6c2e5edddf1b5b09c56de3bdc2fc0d64.html b/help/en_US/scilab_en_US_help/section_6c2e5edddf1b5b09c56de3bdc2fc0d64.html
new file mode 100644
index 0000000..f83b867
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/section_6c2e5edddf1b5b09c56de3bdc2fc0d64.html
@@ -0,0 +1,285 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <title></title>
+ <style type="text/css" media="all">
+ @import url("scilab_code.css");
+ @import url("xml_code.css");
+ @import url("c_code.css");
+ @import url("style.css");
+ </style>
+ </head>
+ <body>
+ <div class="manualnavbar">
+ <table width="100%"><tr>
+ <td width="30%">
+ <span class="previous"><a href="symphonymat.html">&lt;&lt; symphonymat</a></span>
+
+ </td>
+ <td width="40%" class="center">
+ <span class="top"><a href="section_8b595dffcf2928adea151d3ba6836faa.html">FOSSEE Optimization Toolbox</a></span>
+
+ </td>
+ <td width="30%" class="next">
+
+ </td>
+ </tr></table>
+ <hr />
+ </div>
+
+
+
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_8b595dffcf2928adea151d3ba6836faa.html">FOSSEE Optimization Toolbox</a> &gt; Symphony Native Functions</span>
+
+ <br /><br />
+ <h3 class="title-chapter">Symphony Native Functions</h3>
+<ul class="list-refentry"><li><a href="sym_addConstr.html" class="refentry">sym_addConstr</a> &#8212; <span class="refentry-description">Add a new constraint</span></li>
+
+
+
+<li><a href="sym_addVar.html" class="refentry">sym_addVar</a> &#8212; <span class="refentry-description">Add a new variable</span></li>
+
+
+
+<li><a href="sym_close.html" class="refentry">sym_close</a> &#8212; <span class="refentry-description">Close the Symphony environment</span></li>
+
+
+
+<li><a href="sym_deleteConstrs.html" class="refentry">sym_deleteConstrs</a> &#8212; <span class="refentry-description">This routine is used to delete rows from the original constraint matrix.</span></li>
+
+
+
+<li><a href="sym_deleteVars.html" class="refentry">sym_deleteVars</a> &#8212; <span class="refentry-description">This routine is used to delete columns from the original problem description.</span></li>
+
+
+
+<li><a href="sym_getConstrActivity.html" class="refentry">sym_getConstrActivity</a> &#8212; <span class="refentry-description">Get the activity of the constraints in the solution</span></li>
+
+
+
+<li><a href="sym_getConstrLower.html" class="refentry">sym_getConstrLower</a> &#8212; <span class="refentry-description">To get the lower bounds of the constraints.</span></li>
+
+
+
+<li><a href="sym_getConstrRange.html" class="refentry">sym_getConstrRange</a> &#8212; <span class="refentry-description">To to get the constraint ranges.</span></li>
+
+
+
+<li><a href="sym_getConstrSense.html" class="refentry">sym_getConstrSense</a> &#8212; <span class="refentry-description">To get the row senses.</span></li>
+
+
+
+<li><a href="sym_getConstrUpper.html" class="refentry">sym_getConstrUpper</a> &#8212; <span class="refentry-description">To get the upper bounds of the constraints.</span></li>
+
+
+
+<li><a href="sym_getDblParam.html" class="refentry">sym_getDblParam</a> &#8212; <span class="refentry-description">This routine is used to get the value of a double type parameter.</span></li>
+
+
+
+<li><a href="sym_getInfinity.html" class="refentry">sym_getInfinity</a> &#8212; <span class="refentry-description">Get Symphony&#0039;s infinity value</span></li>
+
+
+
+<li><a href="sym_getIntParam.html" class="refentry">sym_getIntParam</a> &#8212; <span class="refentry-description">This routine is used to get the value of an integer type parameter.</span></li>
+
+
+
+<li><a href="sym_getIterCount.html" class="refentry">sym_getIterCount</a> &#8212; <span class="refentry-description">To get the number of the analyzed nodes of the branching tree after solving the problem.</span></li>
+
+
+
+<li><a href="sym_getMatrix.html" class="refentry">sym_getMatrix</a> &#8212; <span class="refentry-description">To get the constraint matrix.</span></li>
+
+
+
+<li><a href="sym_getNumConstr.html" class="refentry">sym_getNumConstr</a> &#8212; <span class="refentry-description">To get the number of the constraints of the current problem.</span></li>
+
+
+
+<li><a href="sym_getNumElements.html" class="refentry">sym_getNumElements</a> &#8212; <span class="refentry-description">To get the number of non-zero entries of the constraint matrix of the current problem.</span></li>
+
+
+
+<li><a href="sym_getNumVar.html" class="refentry">sym_getNumVar</a> &#8212; <span class="refentry-description">To get the number of the variables of the current problem.</span></li>
+
+
+
+<li><a href="sym_getObjCoeff.html" class="refentry">sym_getObjCoeff</a> &#8212; <span class="refentry-description">To get the objective vector.</span></li>
+
+
+
+<li><a href="sym_getObjSense.html" class="refentry">sym_getObjSense</a> &#8212; <span class="refentry-description">Get the objective sense</span></li>
+
+
+
+<li><a href="sym_getObjVal.html" class="refentry">sym_getObjVal</a> &#8212; <span class="refentry-description">Get the optimized objective value</span></li>
+
+
+
+<li><a href="sym_getPrimalBound.html" class="refentry">sym_getPrimalBound</a> &#8212; <span class="refentry-description">Get the primal bound of the problem</span></li>
+
+
+
+<li><a href="sym_getRhs.html" class="refentry">sym_getRhs</a> &#8212; <span class="refentry-description">To to get the right hand side vector(column vector).</span></li>
+
+
+
+<li><a href="sym_getStatus.html" class="refentry">sym_getStatus</a> &#8212; <span class="refentry-description">To get status of the problem solver.</span></li>
+
+
+
+<li><a href="sym_getStrParam.html" class="refentry">sym_getStrParam</a> &#8212; <span class="refentry-description">This routine is used to get the value of a string type parameter.</span></li>
+
+
+
+<li><a href="sym_getVarLower.html" class="refentry">sym_getVarLower</a> &#8212; <span class="refentry-description">To get the lower bounds of the variables.</span></li>
+
+
+
+<li><a href="sym_getVarSoln.html" class="refentry">sym_getVarSoln</a> &#8212; <span class="refentry-description">Get the solution for the problem</span></li>
+
+
+
+<li><a href="sym_getVarUpper.html" class="refentry">sym_getVarUpper</a> &#8212; <span class="refentry-description">To get the upper bounds of the variables.</span></li>
+
+
+
+<li><a href="sym_isAbandoned.html" class="refentry">sym_isAbandoned</a> &#8212; <span class="refentry-description">To check whether the problem was abandoned for some reason.</span></li>
+
+
+
+<li><a href="sym_isBinary.html" class="refentry">sym_isBinary</a> &#8212; <span class="refentry-description">Check if a variable is constrained to be binary</span></li>
+
+
+
+<li><a href="sym_isContinuous.html" class="refentry">sym_isContinuous</a> &#8212; <span class="refentry-description">Check if a variable is continuous</span></li>
+
+
+
+<li><a href="sym_isEnvActive.html" class="refentry">sym_isEnvActive</a> &#8212; <span class="refentry-description">Check if Symphony environment is active</span></li>
+
+
+
+<li><a href="sym_isInfeasible.html" class="refentry">sym_isInfeasible</a> &#8212; <span class="refentry-description">To check whether the problem was proven to be infeasible.</span></li>
+
+
+
+<li><a href="sym_isInteger.html" class="refentry">sym_isInteger</a> &#8212; <span class="refentry-description">Check if a variable is constrained to be an integer</span></li>
+
+
+
+<li><a href="sym_isIterLimitReached.html" class="refentry">sym_isIterLimitReached</a> &#8212; <span class="refentry-description">To know whether the iteration limit (node limit) was reached.</span></li>
+
+
+
+<li><a href="sym_isOptimal.html" class="refentry">sym_isOptimal</a> &#8212; <span class="refentry-description">To check whether the problem was solved to optimality.</span></li>
+
+
+
+<li><a href="sym_isTargetGapAchieved.html" class="refentry">sym_isTargetGapAchieved</a> &#8212; <span class="refentry-description">To know whether the target gap was reached.</span></li>
+
+
+
+<li><a href="sym_isTimeLimitReached.html" class="refentry">sym_isTimeLimitReached</a> &#8212; <span class="refentry-description">To know whether the time limit was reached.</span></li>
+
+
+
+<li><a href="sym_loadMPS.html" class="refentry">sym_loadMPS</a> &#8212; <span class="refentry-description">This routine is used to load an instance from an MPS file.</span></li>
+
+
+
+<li><a href="sym_loadProblem.html" class="refentry">sym_loadProblem</a> &#8212; <span class="refentry-description">Load a problem into Symphony</span></li>
+
+
+
+<li><a href="sym_loadProblemBasic.html" class="refentry">sym_loadProblemBasic</a> &#8212; <span class="refentry-description">Load a problem into Symphony (basic version)</span></li>
+
+
+
+<li><a href="sym_open.html" class="refentry">sym_open</a> &#8212; <span class="refentry-description">Open the Symphony environment</span></li>
+
+
+
+<li><a href="sym_resetParams.html" class="refentry">sym_resetParams</a> &#8212; <span class="refentry-description">This routine sets all the environment variables and parameters to their default values.</span></li>
+
+
+
+<li><a href="sym_setConstrLower.html" class="refentry">sym_setConstrLower</a> &#8212; <span class="refentry-description">Set the lower bound of a constraint</span></li>
+
+
+
+<li><a href="sym_setConstrType.html" class="refentry">sym_setConstrType</a> &#8212; <span class="refentry-description">Set the type of a constraint</span></li>
+
+
+
+<li><a href="sym_setConstrUpper.html" class="refentry">sym_setConstrUpper</a> &#8212; <span class="refentry-description">Set the upper bound of a constraint</span></li>
+
+
+
+<li><a href="sym_setContinuous.html" class="refentry">sym_setContinuous</a> &#8212; <span class="refentry-description">This routine is used to set the type of a variable to be continuous.</span></li>
+
+
+
+<li><a href="sym_setDblParam.html" class="refentry">sym_setDblParam</a> &#8212; <span class="refentry-description">This routine is used to set a double type parameter.</span></li>
+
+
+
+<li><a href="sym_setIntParam.html" class="refentry">sym_setIntParam</a> &#8212; <span class="refentry-description">This routine is used to set an integer type parameter.</span></li>
+
+
+
+<li><a href="sym_setInteger.html" class="refentry">sym_setInteger</a> &#8212; <span class="refentry-description">This routine is used to set the type of a variable to be integer.</span></li>
+
+
+
+<li><a href="sym_setObjCoeff.html" class="refentry">sym_setObjCoeff</a> &#8212; <span class="refentry-description">Set coefficient of a variable in the objective</span></li>
+
+
+
+<li><a href="sym_setObjSense.html" class="refentry">sym_setObjSense</a> &#8212; <span class="refentry-description">Set the objective sense</span></li>
+
+
+
+<li><a href="sym_setPrimalBound.html" class="refentry">sym_setPrimalBound</a> &#8212; <span class="refentry-description">Set the primal bound of the problem</span></li>
+
+
+
+<li><a href="sym_setStrParam.html" class="refentry">sym_setStrParam</a> &#8212; <span class="refentry-description">This routine is used to set a string type parameter.</span></li>
+
+
+
+<li><a href="sym_setVarLower.html" class="refentry">sym_setVarLower</a> &#8212; <span class="refentry-description">Set lower bound of a variable</span></li>
+
+
+
+<li><a href="sym_setVarSoln.html" class="refentry">sym_setVarSoln</a> &#8212; <span class="refentry-description">Set a solution for the problem</span></li>
+
+
+
+<li><a href="sym_setVarUpper.html" class="refentry">sym_setVarUpper</a> &#8212; <span class="refentry-description">Set upper bound of a variable</span></li>
+
+
+
+<li><a href="sym_solve.html" class="refentry">sym_solve</a> &#8212; <span class="refentry-description">To solve the currently loaded MILP problem from scratch.</span></li></ul>
+ <br />
+
+ <div class="manualnavbar">
+ <table width="100%">
+ <tr><td colspan="3" class="next"><a href="http://bugzilla.scilab.org/enter_bug.cgi?product=Scilab%20software&component=Documentation%20pages" class="ulink">Report an issue</a></td></tr>
+<tr>
+ <td width="30%">
+ <span class="previous"><a href="symphonymat.html">&lt;&lt; symphonymat</a></span>
+
+ </td>
+ <td width="40%" class="center">
+ <span class="top"><a href="section_8b595dffcf2928adea151d3ba6836faa.html">FOSSEE Optimization Toolbox</a></span>
+
+ </td>
+ <td width="30%" class="next">
+
+ </td>
+ </tr></table>
+ <hr />
+ </div>
+ </body>
+</html>
diff --git a/help/en_US/scilab_en_US_help/section_7f9be39cf912aa1e283b946d86a6bd7c.html b/help/en_US/scilab_en_US_help/section_7f9be39cf912aa1e283b946d86a6bd7c.html
new file mode 100644
index 0000000..b0bf4dd
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/section_7f9be39cf912aa1e283b946d86a6bd7c.html
@@ -0,0 +1,357 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <title></title>
+ <style type="text/css" media="all">
+ @import url("scilab_code.css");
+ @import url("xml_code.css");
+ @import url("c_code.css");
+ @import url("style.css");
+ </style>
+ </head>
+ <body>
+ <div class="manualnavbar">
+ <table width="100%"><tr>
+ <td width="30%">
+
+ </td>
+ <td width="40%" class="center">
+ <span class="top"><a href="index.html">FOSSEE Optimization Toolbox</a></span>
+
+ </td>
+ <td width="30%" class="next">
+
+ </td>
+ </tr></table>
+ <hr />
+ </div>
+
+
+
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; FOSSEE Optimization Toolbox</span>
+
+ <br /><br />
+ <h3 class="title-part">FOSSEE Optimization Toolbox</h3>
+<ul class="list-chapter"><li><a href="fgoalattain.html" class="refentry">fgoalattain</a> &#8212; <span class="refentry-description">Solves a multiobjective goal attainment problem</span></li>
+
+
+
+
+
+<li><a href="fminbnd.html" class="refentry">fminbnd</a> &#8212; <span class="refentry-description">Solves a multi-variable optimization problem on a bounded interval</span></li>
+
+
+
+
+
+<li><a href="fmincon.html" class="refentry">fmincon</a> &#8212; <span class="refentry-description">Solves a multi-variable constrainted optimization problem.</span></li>
+
+
+
+
+
+<li><a href="fminimax.html" class="refentry">fminimax</a> &#8212; <span class="refentry-description">Solves minimax constraint problem</span></li>
+
+
+
+
+
+<li><a href="fminunc.html" class="refentry">fminunc</a> &#8212; <span class="refentry-description">Solves a multi-variable unconstrainted optimization problem</span></li>
+
+
+
+
+
+<li><a href="linprog.html" class="refentry">linprog</a> &#8212; <span class="refentry-description">Solves a linear programming problem.</span></li>
+
+
+
+
+<li><a href="lsqlin.html" class="refentry">lsqlin</a> &#8212; <span class="refentry-description">Solves a linear quadratic problem.</span></li>
+
+
+
+
+
+<li><a href="lsqnonlin.html" class="refentry">lsqnonlin</a> &#8212; <span class="refentry-description">Solves a non linear data fitting problems.</span></li>
+
+
+
+
+
+<li><a href="lsqnonneg.html" class="refentry">lsqnonneg</a> &#8212; <span class="refentry-description">Solves nonnegative least-squares curve fitting problems.</span></li>
+
+
+
+
+
+<li><a href="qpipopt.html" class="refentry">qpipopt</a> &#8212; <span class="refentry-description">Solves a linear quadratic problem.</span></li>
+
+
+
+
+
+<li><a href="qpipoptmat.html" class="refentry">qpipoptmat</a> &#8212; <span class="refentry-description">Solves a linear quadratic problem.</span></li>
+
+
+
+
+
+<li><a href="symphony.html" class="refentry">symphony</a> &#8212; <span class="refentry-description">Solves a mixed integer linear programming constrained optimization problem.</span></li>
+
+
+
+
+
+<li><a href="symphonymat.html" class="refentry">symphonymat</a> &#8212; <span class="refentry-description">Solves a mixed integer linear programming constrained optimization problem in intlinprog format.</span></li>
+
+<li><a href="section_016165dcad2b2229387faee34442c3dd.html" class="chapter">Symphony Native Functions</a>
+<ul class="list-refentry"><li><a href="sym_addConstr.html" class="refentry">sym_addConstr</a> &#8212; <span class="refentry-description">Add a new constraint</span></li>
+
+
+
+<li><a href="sym_addVar.html" class="refentry">sym_addVar</a> &#8212; <span class="refentry-description">Add a new variable</span></li>
+
+
+
+<li><a href="sym_close.html" class="refentry">sym_close</a> &#8212; <span class="refentry-description">Close the Symphony environment</span></li>
+
+
+
+<li><a href="sym_deleteConstrs.html" class="refentry">sym_deleteConstrs</a> &#8212; <span class="refentry-description">This routine is used to delete rows from the original constraint matrix.</span></li>
+
+
+
+<li><a href="sym_deleteVars.html" class="refentry">sym_deleteVars</a> &#8212; <span class="refentry-description">This routine is used to delete columns from the original problem description.</span></li>
+
+
+
+<li><a href="sym_getConstrActivity.html" class="refentry">sym_getConstrActivity</a> &#8212; <span class="refentry-description">Get the activity of the constraints in the solution</span></li>
+
+
+
+<li><a href="sym_getConstrLower.html" class="refentry">sym_getConstrLower</a> &#8212; <span class="refentry-description">To get the lower bounds of the constraints.</span></li>
+
+
+
+<li><a href="sym_getConstrRange.html" class="refentry">sym_getConstrRange</a> &#8212; <span class="refentry-description">To to get the constraint ranges.</span></li>
+
+
+
+<li><a href="sym_getConstrSense.html" class="refentry">sym_getConstrSense</a> &#8212; <span class="refentry-description">To get the row senses.</span></li>
+
+
+
+<li><a href="sym_getConstrUpper.html" class="refentry">sym_getConstrUpper</a> &#8212; <span class="refentry-description">To get the upper bounds of the constraints.</span></li>
+
+
+
+<li><a href="sym_getDblParam.html" class="refentry">sym_getDblParam</a> &#8212; <span class="refentry-description">This routine is used to get the value of a double type parameter.</span></li>
+
+
+
+<li><a href="sym_getInfinity.html" class="refentry">sym_getInfinity</a> &#8212; <span class="refentry-description">Get Symphony&#0039;s infinity value</span></li>
+
+
+
+<li><a href="sym_getIntParam.html" class="refentry">sym_getIntParam</a> &#8212; <span class="refentry-description">This routine is used to get the value of an integer type parameter.</span></li>
+
+
+
+<li><a href="sym_getIterCount.html" class="refentry">sym_getIterCount</a> &#8212; <span class="refentry-description">To get the number of the analyzed nodes of the branching tree after solving the problem.</span></li>
+
+
+
+<li><a href="sym_getMatrix.html" class="refentry">sym_getMatrix</a> &#8212; <span class="refentry-description">To get the constraint matrix.</span></li>
+
+
+
+<li><a href="sym_getNumConstr.html" class="refentry">sym_getNumConstr</a> &#8212; <span class="refentry-description">To get the number of the constraints of the current problem.</span></li>
+
+
+
+<li><a href="sym_getNumElements.html" class="refentry">sym_getNumElements</a> &#8212; <span class="refentry-description">To get the number of non-zero entries of the constraint matrix of the current problem.</span></li>
+
+
+
+<li><a href="sym_getNumVar.html" class="refentry">sym_getNumVar</a> &#8212; <span class="refentry-description">To get the number of the variables of the current problem.</span></li>
+
+
+
+<li><a href="sym_getObjCoeff.html" class="refentry">sym_getObjCoeff</a> &#8212; <span class="refentry-description">To get the objective vector.</span></li>
+
+
+
+<li><a href="sym_getObjSense.html" class="refentry">sym_getObjSense</a> &#8212; <span class="refentry-description">Get the objective sense</span></li>
+
+
+
+<li><a href="sym_getObjVal.html" class="refentry">sym_getObjVal</a> &#8212; <span class="refentry-description">Get the optimized objective value</span></li>
+
+
+
+<li><a href="sym_getPrimalBound.html" class="refentry">sym_getPrimalBound</a> &#8212; <span class="refentry-description">Get the primal bound of the problem</span></li>
+
+
+
+<li><a href="sym_getRhs.html" class="refentry">sym_getRhs</a> &#8212; <span class="refentry-description">To to get the right hand side vector(column vector).</span></li>
+
+
+
+<li><a href="sym_getStatus.html" class="refentry">sym_getStatus</a> &#8212; <span class="refentry-description">To get status of the problem solver.</span></li>
+
+
+
+<li><a href="sym_getStrParam.html" class="refentry">sym_getStrParam</a> &#8212; <span class="refentry-description">This routine is used to get the value of a string type parameter.</span></li>
+
+
+
+<li><a href="sym_getVarLower.html" class="refentry">sym_getVarLower</a> &#8212; <span class="refentry-description">To get the lower bounds of the variables.</span></li>
+
+
+
+<li><a href="sym_getVarSoln.html" class="refentry">sym_getVarSoln</a> &#8212; <span class="refentry-description">Get the solution for the problem</span></li>
+
+
+
+<li><a href="sym_getVarUpper.html" class="refentry">sym_getVarUpper</a> &#8212; <span class="refentry-description">To get the upper bounds of the variables.</span></li>
+
+
+
+<li><a href="sym_isAbandoned.html" class="refentry">sym_isAbandoned</a> &#8212; <span class="refentry-description">To check whether the problem was abandoned for some reason.</span></li>
+
+
+
+<li><a href="sym_isBinary.html" class="refentry">sym_isBinary</a> &#8212; <span class="refentry-description">Check if a variable is constrained to be binary</span></li>
+
+
+
+<li><a href="sym_isContinuous.html" class="refentry">sym_isContinuous</a> &#8212; <span class="refentry-description">Check if a variable is continuous</span></li>
+
+
+
+<li><a href="sym_isEnvActive.html" class="refentry">sym_isEnvActive</a> &#8212; <span class="refentry-description">Check if Symphony environment is active</span></li>
+
+
+
+<li><a href="sym_isInfeasible.html" class="refentry">sym_isInfeasible</a> &#8212; <span class="refentry-description">To check whether the problem was proven to be infeasible.</span></li>
+
+
+
+<li><a href="sym_isInteger.html" class="refentry">sym_isInteger</a> &#8212; <span class="refentry-description">Check if a variable is constrained to be an integer</span></li>
+
+
+
+<li><a href="sym_isIterLimitReached.html" class="refentry">sym_isIterLimitReached</a> &#8212; <span class="refentry-description">To know whether the iteration limit (node limit) was reached.</span></li>
+
+
+
+<li><a href="sym_isOptimal.html" class="refentry">sym_isOptimal</a> &#8212; <span class="refentry-description">To check whether the problem was solved to optimality.</span></li>
+
+
+
+<li><a href="sym_isTargetGapAchieved.html" class="refentry">sym_isTargetGapAchieved</a> &#8212; <span class="refentry-description">To know whether the target gap was reached.</span></li>
+
+
+
+<li><a href="sym_isTimeLimitReached.html" class="refentry">sym_isTimeLimitReached</a> &#8212; <span class="refentry-description">To know whether the time limit was reached.</span></li>
+
+
+
+<li><a href="sym_loadMPS.html" class="refentry">sym_loadMPS</a> &#8212; <span class="refentry-description">This routine is used to load an instance from an MPS file.</span></li>
+
+
+
+<li><a href="sym_loadProblem.html" class="refentry">sym_loadProblem</a> &#8212; <span class="refentry-description">Load a problem into Symphony</span></li>
+
+
+
+<li><a href="sym_loadProblemBasic.html" class="refentry">sym_loadProblemBasic</a> &#8212; <span class="refentry-description">Load a problem into Symphony (basic version)</span></li>
+
+
+
+<li><a href="sym_open.html" class="refentry">sym_open</a> &#8212; <span class="refentry-description">Open the Symphony environment</span></li>
+
+
+
+<li><a href="sym_resetParams.html" class="refentry">sym_resetParams</a> &#8212; <span class="refentry-description">This routine sets all the environment variables and parameters to their default values.</span></li>
+
+
+
+<li><a href="sym_setConstrLower.html" class="refentry">sym_setConstrLower</a> &#8212; <span class="refentry-description">Set the lower bound of a constraint</span></li>
+
+
+
+<li><a href="sym_setConstrType.html" class="refentry">sym_setConstrType</a> &#8212; <span class="refentry-description">Set the type of a constraint</span></li>
+
+
+
+<li><a href="sym_setConstrUpper.html" class="refentry">sym_setConstrUpper</a> &#8212; <span class="refentry-description">Set the upper bound of a constraint</span></li>
+
+
+
+<li><a href="sym_setContinuous.html" class="refentry">sym_setContinuous</a> &#8212; <span class="refentry-description">This routine is used to set the type of a variable to be continuous.</span></li>
+
+
+
+<li><a href="sym_setDblParam.html" class="refentry">sym_setDblParam</a> &#8212; <span class="refentry-description">This routine is used to set a double type parameter.</span></li>
+
+
+
+<li><a href="sym_setIntParam.html" class="refentry">sym_setIntParam</a> &#8212; <span class="refentry-description">This routine is used to set an integer type parameter.</span></li>
+
+
+
+<li><a href="sym_setInteger.html" class="refentry">sym_setInteger</a> &#8212; <span class="refentry-description">This routine is used to set the type of a variable to be integer.</span></li>
+
+
+
+<li><a href="sym_setObjCoeff.html" class="refentry">sym_setObjCoeff</a> &#8212; <span class="refentry-description">Set coefficient of a variable in the objective</span></li>
+
+
+
+<li><a href="sym_setObjSense.html" class="refentry">sym_setObjSense</a> &#8212; <span class="refentry-description">Set the objective sense</span></li>
+
+
+
+<li><a href="sym_setPrimalBound.html" class="refentry">sym_setPrimalBound</a> &#8212; <span class="refentry-description">Set the primal bound of the problem</span></li>
+
+
+
+<li><a href="sym_setStrParam.html" class="refentry">sym_setStrParam</a> &#8212; <span class="refentry-description">This routine is used to set a string type parameter.</span></li>
+
+
+
+<li><a href="sym_setVarLower.html" class="refentry">sym_setVarLower</a> &#8212; <span class="refentry-description">Set lower bound of a variable</span></li>
+
+
+
+<li><a href="sym_setVarSoln.html" class="refentry">sym_setVarSoln</a> &#8212; <span class="refentry-description">Set a solution for the problem</span></li>
+
+
+
+<li><a href="sym_setVarUpper.html" class="refentry">sym_setVarUpper</a> &#8212; <span class="refentry-description">Set upper bound of a variable</span></li>
+
+
+
+<li><a href="sym_solve.html" class="refentry">sym_solve</a> &#8212; <span class="refentry-description">To solve the currently loaded MILP problem from scratch.</span></li></ul></li></ul>
+ <br />
+
+ <div class="manualnavbar">
+ <table width="100%">
+ <tr><td colspan="3" class="next"><a href="http://bugzilla.scilab.org/enter_bug.cgi?product=Scilab%20software&component=Documentation%20pages" class="ulink">Report an issue</a></td></tr>
+<tr>
+ <td width="30%">
+
+ </td>
+ <td width="40%" class="center">
+ <span class="top"><a href="index.html">FOSSEE Optimization Toolbox</a></span>
+
+ </td>
+ <td width="30%" class="next">
+
+ </td>
+ </tr></table>
+ <hr />
+ </div>
+ </body>
+</html>
diff --git a/help/en_US/scilab_en_US_help/section_8b595dffcf2928adea151d3ba6836faa.html b/help/en_US/scilab_en_US_help/section_8b595dffcf2928adea151d3ba6836faa.html
new file mode 100644
index 0000000..4bc31eb
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/section_8b595dffcf2928adea151d3ba6836faa.html
@@ -0,0 +1,394 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <title></title>
+ <style type="text/css" media="all">
+ @import url("scilab_code.css");
+ @import url("xml_code.css");
+ @import url("c_code.css");
+ @import url("style.css");
+ </style>
+ </head>
+ <body>
+ <div class="manualnavbar">
+ <table width="100%"><tr>
+ <td width="30%">
+
+ </td>
+ <td width="40%" class="center">
+ <span class="top"><a href="index.html">FOSSEE Optimization Toolbox</a></span>
+
+ </td>
+ <td width="30%" class="next">
+
+ </td>
+ </tr></table>
+ <hr />
+ </div>
+
+
+
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; FOSSEE Optimization Toolbox</span>
+
+ <br /><br />
+ <h3 class="title-part">FOSSEE Optimization Toolbox</h3>
+<ul class="list-chapter"><li><a href="cbcintlinprog.html" class="refentry">cbcintlinprog</a> &#8212; <span class="refentry-description">Solves a mixed integer linear programming constrained optimization problem in intlinprog format.</span></li>
+
+
+
+
+
+<li><a href="fgoalattain.html" class="refentry">fgoalattain</a> &#8212; <span class="refentry-description">Solves a multiobjective goal attainment problem</span></li>
+
+
+
+
+
+<li><a href="fminbnd.html" class="refentry">fminbnd</a> &#8212; <span class="refentry-description">Solves a multi-variable optimization problem on a bounded interval</span></li>
+
+
+
+
+
+<li><a href="fmincon.html" class="refentry">fmincon</a> &#8212; <span class="refentry-description">Solves a multi-variable constrainted optimization problem.</span></li>
+
+
+
+
+
+<li><a href="fminimax.html" class="refentry">fminimax</a> &#8212; <span class="refentry-description">Solves minimax constraint problem</span></li>
+
+
+
+
+
+<li><a href="fminunc.html" class="refentry">fminunc</a> &#8212; <span class="refentry-description">Solves a multi-variable unconstrainted optimization problem</span></li>
+
+
+
+
+
+<li><a href="intfminbnd.html" class="refentry">intfminbnd</a> &#8212; <span class="refentry-description">Solves a multi-variable optimization problem on a bounded interval</span></li>
+
+
+
+
+
+<li><a href="intfmincon.html" class="refentry">intfmincon</a> &#8212; <span class="refentry-description">Solves a constrainted multi-variable mixed integer non linear programming problem</span></li>
+
+
+
+
+
+<li><a href="intfminimax.html" class="refentry">intfminimax</a> &#8212; <span class="refentry-description">Solves minimax constraint problem</span></li>
+
+
+
+
+
+<li><a href="intfminunc.html" class="refentry">intfminunc</a> &#8212; <span class="refentry-description">Solves an unconstrainted multi-variable mixed integer non linear programming optimization problem</span></li>
+
+
+
+
+
+<li><a href="intqpipopt.html" class="refentry">intqpipopt</a> &#8212; <span class="refentry-description">Solves a linear quadratic problem.</span></li>
+
+
+
+
+
+<li><a href="linprog.html" class="refentry">linprog</a> &#8212; <span class="refentry-description">Solves a linear programming problem.</span></li>
+
+
+
+
+
+<li><a href="lsqlin.html" class="refentry">lsqlin</a> &#8212; <span class="refentry-description">Solves a linear quadratic problem.</span></li>
+
+
+
+
+
+<li><a href="lsqnonlin.html" class="refentry">lsqnonlin</a> &#8212; <span class="refentry-description">Solves a non linear data fitting problems.</span></li>
+
+
+
+
+
+<li><a href="lsqnonneg.html" class="refentry">lsqnonneg</a> &#8212; <span class="refentry-description">Solves nonnegative least-squares curve fitting problems.</span></li>
+
+
+
+
+
+<li><a href="qpipopt.html" class="refentry">qpipopt</a> &#8212; <span class="refentry-description">Solves a linear quadratic problem.</span></li>
+
+
+
+
+
+<li><a href="qpipoptmat.html" class="refentry">qpipoptmat</a> &#8212; <span class="refentry-description">Solves a linear quadratic problem.</span></li>
+
+
+
+
+
+<li><a href="symphony.html" class="refentry">symphony</a> &#8212; <span class="refentry-description">Solves a mixed integer linear programming constrained optimization problem.</span></li>
+
+
+
+
+
+<li><a href="symphonymat.html" class="refentry">symphonymat</a> &#8212; <span class="refentry-description">Solves a mixed integer linear programming constrained optimization problem in intlinprog format.</span></li>
+
+<li><a href="section_6c2e5edddf1b5b09c56de3bdc2fc0d64.html" class="chapter">Symphony Native Functions</a>
+<ul class="list-refentry"><li><a href="sym_addConstr.html" class="refentry">sym_addConstr</a> &#8212; <span class="refentry-description">Add a new constraint</span></li>
+
+
+
+<li><a href="sym_addVar.html" class="refentry">sym_addVar</a> &#8212; <span class="refentry-description">Add a new variable</span></li>
+
+
+
+<li><a href="sym_close.html" class="refentry">sym_close</a> &#8212; <span class="refentry-description">Close the Symphony environment</span></li>
+
+
+
+<li><a href="sym_deleteConstrs.html" class="refentry">sym_deleteConstrs</a> &#8212; <span class="refentry-description">This routine is used to delete rows from the original constraint matrix.</span></li>
+
+
+
+<li><a href="sym_deleteVars.html" class="refentry">sym_deleteVars</a> &#8212; <span class="refentry-description">This routine is used to delete columns from the original problem description.</span></li>
+
+
+
+<li><a href="sym_getConstrActivity.html" class="refentry">sym_getConstrActivity</a> &#8212; <span class="refentry-description">Get the activity of the constraints in the solution</span></li>
+
+
+
+<li><a href="sym_getConstrLower.html" class="refentry">sym_getConstrLower</a> &#8212; <span class="refentry-description">To get the lower bounds of the constraints.</span></li>
+
+
+
+<li><a href="sym_getConstrRange.html" class="refentry">sym_getConstrRange</a> &#8212; <span class="refentry-description">To to get the constraint ranges.</span></li>
+
+
+
+<li><a href="sym_getConstrSense.html" class="refentry">sym_getConstrSense</a> &#8212; <span class="refentry-description">To get the row senses.</span></li>
+
+
+
+<li><a href="sym_getConstrUpper.html" class="refentry">sym_getConstrUpper</a> &#8212; <span class="refentry-description">To get the upper bounds of the constraints.</span></li>
+
+
+
+<li><a href="sym_getDblParam.html" class="refentry">sym_getDblParam</a> &#8212; <span class="refentry-description">This routine is used to get the value of a double type parameter.</span></li>
+
+
+
+<li><a href="sym_getInfinity.html" class="refentry">sym_getInfinity</a> &#8212; <span class="refentry-description">Get Symphony&#0039;s infinity value</span></li>
+
+
+
+<li><a href="sym_getIntParam.html" class="refentry">sym_getIntParam</a> &#8212; <span class="refentry-description">This routine is used to get the value of an integer type parameter.</span></li>
+
+
+
+<li><a href="sym_getIterCount.html" class="refentry">sym_getIterCount</a> &#8212; <span class="refentry-description">To get the number of the analyzed nodes of the branching tree after solving the problem.</span></li>
+
+
+
+<li><a href="sym_getMatrix.html" class="refentry">sym_getMatrix</a> &#8212; <span class="refentry-description">To get the constraint matrix.</span></li>
+
+
+
+<li><a href="sym_getNumConstr.html" class="refentry">sym_getNumConstr</a> &#8212; <span class="refentry-description">To get the number of the constraints of the current problem.</span></li>
+
+
+
+<li><a href="sym_getNumElements.html" class="refentry">sym_getNumElements</a> &#8212; <span class="refentry-description">To get the number of non-zero entries of the constraint matrix of the current problem.</span></li>
+
+
+
+<li><a href="sym_getNumVar.html" class="refentry">sym_getNumVar</a> &#8212; <span class="refentry-description">To get the number of the variables of the current problem.</span></li>
+
+
+
+<li><a href="sym_getObjCoeff.html" class="refentry">sym_getObjCoeff</a> &#8212; <span class="refentry-description">To get the objective vector.</span></li>
+
+
+
+<li><a href="sym_getObjSense.html" class="refentry">sym_getObjSense</a> &#8212; <span class="refentry-description">Get the objective sense</span></li>
+
+
+
+<li><a href="sym_getObjVal.html" class="refentry">sym_getObjVal</a> &#8212; <span class="refentry-description">Get the optimized objective value</span></li>
+
+
+
+<li><a href="sym_getPrimalBound.html" class="refentry">sym_getPrimalBound</a> &#8212; <span class="refentry-description">Get the primal bound of the problem</span></li>
+
+
+
+<li><a href="sym_getRhs.html" class="refentry">sym_getRhs</a> &#8212; <span class="refentry-description">To to get the right hand side vector(column vector).</span></li>
+
+
+
+<li><a href="sym_getStatus.html" class="refentry">sym_getStatus</a> &#8212; <span class="refentry-description">To get status of the problem solver.</span></li>
+
+
+
+<li><a href="sym_getStrParam.html" class="refentry">sym_getStrParam</a> &#8212; <span class="refentry-description">This routine is used to get the value of a string type parameter.</span></li>
+
+
+
+<li><a href="sym_getVarLower.html" class="refentry">sym_getVarLower</a> &#8212; <span class="refentry-description">To get the lower bounds of the variables.</span></li>
+
+
+
+<li><a href="sym_getVarSoln.html" class="refentry">sym_getVarSoln</a> &#8212; <span class="refentry-description">Get the solution for the problem</span></li>
+
+
+
+<li><a href="sym_getVarUpper.html" class="refentry">sym_getVarUpper</a> &#8212; <span class="refentry-description">To get the upper bounds of the variables.</span></li>
+
+
+
+<li><a href="sym_isAbandoned.html" class="refentry">sym_isAbandoned</a> &#8212; <span class="refentry-description">To check whether the problem was abandoned for some reason.</span></li>
+
+
+
+<li><a href="sym_isBinary.html" class="refentry">sym_isBinary</a> &#8212; <span class="refentry-description">Check if a variable is constrained to be binary</span></li>
+
+
+
+<li><a href="sym_isContinuous.html" class="refentry">sym_isContinuous</a> &#8212; <span class="refentry-description">Check if a variable is continuous</span></li>
+
+
+
+<li><a href="sym_isEnvActive.html" class="refentry">sym_isEnvActive</a> &#8212; <span class="refentry-description">Check if Symphony environment is active</span></li>
+
+
+
+<li><a href="sym_isInfeasible.html" class="refentry">sym_isInfeasible</a> &#8212; <span class="refentry-description">To check whether the problem was proven to be infeasible.</span></li>
+
+
+
+<li><a href="sym_isInteger.html" class="refentry">sym_isInteger</a> &#8212; <span class="refentry-description">Check if a variable is constrained to be an integer</span></li>
+
+
+
+<li><a href="sym_isIterLimitReached.html" class="refentry">sym_isIterLimitReached</a> &#8212; <span class="refentry-description">To know whether the iteration limit (node limit) was reached.</span></li>
+
+
+
+<li><a href="sym_isOptimal.html" class="refentry">sym_isOptimal</a> &#8212; <span class="refentry-description">To check whether the problem was solved to optimality.</span></li>
+
+
+
+<li><a href="sym_isTargetGapAchieved.html" class="refentry">sym_isTargetGapAchieved</a> &#8212; <span class="refentry-description">To know whether the target gap was reached.</span></li>
+
+
+
+<li><a href="sym_isTimeLimitReached.html" class="refentry">sym_isTimeLimitReached</a> &#8212; <span class="refentry-description">To know whether the time limit was reached.</span></li>
+
+
+
+<li><a href="sym_loadMPS.html" class="refentry">sym_loadMPS</a> &#8212; <span class="refentry-description">This routine is used to load an instance from an MPS file.</span></li>
+
+
+
+<li><a href="sym_loadProblem.html" class="refentry">sym_loadProblem</a> &#8212; <span class="refentry-description">Load a problem into Symphony</span></li>
+
+
+
+<li><a href="sym_loadProblemBasic.html" class="refentry">sym_loadProblemBasic</a> &#8212; <span class="refentry-description">Load a problem into Symphony (basic version)</span></li>
+
+
+
+<li><a href="sym_open.html" class="refentry">sym_open</a> &#8212; <span class="refentry-description">Open the Symphony environment</span></li>
+
+
+
+<li><a href="sym_resetParams.html" class="refentry">sym_resetParams</a> &#8212; <span class="refentry-description">This routine sets all the environment variables and parameters to their default values.</span></li>
+
+
+
+<li><a href="sym_setConstrLower.html" class="refentry">sym_setConstrLower</a> &#8212; <span class="refentry-description">Set the lower bound of a constraint</span></li>
+
+
+
+<li><a href="sym_setConstrType.html" class="refentry">sym_setConstrType</a> &#8212; <span class="refentry-description">Set the type of a constraint</span></li>
+
+
+
+<li><a href="sym_setConstrUpper.html" class="refentry">sym_setConstrUpper</a> &#8212; <span class="refentry-description">Set the upper bound of a constraint</span></li>
+
+
+
+<li><a href="sym_setContinuous.html" class="refentry">sym_setContinuous</a> &#8212; <span class="refentry-description">This routine is used to set the type of a variable to be continuous.</span></li>
+
+
+
+<li><a href="sym_setDblParam.html" class="refentry">sym_setDblParam</a> &#8212; <span class="refentry-description">This routine is used to set a double type parameter.</span></li>
+
+
+
+<li><a href="sym_setIntParam.html" class="refentry">sym_setIntParam</a> &#8212; <span class="refentry-description">This routine is used to set an integer type parameter.</span></li>
+
+
+
+<li><a href="sym_setInteger.html" class="refentry">sym_setInteger</a> &#8212; <span class="refentry-description">This routine is used to set the type of a variable to be integer.</span></li>
+
+
+
+<li><a href="sym_setObjCoeff.html" class="refentry">sym_setObjCoeff</a> &#8212; <span class="refentry-description">Set coefficient of a variable in the objective</span></li>
+
+
+
+<li><a href="sym_setObjSense.html" class="refentry">sym_setObjSense</a> &#8212; <span class="refentry-description">Set the objective sense</span></li>
+
+
+
+<li><a href="sym_setPrimalBound.html" class="refentry">sym_setPrimalBound</a> &#8212; <span class="refentry-description">Set the primal bound of the problem</span></li>
+
+
+
+<li><a href="sym_setStrParam.html" class="refentry">sym_setStrParam</a> &#8212; <span class="refentry-description">This routine is used to set a string type parameter.</span></li>
+
+
+
+<li><a href="sym_setVarLower.html" class="refentry">sym_setVarLower</a> &#8212; <span class="refentry-description">Set lower bound of a variable</span></li>
+
+
+
+<li><a href="sym_setVarSoln.html" class="refentry">sym_setVarSoln</a> &#8212; <span class="refentry-description">Set a solution for the problem</span></li>
+
+
+
+<li><a href="sym_setVarUpper.html" class="refentry">sym_setVarUpper</a> &#8212; <span class="refentry-description">Set upper bound of a variable</span></li>
+
+
+
+<li><a href="sym_solve.html" class="refentry">sym_solve</a> &#8212; <span class="refentry-description">To solve the currently loaded MILP problem from scratch.</span></li></ul></li></ul>
+ <br />
+
+ <div class="manualnavbar">
+ <table width="100%">
+ <tr><td colspan="3" class="next"><a href="http://bugzilla.scilab.org/enter_bug.cgi?product=Scilab%20software&component=Documentation%20pages" class="ulink">Report an issue</a></td></tr>
+<tr>
+ <td width="30%">
+
+ </td>
+ <td width="40%" class="center">
+ <span class="top"><a href="index.html">FOSSEE Optimization Toolbox</a></span>
+
+ </td>
+ <td width="30%" class="next">
+
+ </td>
+ </tr></table>
+ <hr />
+ </div>
+ </body>
+</html>
diff --git a/help/en_US/scilab_en_US_help/section_c78c9c5b46dbea583df3c010a77e5758.html b/help/en_US/scilab_en_US_help/section_c78c9c5b46dbea583df3c010a77e5758.html
new file mode 100644
index 0000000..c083a52
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/section_c78c9c5b46dbea583df3c010a77e5758.html
@@ -0,0 +1,285 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <title></title>
+ <style type="text/css" media="all">
+ @import url("scilab_code.css");
+ @import url("xml_code.css");
+ @import url("c_code.css");
+ @import url("style.css");
+ </style>
+ </head>
+ <body>
+ <div class="manualnavbar">
+ <table width="100%"><tr>
+ <td width="30%">
+ <span class="previous"><a href="symphonymat.html">&lt;&lt; symphonymat</a></span>
+
+ </td>
+ <td width="40%" class="center">
+ <span class="top"><a href="section_2122a46e06605359e022857633f38a15.html">FOSSEE Optimization Toolbox</a></span>
+
+ </td>
+ <td width="30%" class="next">
+
+ </td>
+ </tr></table>
+ <hr />
+ </div>
+
+
+
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_2122a46e06605359e022857633f38a15.html">FOSSEE Optimization Toolbox</a> &gt; Symphony Native Functions</span>
+
+ <br /><br />
+ <h3 class="title-chapter">Symphony Native Functions</h3>
+<ul class="list-refentry"><li><a href="sym_addConstr.html" class="refentry">sym_addConstr</a> &#8212; <span class="refentry-description">Add a new constraint</span></li>
+
+
+
+<li><a href="sym_addVar.html" class="refentry">sym_addVar</a> &#8212; <span class="refentry-description">Add a new variable</span></li>
+
+
+
+<li><a href="sym_close.html" class="refentry">sym_close</a> &#8212; <span class="refentry-description">Close the Symphony environment</span></li>
+
+
+
+<li><a href="sym_deleteConstrs.html" class="refentry">sym_deleteConstrs</a> &#8212; <span class="refentry-description">This routine is used to delete rows from the original constraint matrix.</span></li>
+
+
+
+<li><a href="sym_deleteVars.html" class="refentry">sym_deleteVars</a> &#8212; <span class="refentry-description">This routine is used to delete columns from the original problem description.</span></li>
+
+
+
+<li><a href="sym_getConstrActivity.html" class="refentry">sym_getConstrActivity</a> &#8212; <span class="refentry-description">Get the activity of the constraints in the solution</span></li>
+
+
+
+<li><a href="sym_getConstrLower.html" class="refentry">sym_getConstrLower</a> &#8212; <span class="refentry-description">To get the lower bounds of the constraints.</span></li>
+
+
+
+<li><a href="sym_getConstrRange.html" class="refentry">sym_getConstrRange</a> &#8212; <span class="refentry-description">To to get the constraint ranges.</span></li>
+
+
+
+<li><a href="sym_getConstrSense.html" class="refentry">sym_getConstrSense</a> &#8212; <span class="refentry-description">To get the row senses.</span></li>
+
+
+
+<li><a href="sym_getConstrUpper.html" class="refentry">sym_getConstrUpper</a> &#8212; <span class="refentry-description">To get the upper bounds of the constraints.</span></li>
+
+
+
+<li><a href="sym_getDblParam.html" class="refentry">sym_getDblParam</a> &#8212; <span class="refentry-description">This routine is used to get the value of a double type parameter.</span></li>
+
+
+
+<li><a href="sym_getInfinity.html" class="refentry">sym_getInfinity</a> &#8212; <span class="refentry-description">Get Symphony&#0039;s infinity value</span></li>
+
+
+
+<li><a href="sym_getIntParam.html" class="refentry">sym_getIntParam</a> &#8212; <span class="refentry-description">This routine is used to get the value of an integer type parameter.</span></li>
+
+
+
+<li><a href="sym_getIterCount.html" class="refentry">sym_getIterCount</a> &#8212; <span class="refentry-description">To get the number of the analyzed nodes of the branching tree after solving the problem.</span></li>
+
+
+
+<li><a href="sym_getMatrix.html" class="refentry">sym_getMatrix</a> &#8212; <span class="refentry-description">To get the constraint matrix.</span></li>
+
+
+
+<li><a href="sym_getNumConstr.html" class="refentry">sym_getNumConstr</a> &#8212; <span class="refentry-description">To get the number of the constraints of the current problem.</span></li>
+
+
+
+<li><a href="sym_getNumElements.html" class="refentry">sym_getNumElements</a> &#8212; <span class="refentry-description">To get the number of non-zero entries of the constraint matrix of the current problem.</span></li>
+
+
+
+<li><a href="sym_getNumVar.html" class="refentry">sym_getNumVar</a> &#8212; <span class="refentry-description">To get the number of the variables of the current problem.</span></li>
+
+
+
+<li><a href="sym_getObjCoeff.html" class="refentry">sym_getObjCoeff</a> &#8212; <span class="refentry-description">To get the objective vector.</span></li>
+
+
+
+<li><a href="sym_getObjSense.html" class="refentry">sym_getObjSense</a> &#8212; <span class="refentry-description">Get the objective sense</span></li>
+
+
+
+<li><a href="sym_getObjVal.html" class="refentry">sym_getObjVal</a> &#8212; <span class="refentry-description">Get the optimized objective value</span></li>
+
+
+
+<li><a href="sym_getPrimalBound.html" class="refentry">sym_getPrimalBound</a> &#8212; <span class="refentry-description">Get the primal bound of the problem</span></li>
+
+
+
+<li><a href="sym_getRhs.html" class="refentry">sym_getRhs</a> &#8212; <span class="refentry-description">To to get the right hand side vector(column vector).</span></li>
+
+
+
+<li><a href="sym_getStatus.html" class="refentry">sym_getStatus</a> &#8212; <span class="refentry-description">To get status of the problem solver.</span></li>
+
+
+
+<li><a href="sym_getStrParam.html" class="refentry">sym_getStrParam</a> &#8212; <span class="refentry-description">This routine is used to get the value of a string type parameter.</span></li>
+
+
+
+<li><a href="sym_getVarLower.html" class="refentry">sym_getVarLower</a> &#8212; <span class="refentry-description">To get the lower bounds of the variables.</span></li>
+
+
+
+<li><a href="sym_getVarSoln.html" class="refentry">sym_getVarSoln</a> &#8212; <span class="refentry-description">Get the solution for the problem</span></li>
+
+
+
+<li><a href="sym_getVarUpper.html" class="refentry">sym_getVarUpper</a> &#8212; <span class="refentry-description">To get the upper bounds of the variables.</span></li>
+
+
+
+<li><a href="sym_isAbandoned.html" class="refentry">sym_isAbandoned</a> &#8212; <span class="refentry-description">To check whether the problem was abandoned for some reason.</span></li>
+
+
+
+<li><a href="sym_isBinary.html" class="refentry">sym_isBinary</a> &#8212; <span class="refentry-description">Check if a variable is constrained to be binary</span></li>
+
+
+
+<li><a href="sym_isContinuous.html" class="refentry">sym_isContinuous</a> &#8212; <span class="refentry-description">Check if a variable is continuous</span></li>
+
+
+
+<li><a href="sym_isEnvActive.html" class="refentry">sym_isEnvActive</a> &#8212; <span class="refentry-description">Check if Symphony environment is active</span></li>
+
+
+
+<li><a href="sym_isInfeasible.html" class="refentry">sym_isInfeasible</a> &#8212; <span class="refentry-description">To check whether the problem was proven to be infeasible.</span></li>
+
+
+
+<li><a href="sym_isInteger.html" class="refentry">sym_isInteger</a> &#8212; <span class="refentry-description">Check if a variable is constrained to be an integer</span></li>
+
+
+
+<li><a href="sym_isIterLimitReached.html" class="refentry">sym_isIterLimitReached</a> &#8212; <span class="refentry-description">To know whether the iteration limit (node limit) was reached.</span></li>
+
+
+
+<li><a href="sym_isOptimal.html" class="refentry">sym_isOptimal</a> &#8212; <span class="refentry-description">To check whether the problem was solved to optimality.</span></li>
+
+
+
+<li><a href="sym_isTargetGapAchieved.html" class="refentry">sym_isTargetGapAchieved</a> &#8212; <span class="refentry-description">To know whether the target gap was reached.</span></li>
+
+
+
+<li><a href="sym_isTimeLimitReached.html" class="refentry">sym_isTimeLimitReached</a> &#8212; <span class="refentry-description">To know whether the time limit was reached.</span></li>
+
+
+
+<li><a href="sym_loadMPS.html" class="refentry">sym_loadMPS</a> &#8212; <span class="refentry-description">This routine is used to load an instance from an MPS file.</span></li>
+
+
+
+<li><a href="sym_loadProblem.html" class="refentry">sym_loadProblem</a> &#8212; <span class="refentry-description">Load a problem into Symphony</span></li>
+
+
+
+<li><a href="sym_loadProblemBasic.html" class="refentry">sym_loadProblemBasic</a> &#8212; <span class="refentry-description">Load a problem into Symphony (basic version)</span></li>
+
+
+
+<li><a href="sym_open.html" class="refentry">sym_open</a> &#8212; <span class="refentry-description">Open the Symphony environment</span></li>
+
+
+
+<li><a href="sym_resetParams.html" class="refentry">sym_resetParams</a> &#8212; <span class="refentry-description">This routine sets all the environment variables and parameters to their default values.</span></li>
+
+
+
+<li><a href="sym_setConstrLower.html" class="refentry">sym_setConstrLower</a> &#8212; <span class="refentry-description">Set the lower bound of a constraint</span></li>
+
+
+
+<li><a href="sym_setConstrType.html" class="refentry">sym_setConstrType</a> &#8212; <span class="refentry-description">Set the type of a constraint</span></li>
+
+
+
+<li><a href="sym_setConstrUpper.html" class="refentry">sym_setConstrUpper</a> &#8212; <span class="refentry-description">Set the upper bound of a constraint</span></li>
+
+
+
+<li><a href="sym_setContinuous.html" class="refentry">sym_setContinuous</a> &#8212; <span class="refentry-description">This routine is used to set the type of a variable to be continuous.</span></li>
+
+
+
+<li><a href="sym_setDblParam.html" class="refentry">sym_setDblParam</a> &#8212; <span class="refentry-description">This routine is used to set a double type parameter.</span></li>
+
+
+
+<li><a href="sym_setIntParam.html" class="refentry">sym_setIntParam</a> &#8212; <span class="refentry-description">This routine is used to set an integer type parameter.</span></li>
+
+
+
+<li><a href="sym_setInteger.html" class="refentry">sym_setInteger</a> &#8212; <span class="refentry-description">This routine is used to set the type of a variable to be integer.</span></li>
+
+
+
+<li><a href="sym_setObjCoeff.html" class="refentry">sym_setObjCoeff</a> &#8212; <span class="refentry-description">Set coefficient of a variable in the objective</span></li>
+
+
+
+<li><a href="sym_setObjSense.html" class="refentry">sym_setObjSense</a> &#8212; <span class="refentry-description">Set the objective sense</span></li>
+
+
+
+<li><a href="sym_setPrimalBound.html" class="refentry">sym_setPrimalBound</a> &#8212; <span class="refentry-description">Set the primal bound of the problem</span></li>
+
+
+
+<li><a href="sym_setStrParam.html" class="refentry">sym_setStrParam</a> &#8212; <span class="refentry-description">This routine is used to set a string type parameter.</span></li>
+
+
+
+<li><a href="sym_setVarLower.html" class="refentry">sym_setVarLower</a> &#8212; <span class="refentry-description">Set lower bound of a variable</span></li>
+
+
+
+<li><a href="sym_setVarSoln.html" class="refentry">sym_setVarSoln</a> &#8212; <span class="refentry-description">Set a solution for the problem</span></li>
+
+
+
+<li><a href="sym_setVarUpper.html" class="refentry">sym_setVarUpper</a> &#8212; <span class="refentry-description">Set upper bound of a variable</span></li>
+
+
+
+<li><a href="sym_solve.html" class="refentry">sym_solve</a> &#8212; <span class="refentry-description">To solve the currently loaded MILP problem from scratch.</span></li></ul>
+ <br />
+
+ <div class="manualnavbar">
+ <table width="100%">
+ <tr><td colspan="3" class="next"><a href="http://bugzilla.scilab.org/enter_bug.cgi?product=Scilab%20software&component=Documentation%20pages" class="ulink">Report an issue</a></td></tr>
+<tr>
+ <td width="30%">
+ <span class="previous"><a href="symphonymat.html">&lt;&lt; symphonymat</a></span>
+
+ </td>
+ <td width="40%" class="center">
+ <span class="top"><a href="section_2122a46e06605359e022857633f38a15.html">FOSSEE Optimization Toolbox</a></span>
+
+ </td>
+ <td width="30%" class="next">
+
+ </td>
+ </tr></table>
+ <hr />
+ </div>
+ </body>
+</html>
diff --git a/help/en_US/scilab_en_US_help/sym_addConstr.html b/help/en_US/scilab_en_US_help/sym_addConstr.html
index ca681d5..a210836 100644
--- a/help/en_US/scilab_en_US_help/sym_addConstr.html
+++ b/help/en_US/scilab_en_US_help/sym_addConstr.html
@@ -12,11 +12,11 @@
<div class="manualnavbar">
<table width="100%"><tr>
<td width="30%">
- <span class="previous"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">&lt;&lt; Symphony Native Functions</a></span>
+ <span class="previous"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">&lt;&lt; Symphony Native Functions</a></span>
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a> &gt; sym_addConstr</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a> &gt; sym_addConstr</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">sym_addConstr</h1>
@@ -73,11 +73,11 @@
<tr><td colspan="3" class="next"><a href="http://bugzilla.scilab.org/enter_bug.cgi?product=Scilab%20software&component=Documentation%20pages" class="ulink">Report an issue</a></td></tr>
<tr>
<td width="30%">
- <span class="previous"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">&lt;&lt; Symphony Native Functions</a></span>
+ <span class="previous"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">&lt;&lt; Symphony Native Functions</a></span>
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/sym_addVar.html b/help/en_US/scilab_en_US_help/sym_addVar.html
index f74db8c..9d91854 100644
--- a/help/en_US/scilab_en_US_help/sym_addVar.html
+++ b/help/en_US/scilab_en_US_help/sym_addVar.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a> &gt; sym_addVar</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a> &gt; sym_addVar</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">sym_addVar</h1>
@@ -79,7 +79,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/sym_close.html b/help/en_US/scilab_en_US_help/sym_close.html
index c21dc6e..1da5faa 100644
--- a/help/en_US/scilab_en_US_help/sym_close.html
+++ b/help/en_US/scilab_en_US_help/sym_close.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a> &gt; sym_close</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a> &gt; sym_close</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">sym_close</h1>
@@ -70,7 +70,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/sym_deleteConstrs.html b/help/en_US/scilab_en_US_help/sym_deleteConstrs.html
index 88a7b3d..fb040e6 100644
--- a/help/en_US/scilab_en_US_help/sym_deleteConstrs.html
+++ b/help/en_US/scilab_en_US_help/sym_deleteConstrs.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a> &gt; sym_deleteConstrs</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a> &gt; sym_deleteConstrs</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">sym_deleteConstrs</h1>
@@ -67,7 +67,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/sym_deleteVars.html b/help/en_US/scilab_en_US_help/sym_deleteVars.html
index 77aaad6..e6317a6 100644
--- a/help/en_US/scilab_en_US_help/sym_deleteVars.html
+++ b/help/en_US/scilab_en_US_help/sym_deleteVars.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a> &gt; sym_deleteVars</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a> &gt; sym_deleteVars</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">sym_deleteVars</h1>
@@ -67,7 +67,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/sym_getConstrActivity.html b/help/en_US/scilab_en_US_help/sym_getConstrActivity.html
index cb1cb1c..56e4575 100644
--- a/help/en_US/scilab_en_US_help/sym_getConstrActivity.html
+++ b/help/en_US/scilab_en_US_help/sym_getConstrActivity.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a> &gt; sym_getConstrActivity</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a> &gt; sym_getConstrActivity</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">sym_getConstrActivity</h1>
@@ -69,7 +69,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/sym_getConstrLower.html b/help/en_US/scilab_en_US_help/sym_getConstrLower.html
index 929471f..a52f308 100644
--- a/help/en_US/scilab_en_US_help/sym_getConstrLower.html
+++ b/help/en_US/scilab_en_US_help/sym_getConstrLower.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a> &gt; sym_getConstrLower</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a> &gt; sym_getConstrLower</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">sym_getConstrLower</h1>
@@ -69,7 +69,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/sym_getConstrRange.html b/help/en_US/scilab_en_US_help/sym_getConstrRange.html
index 971a9d2..e8a3b61 100644
--- a/help/en_US/scilab_en_US_help/sym_getConstrRange.html
+++ b/help/en_US/scilab_en_US_help/sym_getConstrRange.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a> &gt; sym_getConstrRange</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a> &gt; sym_getConstrRange</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">sym_getConstrRange</h1>
@@ -69,7 +69,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/sym_getConstrSense.html b/help/en_US/scilab_en_US_help/sym_getConstrSense.html
index 0f49a90..8d01b48 100644
--- a/help/en_US/scilab_en_US_help/sym_getConstrSense.html
+++ b/help/en_US/scilab_en_US_help/sym_getConstrSense.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a> &gt; sym_getConstrSense</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a> &gt; sym_getConstrSense</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">sym_getConstrSense</h1>
@@ -69,7 +69,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/sym_getConstrUpper.html b/help/en_US/scilab_en_US_help/sym_getConstrUpper.html
index f40b107..2acc1f0 100644
--- a/help/en_US/scilab_en_US_help/sym_getConstrUpper.html
+++ b/help/en_US/scilab_en_US_help/sym_getConstrUpper.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a> &gt; sym_getConstrUpper</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a> &gt; sym_getConstrUpper</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">sym_getConstrUpper</h1>
@@ -69,7 +69,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/sym_getDblParam.html b/help/en_US/scilab_en_US_help/sym_getDblParam.html
index 3e2d38b..449e918 100644
--- a/help/en_US/scilab_en_US_help/sym_getDblParam.html
+++ b/help/en_US/scilab_en_US_help/sym_getDblParam.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a> &gt; sym_getDblParam</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a> &gt; sym_getDblParam</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">sym_getDblParam</h1>
@@ -67,7 +67,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/sym_getInfinity.html b/help/en_US/scilab_en_US_help/sym_getInfinity.html
index bef10ab..2522ea5 100644
--- a/help/en_US/scilab_en_US_help/sym_getInfinity.html
+++ b/help/en_US/scilab_en_US_help/sym_getInfinity.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a> &gt; sym_getInfinity</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a> &gt; sym_getInfinity</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">sym_getInfinity</h1>
@@ -68,7 +68,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/sym_getIntParam.html b/help/en_US/scilab_en_US_help/sym_getIntParam.html
index 4fed98a..dbac8e6 100644
--- a/help/en_US/scilab_en_US_help/sym_getIntParam.html
+++ b/help/en_US/scilab_en_US_help/sym_getIntParam.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a> &gt; sym_getIntParam</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a> &gt; sym_getIntParam</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">sym_getIntParam</h1>
@@ -67,7 +67,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/sym_getIterCount.html b/help/en_US/scilab_en_US_help/sym_getIterCount.html
index 9b2775d..dd277d2 100644
--- a/help/en_US/scilab_en_US_help/sym_getIterCount.html
+++ b/help/en_US/scilab_en_US_help/sym_getIterCount.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a> &gt; sym_getIterCount</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a> &gt; sym_getIterCount</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">sym_getIterCount</h1>
@@ -69,7 +69,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/sym_getMatrix.html b/help/en_US/scilab_en_US_help/sym_getMatrix.html
index 60a81e1..c61aae2 100644
--- a/help/en_US/scilab_en_US_help/sym_getMatrix.html
+++ b/help/en_US/scilab_en_US_help/sym_getMatrix.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a> &gt; sym_getMatrix</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a> &gt; sym_getMatrix</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">sym_getMatrix</h1>
@@ -69,7 +69,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/sym_getNumConstr.html b/help/en_US/scilab_en_US_help/sym_getNumConstr.html
index 55187b3..8954e19 100644
--- a/help/en_US/scilab_en_US_help/sym_getNumConstr.html
+++ b/help/en_US/scilab_en_US_help/sym_getNumConstr.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a> &gt; sym_getNumConstr</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a> &gt; sym_getNumConstr</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">sym_getNumConstr</h1>
@@ -68,7 +68,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/sym_getNumElements.html b/help/en_US/scilab_en_US_help/sym_getNumElements.html
index 5d3d4a2..07cddc7 100644
--- a/help/en_US/scilab_en_US_help/sym_getNumElements.html
+++ b/help/en_US/scilab_en_US_help/sym_getNumElements.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a> &gt; sym_getNumElements</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a> &gt; sym_getNumElements</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">sym_getNumElements</h1>
@@ -68,7 +68,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/sym_getNumVar.html b/help/en_US/scilab_en_US_help/sym_getNumVar.html
index 8c4d1b7..7043edb 100644
--- a/help/en_US/scilab_en_US_help/sym_getNumVar.html
+++ b/help/en_US/scilab_en_US_help/sym_getNumVar.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a> &gt; sym_getNumVar</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a> &gt; sym_getNumVar</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">sym_getNumVar</h1>
@@ -68,7 +68,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/sym_getObjCoeff.html b/help/en_US/scilab_en_US_help/sym_getObjCoeff.html
index 61d0a50..8b196c1 100644
--- a/help/en_US/scilab_en_US_help/sym_getObjCoeff.html
+++ b/help/en_US/scilab_en_US_help/sym_getObjCoeff.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a> &gt; sym_getObjCoeff</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a> &gt; sym_getObjCoeff</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">sym_getObjCoeff</h1>
@@ -69,7 +69,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/sym_getObjSense.html b/help/en_US/scilab_en_US_help/sym_getObjSense.html
index 9d238be..0442b7a 100644
--- a/help/en_US/scilab_en_US_help/sym_getObjSense.html
+++ b/help/en_US/scilab_en_US_help/sym_getObjSense.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a> &gt; sym_getObjSense</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a> &gt; sym_getObjSense</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">sym_getObjSense</h1>
@@ -68,7 +68,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/sym_getObjVal.html b/help/en_US/scilab_en_US_help/sym_getObjVal.html
index f2c42e7..4d1d2d1 100644
--- a/help/en_US/scilab_en_US_help/sym_getObjVal.html
+++ b/help/en_US/scilab_en_US_help/sym_getObjVal.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a> &gt; sym_getObjVal</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a> &gt; sym_getObjVal</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">sym_getObjVal</h1>
@@ -69,7 +69,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/sym_getPrimalBound.html b/help/en_US/scilab_en_US_help/sym_getPrimalBound.html
index 20b8703..dca728e 100644
--- a/help/en_US/scilab_en_US_help/sym_getPrimalBound.html
+++ b/help/en_US/scilab_en_US_help/sym_getPrimalBound.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a> &gt; sym_getPrimalBound</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a> &gt; sym_getPrimalBound</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">sym_getPrimalBound</h1>
@@ -68,7 +68,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/sym_getRhs.html b/help/en_US/scilab_en_US_help/sym_getRhs.html
index e0a856b..6fce5ca 100644
--- a/help/en_US/scilab_en_US_help/sym_getRhs.html
+++ b/help/en_US/scilab_en_US_help/sym_getRhs.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a> &gt; sym_getRhs</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a> &gt; sym_getRhs</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">sym_getRhs</h1>
@@ -69,7 +69,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/sym_getStatus.html b/help/en_US/scilab_en_US_help/sym_getStatus.html
index c86bef7..1aada99 100644
--- a/help/en_US/scilab_en_US_help/sym_getStatus.html
+++ b/help/en_US/scilab_en_US_help/sym_getStatus.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a> &gt; sym_getStatus</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a> &gt; sym_getStatus</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">sym_getStatus</h1>
@@ -69,7 +69,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/sym_getStrParam.html b/help/en_US/scilab_en_US_help/sym_getStrParam.html
index 1d1c6f8..79280ce 100644
--- a/help/en_US/scilab_en_US_help/sym_getStrParam.html
+++ b/help/en_US/scilab_en_US_help/sym_getStrParam.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a> &gt; sym_getStrParam</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a> &gt; sym_getStrParam</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">sym_getStrParam</h1>
@@ -67,7 +67,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/sym_getVarLower.html b/help/en_US/scilab_en_US_help/sym_getVarLower.html
index 1027813..292180b 100644
--- a/help/en_US/scilab_en_US_help/sym_getVarLower.html
+++ b/help/en_US/scilab_en_US_help/sym_getVarLower.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a> &gt; sym_getVarLower</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a> &gt; sym_getVarLower</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">sym_getVarLower</h1>
@@ -69,7 +69,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/sym_getVarSoln.html b/help/en_US/scilab_en_US_help/sym_getVarSoln.html
index e11f68e..2fb84c7 100644
--- a/help/en_US/scilab_en_US_help/sym_getVarSoln.html
+++ b/help/en_US/scilab_en_US_help/sym_getVarSoln.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a> &gt; sym_getVarSoln</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a> &gt; sym_getVarSoln</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">sym_getVarSoln</h1>
@@ -69,7 +69,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/sym_getVarUpper.html b/help/en_US/scilab_en_US_help/sym_getVarUpper.html
index 9125c66..89e2d82 100644
--- a/help/en_US/scilab_en_US_help/sym_getVarUpper.html
+++ b/help/en_US/scilab_en_US_help/sym_getVarUpper.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a> &gt; sym_getVarUpper</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a> &gt; sym_getVarUpper</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">sym_getVarUpper</h1>
@@ -69,7 +69,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/sym_isAbandoned.html b/help/en_US/scilab_en_US_help/sym_isAbandoned.html
index fa75c3e..699cdea 100644
--- a/help/en_US/scilab_en_US_help/sym_isAbandoned.html
+++ b/help/en_US/scilab_en_US_help/sym_isAbandoned.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a> &gt; sym_isAbandoned</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a> &gt; sym_isAbandoned</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">sym_isAbandoned</h1>
@@ -69,7 +69,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/sym_isBinary.html b/help/en_US/scilab_en_US_help/sym_isBinary.html
index 946ec7e..4dad739 100644
--- a/help/en_US/scilab_en_US_help/sym_isBinary.html
+++ b/help/en_US/scilab_en_US_help/sym_isBinary.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a> &gt; sym_isBinary</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a> &gt; sym_isBinary</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">sym_isBinary</h1>
@@ -69,7 +69,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/sym_isContinuous.html b/help/en_US/scilab_en_US_help/sym_isContinuous.html
index 1ba5429..5a5bfa9 100644
--- a/help/en_US/scilab_en_US_help/sym_isContinuous.html
+++ b/help/en_US/scilab_en_US_help/sym_isContinuous.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a> &gt; sym_isContinuous</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a> &gt; sym_isContinuous</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">sym_isContinuous</h1>
@@ -69,7 +69,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/sym_isEnvActive.html b/help/en_US/scilab_en_US_help/sym_isEnvActive.html
index e80859d..9a05f88 100644
--- a/help/en_US/scilab_en_US_help/sym_isEnvActive.html
+++ b/help/en_US/scilab_en_US_help/sym_isEnvActive.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a> &gt; sym_isEnvActive</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a> &gt; sym_isEnvActive</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">sym_isEnvActive</h1>
@@ -68,7 +68,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/sym_isInfeasible.html b/help/en_US/scilab_en_US_help/sym_isInfeasible.html
index f657cca..14f4a7c 100644
--- a/help/en_US/scilab_en_US_help/sym_isInfeasible.html
+++ b/help/en_US/scilab_en_US_help/sym_isInfeasible.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a> &gt; sym_isInfeasible</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a> &gt; sym_isInfeasible</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">sym_isInfeasible</h1>
@@ -69,7 +69,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/sym_isInteger.html b/help/en_US/scilab_en_US_help/sym_isInteger.html
index 31c9707..5552613 100644
--- a/help/en_US/scilab_en_US_help/sym_isInteger.html
+++ b/help/en_US/scilab_en_US_help/sym_isInteger.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a> &gt; sym_isInteger</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a> &gt; sym_isInteger</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">sym_isInteger</h1>
@@ -63,7 +63,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/sym_isIterLimitReached.html b/help/en_US/scilab_en_US_help/sym_isIterLimitReached.html
index d10bf5b..6796407 100644
--- a/help/en_US/scilab_en_US_help/sym_isIterLimitReached.html
+++ b/help/en_US/scilab_en_US_help/sym_isIterLimitReached.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a> &gt; sym_isIterLimitReached</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a> &gt; sym_isIterLimitReached</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">sym_isIterLimitReached</h1>
@@ -70,7 +70,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/sym_isOptimal.html b/help/en_US/scilab_en_US_help/sym_isOptimal.html
index 9db45b0..cefc563 100644
--- a/help/en_US/scilab_en_US_help/sym_isOptimal.html
+++ b/help/en_US/scilab_en_US_help/sym_isOptimal.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a> &gt; sym_isOptimal</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a> &gt; sym_isOptimal</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">sym_isOptimal</h1>
@@ -70,7 +70,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/sym_isTargetGapAchieved.html b/help/en_US/scilab_en_US_help/sym_isTargetGapAchieved.html
index 1f24750..8f00f6b 100644
--- a/help/en_US/scilab_en_US_help/sym_isTargetGapAchieved.html
+++ b/help/en_US/scilab_en_US_help/sym_isTargetGapAchieved.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a> &gt; sym_isTargetGapAchieved</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a> &gt; sym_isTargetGapAchieved</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">sym_isTargetGapAchieved</h1>
@@ -69,7 +69,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/sym_isTimeLimitReached.html b/help/en_US/scilab_en_US_help/sym_isTimeLimitReached.html
index bac9d72..a17ee68 100644
--- a/help/en_US/scilab_en_US_help/sym_isTimeLimitReached.html
+++ b/help/en_US/scilab_en_US_help/sym_isTimeLimitReached.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a> &gt; sym_isTimeLimitReached</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a> &gt; sym_isTimeLimitReached</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">sym_isTimeLimitReached</h1>
@@ -69,7 +69,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/sym_loadMPS.html b/help/en_US/scilab_en_US_help/sym_loadMPS.html
index 40920b0..fcfc6d7 100644
--- a/help/en_US/scilab_en_US_help/sym_loadMPS.html
+++ b/help/en_US/scilab_en_US_help/sym_loadMPS.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a> &gt; sym_loadMPS</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a> &gt; sym_loadMPS</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">sym_loadMPS</h1>
@@ -68,7 +68,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/sym_loadProblem.html b/help/en_US/scilab_en_US_help/sym_loadProblem.html
index 51ef7a1..63ea934 100644
--- a/help/en_US/scilab_en_US_help/sym_loadProblem.html
+++ b/help/en_US/scilab_en_US_help/sym_loadProblem.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a> &gt; sym_loadProblem</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a> &gt; sym_loadProblem</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">sym_loadProblem</h1>
@@ -88,7 +88,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/sym_loadProblemBasic.html b/help/en_US/scilab_en_US_help/sym_loadProblemBasic.html
index be22b57..40e106e 100644
--- a/help/en_US/scilab_en_US_help/sym_loadProblemBasic.html
+++ b/help/en_US/scilab_en_US_help/sym_loadProblemBasic.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a> &gt; sym_loadProblemBasic</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a> &gt; sym_loadProblemBasic</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">sym_loadProblemBasic</h1>
@@ -89,7 +89,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/sym_open.html b/help/en_US/scilab_en_US_help/sym_open.html
index 05eb30a..cbc7836 100644
--- a/help/en_US/scilab_en_US_help/sym_open.html
+++ b/help/en_US/scilab_en_US_help/sym_open.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a> &gt; sym_open</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a> &gt; sym_open</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">sym_open</h1>
@@ -70,7 +70,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/sym_resetParams.html b/help/en_US/scilab_en_US_help/sym_resetParams.html
index 60e9a7f..55d9bb9 100644
--- a/help/en_US/scilab_en_US_help/sym_resetParams.html
+++ b/help/en_US/scilab_en_US_help/sym_resetParams.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a> &gt; sym_resetParams</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a> &gt; sym_resetParams</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">sym_resetParams</h1>
@@ -66,7 +66,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/sym_setConstrLower.html b/help/en_US/scilab_en_US_help/sym_setConstrLower.html
index 5821391..86d6f6f 100644
--- a/help/en_US/scilab_en_US_help/sym_setConstrLower.html
+++ b/help/en_US/scilab_en_US_help/sym_setConstrLower.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a> &gt; sym_setConstrLower</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a> &gt; sym_setConstrLower</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">sym_setConstrLower</h1>
@@ -71,7 +71,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/sym_setConstrType.html b/help/en_US/scilab_en_US_help/sym_setConstrType.html
index e10c1b7..89eae4d 100644
--- a/help/en_US/scilab_en_US_help/sym_setConstrType.html
+++ b/help/en_US/scilab_en_US_help/sym_setConstrType.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a> &gt; sym_setConstrType</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a> &gt; sym_setConstrType</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">sym_setConstrType</h1>
@@ -77,7 +77,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/sym_setConstrUpper.html b/help/en_US/scilab_en_US_help/sym_setConstrUpper.html
index 327360c..9332a13 100644
--- a/help/en_US/scilab_en_US_help/sym_setConstrUpper.html
+++ b/help/en_US/scilab_en_US_help/sym_setConstrUpper.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a> &gt; sym_setConstrUpper</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a> &gt; sym_setConstrUpper</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">sym_setConstrUpper</h1>
@@ -71,7 +71,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/sym_setContinuous.html b/help/en_US/scilab_en_US_help/sym_setContinuous.html
index 260c828..78a9565 100644
--- a/help/en_US/scilab_en_US_help/sym_setContinuous.html
+++ b/help/en_US/scilab_en_US_help/sym_setContinuous.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a> &gt; sym_setContinuous</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a> &gt; sym_setContinuous</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">sym_setContinuous</h1>
@@ -67,7 +67,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/sym_setDblParam.html b/help/en_US/scilab_en_US_help/sym_setDblParam.html
index 79bea38..45edee5 100644
--- a/help/en_US/scilab_en_US_help/sym_setDblParam.html
+++ b/help/en_US/scilab_en_US_help/sym_setDblParam.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a> &gt; sym_setDblParam</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a> &gt; sym_setDblParam</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">sym_setDblParam</h1>
@@ -69,7 +69,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/sym_setIntParam.html b/help/en_US/scilab_en_US_help/sym_setIntParam.html
index 085cd2d..852b5c9 100644
--- a/help/en_US/scilab_en_US_help/sym_setIntParam.html
+++ b/help/en_US/scilab_en_US_help/sym_setIntParam.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a> &gt; sym_setIntParam</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a> &gt; sym_setIntParam</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">sym_setIntParam</h1>
@@ -69,7 +69,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/sym_setInteger.html b/help/en_US/scilab_en_US_help/sym_setInteger.html
index 9ace0fa..f8e3859 100644
--- a/help/en_US/scilab_en_US_help/sym_setInteger.html
+++ b/help/en_US/scilab_en_US_help/sym_setInteger.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a> &gt; sym_setInteger</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a> &gt; sym_setInteger</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">sym_setInteger</h1>
@@ -67,7 +67,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/sym_setObjCoeff.html b/help/en_US/scilab_en_US_help/sym_setObjCoeff.html
index 8bb0771..93f87ba 100644
--- a/help/en_US/scilab_en_US_help/sym_setObjCoeff.html
+++ b/help/en_US/scilab_en_US_help/sym_setObjCoeff.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a> &gt; sym_setObjCoeff</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a> &gt; sym_setObjCoeff</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">sym_setObjCoeff</h1>
@@ -71,7 +71,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/sym_setObjSense.html b/help/en_US/scilab_en_US_help/sym_setObjSense.html
index a85340e..e296d97 100644
--- a/help/en_US/scilab_en_US_help/sym_setObjSense.html
+++ b/help/en_US/scilab_en_US_help/sym_setObjSense.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a> &gt; sym_setObjSense</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a> &gt; sym_setObjSense</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">sym_setObjSense</h1>
@@ -69,7 +69,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/sym_setPrimalBound.html b/help/en_US/scilab_en_US_help/sym_setPrimalBound.html
index 4e5fda2..b6786d3 100644
--- a/help/en_US/scilab_en_US_help/sym_setPrimalBound.html
+++ b/help/en_US/scilab_en_US_help/sym_setPrimalBound.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a> &gt; sym_setPrimalBound</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a> &gt; sym_setPrimalBound</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">sym_setPrimalBound</h1>
@@ -69,7 +69,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/sym_setStrParam.html b/help/en_US/scilab_en_US_help/sym_setStrParam.html
index 2b5ff96..eecf5af 100644
--- a/help/en_US/scilab_en_US_help/sym_setStrParam.html
+++ b/help/en_US/scilab_en_US_help/sym_setStrParam.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a> &gt; sym_setStrParam</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a> &gt; sym_setStrParam</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">sym_setStrParam</h1>
@@ -69,7 +69,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/sym_setVarLower.html b/help/en_US/scilab_en_US_help/sym_setVarLower.html
index 7d24dfe..ad3f9fb 100644
--- a/help/en_US/scilab_en_US_help/sym_setVarLower.html
+++ b/help/en_US/scilab_en_US_help/sym_setVarLower.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a> &gt; sym_setVarLower</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a> &gt; sym_setVarLower</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">sym_setVarLower</h1>
@@ -71,7 +71,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/sym_setVarSoln.html b/help/en_US/scilab_en_US_help/sym_setVarSoln.html
index f70f048..072b103 100644
--- a/help/en_US/scilab_en_US_help/sym_setVarSoln.html
+++ b/help/en_US/scilab_en_US_help/sym_setVarSoln.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a> &gt; sym_setVarSoln</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a> &gt; sym_setVarSoln</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">sym_setVarSoln</h1>
@@ -70,7 +70,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/sym_setVarUpper.html b/help/en_US/scilab_en_US_help/sym_setVarUpper.html
index 40bf06d..3c89ae5 100644
--- a/help/en_US/scilab_en_US_help/sym_setVarUpper.html
+++ b/help/en_US/scilab_en_US_help/sym_setVarUpper.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a> &gt; sym_setVarUpper</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a> &gt; sym_setVarUpper</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">sym_setVarUpper</h1>
@@ -71,7 +71,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/sym_solve.html b/help/en_US/scilab_en_US_help/sym_solve.html
index 1d603f5..b5ebe94 100644
--- a/help/en_US/scilab_en_US_help/sym_solve.html
+++ b/help/en_US/scilab_en_US_help/sym_solve.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
@@ -28,7 +28,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a> &gt; sym_solve</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; <a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a> &gt; sym_solve</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">sym_solve</h1>
@@ -68,7 +68,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions</a></span>
+ <span class="top"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/symphony.html b/help/en_US/scilab_en_US_help/symphony.html
index 4b7eaba..7f699cc 100644
--- a/help/en_US/scilab_en_US_help/symphony.html
+++ b/help/en_US/scilab_en_US_help/symphony.html
@@ -16,7 +16,7 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a></span>
+ <span class="top"><a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a></span>
</td>
<td width="30%" class="next">
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; symphony</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; symphony</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">symphony</h1>
@@ -42,54 +42,67 @@
<span class="default">xopt</span><span class="default"> = </span><span class="functionid">symphony</span><span class="default">(</span><span class="default">nbVar</span><span class="default">,</span><span class="default">nbCon</span><span class="default">,</span><span class="default">c</span><span class="default">,</span><span class="default">isInt</span><span class="default">,</span><span class="default">lb</span><span class="default">,</span><span class="default">ub</span><span class="default">,</span><span class="default">A</span><span class="default">,</span><span class="default">conLB</span><span class="default">,</span><span class="default">conUB</span><span class="default">,</span><span class="default">objSense</span><span class="default">,</span><span class="default">options</span><span class="default">)</span>
<span class="default">[</span><span class="default">xopt</span><span class="default">,</span><span class="default">fopt</span><span class="default">,</span><span class="default">status</span><span class="default">,</span><span class="default">output</span><span class="default">] = </span><span class="functionid">symphony</span><span class="default">( ... )</span></pre></div></div>
-<div class="refsection"><h3 class="title">Parameters</h3>
+<div class="refsection"><h3 class="title">Input Parameters</h3>
<dl><dt><span class="term">nbVar :</span>
- <dd><p class="para">a double, number of variables.</p></dd></dt>
+ <dd><p class="para">A double, representing the number of variables.</p></dd></dt>
<dt><span class="term">nbCon :</span>
- <dd><p class="para">a double, number of constraints.</p></dd></dt>
+ <dd><p class="para">A double, representing the number of constraints.</p></dd></dt>
<dt><span class="term">c :</span>
- <dd><p class="para">a vector of double, represents coefficients of the variables in the objective.</p></dd></dt>
+ <dd><p class="para">A vector of doubles, representing the coefficients of the variables in the objective.</p></dd></dt>
<dt><span class="term">isInt :</span>
- <dd><p class="para">a vector of boolean, represents wether a variable is constrained to be an integer.</p></dd></dt>
+ <dd><p class="para">A vector of booleans, representing whether a variable is constrained to be an integer.</p></dd></dt>
<dt><span class="term">lb :</span>
- <dd><p class="para">a vector of double, represents lower bounds of the variables.</p></dd></dt>
+ <dd><p class="para">A vector of doubles, containing the lower bounds of the variables of size (1 X n) or (n X 1) where &#0039;n&#0039; is the number of variables.</p></dd></dt>
<dt><span class="term">ub :</span>
- <dd><p class="para">a vector of double, represents upper bounds of the variables.</p></dd></dt>
+ <dd><p class="para">A vector of doubles, containing the upper bounds of the variables of size (1 X n) or (n X 1) where &#0039;n&#0039; is the number of variables.</p></dd></dt>
<dt><span class="term">A :</span>
- <dd><p class="para">a matrix of double, represents matrix representing the constraint matrix conLB ≤ A⋅x ≤ conUB.</p></dd></dt>
+ <dd><p class="para">A matrix of double, representing the constraint matrix in conLB ≤ A⋅x ≤ conUB.</p></dd></dt>
<dt><span class="term">conLB :</span>
- <dd><p class="para">a vector of double, represents lower bounds of the constraints conLB ≤ A⋅x ≤ conUB.</p></dd></dt>
+ <dd><p class="para">A vector of double, representing the lower bounds of the constraints conLB ≤ A⋅x ≤ conUB.</p></dd></dt>
<dt><span class="term">conUB :</span>
- <dd><p class="para">a vector of double, represents upper bounds of the constraints conLB ≤ A⋅x ≤ conUB.</p></dd></dt>
+ <dd><p class="para">A vector of double, representing the upper bounds of the constraints conLB ≤ A⋅x ≤ conUB.</p></dd></dt>
<dt><span class="term">objSense :</span>
<dd><p class="para">The sense (maximization/minimization) of the objective. Use 1(sym_minimize ) or -1 (sym_maximize) here.</p></dd></dt>
<dt><span class="term">options :</span>
- <dd><p class="para">a list containing the parameters to be set.</p></dd></dt>
- <dt><span class="term">xopt :</span>
- <dd><p class="para">a vector of double, the computed solution of the optimization problem.</p></dd></dt>
+ <dd><p class="para">A list, containing the option for user to specify. See below for details.</p></dd></dt></dl></div>
+<div class="refsection"><h3 class="title">Outputs</h3>
+ <dl><dt><span class="term">xopt :</span>
+ <dd><p class="para">A vector of doubles, containing the computed solution of the optimization problem.</p></dd></dt>
<dt><span class="term">fopt :</span>
- <dd><p class="para">a double, the value of the function at x.</p></dd></dt>
- <dt><span class="term">status :</span>
- <dd><p class="para">status flag returned from symphony.See below for details.</p></dd></dt>
+ <dd><p class="para">A double, containing the value of the function at x.</p></dd></dt>
+ <dt><span class="term">status :</span>
+ <dd><p class="para">The status flag returned from symphony. See below for details.</p></dd></dt>
<dt><span class="term">output :</span>
- <dd><p class="para">The output data structure contains detailed information about the optimization process. See below for details.</p></dd></dt></dl></div>
+ <dd><p class="para">A structure, containing the information about the optimization. See below for details.</p></dd></dt></dl></div>
<div class="refsection"><h3 class="title">Description</h3>
- <p class="para">Search the minimum or maximum of a constrained mixed integer linear programming optimization problem specified by :</p>
- <p class="para"><span><img src='./_LaTeX_symphony.xml_1.png' style='position:relative;top:41px;width:292px;height:90px'/></span></p>
- <p class="para">The routine calls SYMPHONY written in C by gateway files for the actual computation.</p>
- <p class="para">The status allows to know the status of the optimization which is given back by Ipopt.
-<ul class="itemizedlist"><li>status=227 : Optimal Solution Found</li>
-<li>status=228 : Maximum CPU Time exceeded.</li>
-<li>status=229 : Maximum Number of Node Limit Exceeded.</li>
-<li>status=230 : Maximum Number of Iterations Limit Exceeded.</li></ul></p>
- <p class="para">For more details on status see the symphony documentation, go to http://www.coin-or.org/SYMPHONY/man-5.6/</p>
- <p class="para">The output data structure contains detailed informations about the optimization process.
-It has type &#0034;struct&#0034; and contains the following fields.
-<ul class="itemizedlist"><li>output.iterations: The number of iterations performed during the search</li></ul></p>
+ <p class="para">Search the minimum or maximum of a constrained mixed integer linear programming optimization problem specified by:</p>
+ <p class="para"><span><img src='./_LaTeX_symphony.xml_1.png' style='position:relative;top:51px;width:184px;height:110px'/></span></p>
+ <p class="para">The routine calls SYMPHONY, a solver for mixed-integer linear programs written in C, for the actual computation.</p>
+ <p class="para"><h3 class="title">Options</h3>
+The options should be defined as type &#0034;list&#0034; and consist of over a hundred fields, the most important ones of which have been detailed here:</p>
+ <p class="para"><ul class="itemizedlist"><li>node_limit : A scalar, specifying the max. number of nodes allowed to be analyzed during the solution.</li>
+ <li>time_limit : A scalar, specifying the maximum amount of CPU time in seconds that the solver should take.</li>
+ <li>gap_limit : A scalar, representing the target gap limit allowed for solution.</li>
+<li>granularity : A scalar, “the minimum difference between two distinct objective function values</li>
+
+<li>node_selection_rule : A Scalar, specifying the maximum number of iterations that the solver should take.</li>
+<li>prep_level : An integer, that determines the level of preprocessing that should be done on the current MILP instance.</li>
+<li>do_branch_and_cut : A boolean, representing the decision whether to run the branch and cut algorithm or not.</li></ul></p>
+ <p class="para">The status allows the user to know the status of the optimization which is returned by Symphony. The values it can take and what they indicate is described below:
+<ul class="itemizedlist"><li>227 : Optimal Solution Found</li>
+<li>228 : Maximum CPU Time exceeded.</li>
+<li>229 : Maximum Number of Node Limit Exceeded.</li>
+<li>230 : Maximum Number of Iterations Limit Exceeded.</li></ul></p>
+ <p class="para">For more details on the status, see the symphony documentation which can be found on http://www.coin-or.org/SYMPHONY/man-5.6/</p>
+ <p class="para">The output data structure contains detailed information about the optimization process.
+It is of type &#0034;struct&#0034; and contains the following fields.
+<ul class="itemizedlist"><li>output.iterations: The number of iterations performed.</li></ul></p>
<p class="para"></p></div>
-<div class="refsection"><h3 class="title">Examples</h3>
+<p class="para">A few examples displaying the various functionalities of symphony have been provided below. You will find a series of problems and the appropriate code snippets to solve them.</p>
+<div class="refsection"><h3 class="title">Example</h3>
+ <p class="para"><span><img src='./_LaTeX_symphony.xml_2.png' style='position:relative;top:27px;width:580px;height:292px'/></span></p>
<div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Reference: Westerberg, Carl-Henrik, Bengt Bjorklund, and Eskil Hultman. </span><span class="scilabcomment">&#0034;</span><span class="scilabcomment">An application of mixed integer programming in a Swedish steel mill.</span><span class="scilabcomment">&#0034;</span><span class="scilabcomment"> Interfaces 7, no. 2 (1977): 39-43.</span>
<span class="scilabcomment">// Objective function</span>
<span class="scilabid">c</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">350</span><span class="scilaboperator">*</span><span class="scilabnumber">5</span><span class="scilabdefault">,</span><span class="scilabnumber">330</span><span class="scilaboperator">*</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilabnumber">310</span><span class="scilaboperator">*</span><span class="scilabnumber">4</span><span class="scilabdefault">,</span><span class="scilabnumber">280</span><span class="scilaboperator">*</span><span class="scilabnumber">6</span><span class="scilabdefault">,</span><span class="scilabnumber">500</span><span class="scilabdefault">,</span><span class="scilabnumber">450</span><span class="scilabdefault">,</span><span class="scilabnumber">400</span><span class="scilabdefault">,</span><span class="scilabnumber">100</span><span class="scilabopenclose">]</span><span class="scilaboperator">&#0039;</span><span class="scilabdefault">;</span>
@@ -109,12 +122,43 @@ It has type &#0034;struct&#0034; and contains the following fields.
<span class="scilabid">isInt</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><a class="scilabmacro" href="scilab://repmat">repmat</a><span class="scilabopenclose">(</span><span class="scilabconstants">%t</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">4</span><span class="scilabopenclose">)</span> <a class="scilabmacro" href="scilab://repmat">repmat</a><span class="scilabopenclose">(</span><span class="scilabconstants">%f</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">4</span><span class="scilabopenclose">)</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
<span class="scilabid">xopt</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span> <span class="scilabnumber">1</span> <span class="scilabnumber">0</span> <span class="scilabnumber">1</span> <span class="scilabnumber">7.25</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0.25</span> <span class="scilabnumber">3.5</span><span class="scilabopenclose">]</span>
<span class="scilabid">fopt</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">8495</span><span class="scilabopenclose">]</span>
+<span class="scilabid">options</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">time_limit</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabnumber">25</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">// Calling Symphony</span>
+<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">f</span><span class="scilabdefault">,</span><span class="scilabid">status</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">symphony</span><span class="scilabopenclose">(</span><span class="scilabnumber">8</span><span class="scilabdefault">,</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilabid">c</span><span class="scilabdefault">,</span><span class="scilabid">isInt</span><span class="scilabdefault">,</span><span class="scilabid">lb</span><span class="scilabdefault">,</span><span class="scilabid">ub</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">conlb</span><span class="scilabdefault">,</span><span class="scilabid">conub</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabid">options</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">// Press ENTER to continue</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Example</h3>
+ <p class="para">Here we provide the sense (maximization/minimization) of the objective and show how we can further enhance the functionality of symphony by setting input options. This provides us with the ability to control the solver parameters such as the maximum number of solver iterations and the max. CPU time allowed for the computation.</p>
+<p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">//Reference: Westerberg, Carl-Henrik, Bengt Bjorklund, and Eskil Hultman. </span><span class="scilabcomment">&#0034;</span><span class="scilabcomment">An application of mixed integer programming in a Swedish steel mill.</span><span class="scilabcomment">&#0034;</span><span class="scilabcomment"> Interfaces 7, no. 2 (1977): 39-43.</span>
+<span class="scilabcomment">// Objective function</span>
+<span class="scilabid">c</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">350</span><span class="scilaboperator">*</span><span class="scilabnumber">5</span><span class="scilabdefault">,</span><span class="scilabnumber">330</span><span class="scilaboperator">*</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilabnumber">310</span><span class="scilaboperator">*</span><span class="scilabnumber">4</span><span class="scilabdefault">,</span><span class="scilabnumber">280</span><span class="scilaboperator">*</span><span class="scilabnumber">6</span><span class="scilabdefault">,</span><span class="scilabnumber">500</span><span class="scilabdefault">,</span><span class="scilabnumber">450</span><span class="scilabdefault">,</span><span class="scilabnumber">400</span><span class="scilabdefault">,</span><span class="scilabnumber">100</span><span class="scilabopenclose">]</span><span class="scilaboperator">&#0039;</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">// Lower Bound of variable</span>
+<span class="scilabid">lb</span> <span class="scilaboperator">=</span> <a class="scilabmacro" href="scilab://repmat">repmat</a><span class="scilabopenclose">(</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">8</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">// Upper Bound of variables</span>
+<span class="scilabid">ub</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><a class="scilabmacro" href="scilab://repmat">repmat</a><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">4</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span><a class="scilabmacro" href="scilab://repmat">repmat</a><span class="scilabopenclose">(</span><span class="scilabconstants">%inf</span><span class="scilabdefault">,</span><span class="scilabnumber">4</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">// Constraint Matrix</span>
+<span class="scilabid">A</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">5</span><span class="scilabdefault">,</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilabnumber">4</span><span class="scilabdefault">,</span><span class="scilabnumber">6</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">5</span><span class="scilaboperator">*</span><span class="scilabnumber">0.05</span><span class="scilabdefault">,</span><span class="scilabnumber">3</span><span class="scilaboperator">*</span><span class="scilabnumber">0.04</span><span class="scilabdefault">,</span><span class="scilabnumber">4</span><span class="scilaboperator">*</span><span class="scilabnumber">0.05</span><span class="scilabdefault">,</span><span class="scilabnumber">6</span><span class="scilaboperator">*</span><span class="scilabnumber">0.03</span><span class="scilabdefault">,</span><span class="scilabnumber">0.08</span><span class="scilabdefault">,</span><span class="scilabnumber">0.07</span><span class="scilabdefault">,</span><span class="scilabnumber">0.06</span><span class="scilabdefault">,</span><span class="scilabnumber">0.03</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">5</span><span class="scilaboperator">*</span><span class="scilabnumber">0.03</span><span class="scilabdefault">,</span><span class="scilabnumber">3</span><span class="scilaboperator">*</span><span class="scilabnumber">0.03</span><span class="scilabdefault">,</span><span class="scilabnumber">4</span><span class="scilaboperator">*</span><span class="scilabnumber">0.04</span><span class="scilabdefault">,</span><span class="scilabnumber">6</span><span class="scilaboperator">*</span><span class="scilabnumber">0.04</span><span class="scilabdefault">,</span><span class="scilabnumber">0.06</span><span class="scilabdefault">,</span><span class="scilabnumber">0.07</span><span class="scilabdefault">,</span><span class="scilabnumber">0.08</span><span class="scilabdefault">,</span><span class="scilabnumber">0.09</span><span class="scilabdefault">;</span><span class="scilabopenclose">]</span>
+<span class="scilabcomment">// Lower Bound of constraints</span>
+<span class="scilabid">conlb</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span> <span class="scilabnumber">25</span><span class="scilabdefault">;</span> <span class="scilabnumber">1.25</span><span class="scilabdefault">;</span> <span class="scilabnumber">1.25</span><span class="scilabopenclose">]</span>
+<span class="scilabcomment">// Upper Bound of constraints</span>
+<span class="scilabid">conub</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span> <span class="scilabnumber">25</span><span class="scilabdefault">;</span> <span class="scilabnumber">1.25</span><span class="scilabdefault">;</span> <span class="scilabnumber">1.25</span><span class="scilabopenclose">]</span>
+<span class="scilabcomment">// Row Matrix for telling symphony that the is integer or not</span>
+<span class="scilabid">isInt</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><a class="scilabmacro" href="scilab://repmat">repmat</a><span class="scilabopenclose">(</span><span class="scilabconstants">%t</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">4</span><span class="scilabopenclose">)</span> <a class="scilabmacro" href="scilab://repmat">repmat</a><span class="scilabopenclose">(</span><span class="scilabconstants">%f</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">4</span><span class="scilabopenclose">)</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">xopt</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span> <span class="scilabnumber">1</span> <span class="scilabnumber">0</span> <span class="scilabnumber">1</span> <span class="scilabnumber">7.25</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0.25</span> <span class="scilabnumber">3.5</span><span class="scilabopenclose">]</span>
+<span class="scilabid">fopt</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">8495</span><span class="scilabopenclose">]</span>
+<span class="scilabid">options</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">time_limit</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabnumber">25</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
<span class="scilabcomment">// Calling Symphony</span>
-<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">f</span><span class="scilabdefault">,</span><span class="scilabid">status</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">symphony</span><span class="scilabopenclose">(</span><span class="scilabnumber">8</span><span class="scilabdefault">,</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilabid">c</span><span class="scilabdefault">,</span><span class="scilabid">isInt</span><span class="scilabdefault">,</span><span class="scilabid">lb</span><span class="scilabdefault">,</span><span class="scilabid">ub</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">conlb</span><span class="scilabdefault">,</span><span class="scilabid">conub</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span>
+<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">f</span><span class="scilabdefault">,</span><span class="scilabid">status</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">symphony</span><span class="scilabopenclose">(</span><span class="scilabnumber">8</span><span class="scilabdefault">,</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilabid">c</span><span class="scilabdefault">,</span><span class="scilabid">isInt</span><span class="scilabdefault">,</span><span class="scilabid">lb</span><span class="scilabdefault">,</span><span class="scilabid">ub</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">conlb</span><span class="scilabdefault">,</span><span class="scilabid">conub</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabid">options</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
<span class="scilabcomment">// Press ENTER to continue</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
-<div class="refsection"><h3 class="title">Examples</h3>
- <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// An advanced case where we set some options in symphony</span>
+<div class="refsection"><h3 class="title">Example</h3>
+ <p class="para">An advanced example for Symphony.</p>
+ <p class="para"><span><img src='./_LaTeX_symphony.xml_3.png' style='position:relative;top:9px;width:248px;height:145px'/></span></p>
+ <p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Example 3:</span>
<span class="scilabcomment">// This problem is taken from</span>
<span class="scilabcomment">// P.C.Chu and J.E.Beasley</span>
<span class="scilabcomment">// </span><span class="scilabcomment">&#0034;</span><span class="scilabcomment">A genetic algorithm for the multidimensional knapsack problem</span><span class="scilabcomment">&#0034;</span><span class="scilabcomment">,</span>
@@ -210,7 +254,7 @@ It has type &#0034;struct&#0034; and contains the following fields.
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a></span>
+ <span class="top"><a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a></span>
</td>
<td width="30%" class="next">
diff --git a/help/en_US/scilab_en_US_help/symphonymat.html b/help/en_US/scilab_en_US_help/symphonymat.html
index 58e5070..4e68eda 100644
--- a/help/en_US/scilab_en_US_help/symphonymat.html
+++ b/help/en_US/scilab_en_US_help/symphonymat.html
@@ -16,11 +16,11 @@
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a></span>
+ <span class="top"><a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a></span>
</td>
<td width="30%" class="next">
- <span class="next"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions &gt;&gt;</a></span>
+ <span class="next"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions &gt;&gt;</a></span>
</td>
</tr></table>
@@ -29,7 +29,7 @@
- <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a> &gt; symphonymat</span>
+ <span class="path"><a href="index.html">FOSSEE Optimization Toolbox</a> &gt;&gt; <a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a> &gt; symphonymat</span>
<br /><br />
<div class="refnamediv"><h1 class="refname">symphonymat</h1>
@@ -43,148 +43,204 @@
<span class="default">xopt</span><span class="default"> = </span><span class="functionid">symphonymat</span><span class="default">(</span><span class="default">c</span><span class="default">,</span><span class="default">intcon</span><span class="default">,</span><span class="default">A</span><span class="default">,</span><span class="default">b</span><span class="default">,</span><span class="default">Aeq</span><span class="default">,</span><span class="default">beq</span><span class="default">,</span><span class="default">lb</span><span class="default">,</span><span class="default">ub</span><span class="default">,</span><span class="default">options</span><span class="default">)</span>
<span class="default">[</span><span class="default">xopt</span><span class="default">,</span><span class="default">fopt</span><span class="default">,</span><span class="default">status</span><span class="default">,</span><span class="default">output</span><span class="default">] = </span><span class="functionid">symphonymat</span><span class="default">( ... )</span></pre></div></div>
-<div class="refsection"><h3 class="title">Parameters</h3>
+<div class="refsection"><h3 class="title">Input Parameters</h3>
<dl><dt><span class="term">c :</span>
- <dd><p class="para">a vector of double, contains coefficients of the variables in the objective</p></dd></dt>
+ <dd><p class="para">A vector of doubles, containing the coefficients of the variables in the objective function.</p></dd></dt>
<dt><span class="term">intcon :</span>
- <dd><p class="para">Vector of integer constraints, specified as a vector of positive integers. The values in intcon indicate the components of the decision variable x that are integer-valued. intcon has values from 1 through number of variable.</p></dd></dt>
+ <dd><p class="para">A vector of integer constraints, specified as a vector of positive integers. The values in intcon indicate the components of the decision variable x that are integer-valued. intcon has values from 1 to n where n is the number of variable.</p></dd></dt>
<dt><span class="term">A :</span>
- <dd><p class="para">a matrix of double, represents the linear coefficients in the inequality constraints A⋅x ≤ b.</p></dd></dt>
+ <dd><p class="para">A matrix of doubles, containing the coefficients of linear inequality constraints of size (m X n) where &#0039;m&#0039; is the number of linear inequality constraints.</p></dd></dt>
<dt><span class="term">b :</span>
- <dd><p class="para">a vector of double, represents the linear coefficients in the inequality constraints A⋅x ≤ b.</p></dd></dt>
+ <dd><p class="para">A vector of doubles, related to &#0039;A&#0039; and represents the linear coefficients in the linear inequality constraints of size (m X 1).</p></dd></dt>
<dt><span class="term">Aeq :</span>
- <dd><p class="para">a matrix of double, represents the linear coefficients in the equality constraints Aeq⋅x = beq.</p></dd></dt>
+ <dd><p class="para">A matrix of doubles, containing the coefficients of linear equality constraints of size (m1 X n) where &#0039;m1&#0039; is the number of linear equality constraints.</p></dd></dt>
<dt><span class="term">beq :</span>
- <dd><p class="para">a vector of double, represents the linear coefficients in the equality constraints Aeq⋅x = beq.</p></dd></dt>
+ <dd><p class="para">A vector of double, vector of doubles, related to &#0039;Aeq&#0039; and represents the linear coefficients in the equality constraints of size (m1 X 1).</p></dd></dt>
<dt><span class="term">lb :</span>
- <dd><p class="para">Lower bounds, specified as a vector or array of double. lb represents the lower bounds elementwise in lb ≤ x ≤ ub.</p></dd></dt>
+ <dd><p class="para">A vector of doubles, containing the lower bounds of the variables of size (1 X n) or (n X 1) where &#0039;n&#0039; is the number of variables.</p></dd></dt>
<dt><span class="term">ub :</span>
- <dd><p class="para">Upper bounds, specified as a vector or array of double. ub represents the upper bounds elementwise in lb ≤ x ≤ ub.</p></dd></dt>
+ <dd><p class="para">A vector of doubles, containing the upper bounds of the variables of size (1 X n) or (n X 1) where &#0039;n&#0039; is the number of variables.</p></dd></dt>
<dt><span class="term">options :</span>
- <dd><p class="para">a list containing the parameters to be set.</p></dd></dt>
- <dt><span class="term">xopt :</span>
- <dd><p class="para">a vector of double, the computed solution of the optimization problem.</p></dd></dt>
+ <dd><p class="para">A list, containing the option for user to specify. See below for details.</p></dd></dt></dl></div>
+<div class="refsection"><h3 class="title">Outputs</h3>
+ <dl><dt><span class="term">xopt :</span>
+ <dd><p class="para">A vector of doubles, containing the computed solution of the optimization problem.</p></dd></dt>
<dt><span class="term">fopt :</span>
- <dd><p class="para">a double, the value of the function at x.</p></dd></dt>
+ <dd><p class="para">A double, containing the value of the function at x.</p></dd></dt>
<dt><span class="term">status :</span>
- <dd><p class="para">status flag returned from symphony. See below for details.</p></dd></dt>
+ <dd><p class="para">The status flag returned from symphony. See below for details.</p></dd></dt>
<dt><span class="term">output :</span>
- <dd><p class="para">The output data structure contains detailed information about the optimization process. See below for details.</p></dd></dt></dl></div>
+ <dd><p class="para">A structure, containing the information about the optimization. See below for details.</p></dd></dt></dl></div>
<div class="refsection"><h3 class="title">Description</h3>
<p class="para">Search the minimum or maximum of a constrained mixed integer linear programming optimization problem specified by :</p>
- <p class="para"><span><img src='./_LaTeX_symphonymat.xml_1.png' style='position:relative;top:51px;width:212px;height:110px'/></span></p>
- <p class="para">The routine calls SYMPHONY written in C by gateway files for the actual computation.</p>
- <p class="para">The status allows to know the status of the optimization which is given back by Ipopt.
-<ul class="itemizedlist"><li>status=227 : Optimal Solution Found</li>
-<li>status=228 : Maximum CPU Time exceeded.</li>
-<li>status=229 : Maximum Number of Node Limit Exceeded.</li>
-<li>status=230 : Maximum Number of Iterations Limit Exceeded.</li></ul></p>
- <p class="para">For more details on status see the symphony documentation, go to http://www.coin-or.org/SYMPHONY/man-5.6/</p>
- <p class="para">The output data structure contains detailed informations about the optimization process.
-It has type &#0034;struct&#0034; and contains the following fields.
-<ul class="itemizedlist"><li>output.iterations: The number of iterations performed during the search</li></ul></p>
+ <p class="para"><span><img src='./_LaTeX_symphonymat.xml_1.png' style='position:relative;top:51px;width:189px;height:110px'/></span></p>
+ <p class="para">The routine calls SYMPHONY, a solver for mixed-integer linear programs written in C, for the actual computation.</p>
+ <p class="para"><h3 class="title">Options</h3>
+The options should be defined as type &#0034;list&#0034; and consist of over a hundred fields, the most important ones of which have been detailed here:</p>
+ <p class="para"><ul class="itemizedlist"><li>node_limit : A scalar, specifying the max. number of nodes allowed to be analyzed during the solution.</li>
+ <li>time_limit : A scalar, specifying the maximum amount of CPU time in seconds that the solver should take.</li>
+ <li>gap_limit : A scalar, representing the target gap limit allowed for solution.</li>
+<li>granularity : A scalar, “the minimum difference between two distinct objective function values</li>
+
+<li>node_selection_rule : A Scalar, specifying the maximum number of iterations that the solver should take.</li>
+<li>prep_level : An integer, that determines the level of preprocessing that should be done on the current MILP instance.</li>
+<li>do_branch_and_cut : A boolean, representing the decision whether to run the branch and cut algorithm or not.</li></ul></p>
+ <p class="para">The status allows the user to know the status of the optimization which is returned by Symphony. The values it can take and what they indicate is described below:
+<ul class="itemizedlist"><li>227 : Optimal Solution Found</li>
+<li>228 : Maximum CPU Time exceeded.</li>
+<li>229 : Maximum Number of Node Limit Exceeded.</li>
+<li>230 : Maximum Number of Iterations Limit Exceeded.</li></ul></p>
+ <p class="para">For more details on the status, see the symphony documentation which can be found on http://www.coin-or.org/SYMPHONY/man-5.6/</p>
+ <p class="para">The output data structure contains detailed information about the optimization process.
+It is of type &#0034;struct&#0034; and contains the following fields.
+<ul class="itemizedlist"><li>output.iterations: The number of iterations performed.</li></ul></p>
<p class="para"></p></div>
-<div class="refsection"><h3 class="title">Examples</h3>
- <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Objective function</span>
-<span class="scilabcomment">// Reference: Westerberg, Carl-Henrik, Bengt Bjorklund, and Eskil Hultman. </span><span class="scilabcomment">&#0034;</span><span class="scilabcomment">An application of mixed integer programming in a Swedish steel mill.</span><span class="scilabcomment">&#0034;</span><span class="scilabcomment"> Interfaces 7, no. 2 (1977): 39-43.</span>
+<div class="refsection"><h3 class="title">Example</h3>
+ <p class="para">Here we solve a simple objective function, subjected to three linear inequality constraints.</p>
+ <p class="para">Find x in R^8 such that it minimizes:</p>
+ <p class="para"><span><img src='./_LaTeX_symphonymat.xml_2.png' style='position:relative;top:12px;width:646px;height:146px'/></span></p>
+ <p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Example 1:</span>
+<span class="scilabcomment">// Reference: Westerberg, Carl-Henrik, Bengt Bjorklund, and Eskil Hultman. </span><span class="scilabcomment">&#0034;</span><span class="scilabcomment">An application of mixed integer</span>
+<span class="scilabcomment">// programming in a Swedish steel mill.</span><span class="scilabcomment">&#0034;</span><span class="scilabcomment"> Interfaces 7, no. 2 (1977): 39-43. Modified acc. to requirements.</span>
+<span class="scilabid">c</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">350</span><span class="scilaboperator">*</span><span class="scilabnumber">5</span><span class="scilabdefault">,</span><span class="scilabnumber">330</span><span class="scilaboperator">*</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilabnumber">310</span><span class="scilaboperator">*</span><span class="scilabnumber">4</span><span class="scilabdefault">,</span><span class="scilabnumber">280</span><span class="scilaboperator">*</span><span class="scilabnumber">6</span><span class="scilabdefault">,</span><span class="scilabnumber">500</span><span class="scilabdefault">,</span><span class="scilabnumber">450</span><span class="scilabdefault">,</span><span class="scilabnumber">400</span><span class="scilabdefault">,</span><span class="scilabnumber">100</span><span class="scilabopenclose">]</span><span class="scilaboperator">&#0039;</span><span class="scilabdefault">;</span>
+<span class="scilabid">A</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">6</span><span class="scilabdefault">,</span><span class="scilabnumber">4.25</span><span class="scilabdefault">,</span> <span class="scilabnumber">5.5</span><span class="scilabdefault">,</span> <span class="scilabnumber">7.75</span><span class="scilabdefault">,</span> <span class="scilabnumber">3</span><span class="scilabdefault">,</span> <span class="scilabnumber">3.25</span><span class="scilabdefault">,</span> <span class="scilabnumber">3.5</span><span class="scilabdefault">,</span><span class="scilabnumber">3.75</span><span class="scilabdefault">;</span>
+ <span class="scilabnumber">1.25</span><span class="scilabdefault">,</span><span class="scilabnumber">1.37</span><span class="scilabdefault">,</span><span class="scilabnumber">1.7</span><span class="scilabdefault">,</span><span class="scilabnumber">1.93</span><span class="scilabdefault">,</span><span class="scilabnumber">2.08</span><span class="scilabdefault">,</span><span class="scilabnumber">2.32</span><span class="scilabdefault">,</span><span class="scilabnumber">2.56</span><span class="scilabdefault">,</span><span class="scilabnumber">2.78</span><span class="scilabdefault">;</span>
+ <span class="scilabnumber">1.15</span><span class="scilabdefault">,</span><span class="scilabnumber">1.34</span><span class="scilabdefault">,</span><span class="scilabnumber">1.66</span><span class="scilabdefault">,</span><span class="scilabnumber">1.99</span><span class="scilabdefault">,</span><span class="scilabnumber">2.06</span><span class="scilabdefault">,</span><span class="scilabnumber">2.32</span><span class="scilabdefault">,</span><span class="scilabnumber">2.58</span><span class="scilabdefault">,</span><span class="scilabnumber">2.84</span> <span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">100</span> <span class="scilabdefault">,</span><span class="scilabnumber">205</span><span class="scilabdefault">,</span> <span class="scilabnumber">249</span> <span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Defining the integer constraints</span>
+<span class="scilabid">intcon</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span> <span class="scilabnumber">2</span> <span class="scilabnumber">3</span> <span class="scilabnumber">4</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">// Calling Symphony</span>
+<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">f</span><span class="scilabdefault">,</span><span class="scilabid">status</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">symphonymat</span><span class="scilabopenclose">(</span><span class="scilabid">c</span><span class="scilabdefault">,</span><span class="scilabid">intcon</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabopenclose">)</span>
+<span class="scilabcomment">// Press ENTER to continue</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+<p class="para">A few examples displaying the various functionalities of symphonymat have been provided below. You will find a series of problems and the appropriate code snippets to solve them.</p>
+<div class="refsection"><h3 class="title">Example</h3>
+ <p class="para">Here we build up on the previous example by adding upper and lower bounds to the variables.
+We add the following bounds to the problem specified above:</p>
+ <p class="para"><span><img src='./_LaTeX_symphonymat.xml_3.png' style='position:relative;top:76px;width:125px;height:160px'/></span></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Example 2:</span>
+<span class="scilabcomment">// Reference: Westerberg, Carl-Henrik, Bengt Bjorklund, and Eskil Hultman. </span><span class="scilabcomment">&#0034;</span><span class="scilabcomment">An application of mixed integer</span>
+<span class="scilabcomment">// programming in a Swedish steel mill.</span><span class="scilabcomment">&#0034;</span><span class="scilabcomment"> Interfaces 7, no. 2 (1977): 39-43. Modified acc. to requirements.</span>
+ <span class="scilabid">c</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">350</span><span class="scilaboperator">*</span><span class="scilabnumber">5</span><span class="scilabdefault">,</span><span class="scilabnumber">330</span><span class="scilaboperator">*</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilabnumber">310</span><span class="scilaboperator">*</span><span class="scilabnumber">4</span><span class="scilabdefault">,</span><span class="scilabnumber">280</span><span class="scilaboperator">*</span><span class="scilabnumber">6</span><span class="scilabdefault">,</span><span class="scilabnumber">500</span><span class="scilabdefault">,</span><span class="scilabnumber">450</span><span class="scilabdefault">,</span><span class="scilabnumber">400</span><span class="scilabdefault">,</span><span class="scilabnumber">100</span><span class="scilabopenclose">]</span><span class="scilaboperator">&#0039;</span><span class="scilabdefault">;</span>
+ <span class="scilabcomment">//Inequality constraints</span>
+ <span class="scilabid">A</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">6</span><span class="scilabdefault">,</span><span class="scilabnumber">4.25</span><span class="scilabdefault">,</span> <span class="scilabnumber">5.5</span><span class="scilabdefault">,</span> <span class="scilabnumber">7.75</span><span class="scilabdefault">,</span> <span class="scilabnumber">3</span><span class="scilabdefault">,</span> <span class="scilabnumber">3.25</span><span class="scilabdefault">,</span> <span class="scilabnumber">3.5</span><span class="scilabdefault">,</span><span class="scilabnumber">3.75</span><span class="scilabdefault">;</span>
+ <span class="scilabnumber">1.25</span><span class="scilabdefault">,</span><span class="scilabnumber">1.37</span><span class="scilabdefault">,</span><span class="scilabnumber">1.7</span><span class="scilabdefault">,</span><span class="scilabnumber">1.93</span><span class="scilabdefault">,</span><span class="scilabnumber">2.08</span><span class="scilabdefault">,</span><span class="scilabnumber">2.32</span><span class="scilabdefault">,</span><span class="scilabnumber">2.56</span><span class="scilabdefault">,</span><span class="scilabnumber">2.78</span><span class="scilabdefault">;</span>
+ <span class="scilabnumber">1.15</span><span class="scilabdefault">,</span><span class="scilabnumber">1.34</span><span class="scilabdefault">,</span><span class="scilabnumber">1.66</span><span class="scilabdefault">,</span><span class="scilabnumber">1.99</span><span class="scilabdefault">,</span><span class="scilabnumber">2.06</span><span class="scilabdefault">,</span><span class="scilabnumber">2.32</span><span class="scilabdefault">,</span><span class="scilabnumber">2.58</span><span class="scilabdefault">,</span><span class="scilabnumber">2.84</span> <span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+ <span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">100</span> <span class="scilabdefault">,</span><span class="scilabnumber">205</span><span class="scilabdefault">,</span> <span class="scilabnumber">249</span> <span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+
+ <span class="scilabcomment">// Lower Bound of variable</span>
+<span class="scilabid">lb</span> <span class="scilaboperator">=</span> <a class="scilabmacro" href="scilab://repmat">repmat</a><span class="scilabopenclose">(</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">8</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">// Upper Bound of variables</span>
+<span class="scilabid">ub</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><a class="scilabmacro" href="scilab://repmat">repmat</a><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">4</span><span class="scilabopenclose">)</span> <a class="scilabmacro" href="scilab://repmat">repmat</a><span class="scilabopenclose">(</span><span class="scilabconstants">%inf</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">4</span><span class="scilabopenclose">)</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+ <span class="scilabcomment">//Integer Constraints</span>
+ <span class="scilabid">intcon</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span> <span class="scilabnumber">2</span> <span class="scilabnumber">3</span> <span class="scilabnumber">4</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+ <span class="scilabcomment">// Calling Symphony</span>
+ <span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">f</span><span class="scilabdefault">,</span><span class="scilabid">status</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">symphonymat</span><span class="scilabopenclose">(</span><span class="scilabid">c</span><span class="scilabdefault">,</span><span class="scilabid">intcon</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span><span class="scilabid">lb</span><span class="scilabdefault">,</span><span class="scilabid">ub</span><span class="scilabopenclose">)</span>
+<span class="scilabcomment">// Press ENTER to continue</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Example</h3>
+ <p class="para">In this example, we proceed to add the linear equality constraints to the objective function.</p>
+
+ <p class="para"><span><img src='./_LaTeX_symphonymat.xml_4.png' style='position:relative;top:27px;width:581px;height:62px'/></span></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Example 3:</span>
+<span class="scilabcomment">// Reference: Westerberg, Carl-Henrik, Bengt Bjorklund, and Eskil Hultman. </span><span class="scilabcomment">&#0034;</span><span class="scilabcomment">An application of mixed integer</span>
+<span class="scilabcomment">// programming in a Swedish steel mill.</span><span class="scilabcomment">&#0034;</span><span class="scilabcomment"> Interfaces 7, no. 2 (1977): 39-43. Modified acc. to requirements.</span>
<span class="scilabid">c</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">350</span><span class="scilaboperator">*</span><span class="scilabnumber">5</span><span class="scilabdefault">,</span><span class="scilabnumber">330</span><span class="scilaboperator">*</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilabnumber">310</span><span class="scilaboperator">*</span><span class="scilabnumber">4</span><span class="scilabdefault">,</span><span class="scilabnumber">280</span><span class="scilaboperator">*</span><span class="scilabnumber">6</span><span class="scilabdefault">,</span><span class="scilabnumber">500</span><span class="scilabdefault">,</span><span class="scilabnumber">450</span><span class="scilabdefault">,</span><span class="scilabnumber">400</span><span class="scilabdefault">,</span><span class="scilabnumber">100</span><span class="scilabopenclose">]</span><span class="scilaboperator">&#0039;</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Inequality constraints</span>
+<span class="scilabid">A</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">6</span><span class="scilabdefault">,</span><span class="scilabnumber">4.25</span><span class="scilabdefault">,</span> <span class="scilabnumber">5.5</span><span class="scilabdefault">,</span> <span class="scilabnumber">7.75</span><span class="scilabdefault">,</span> <span class="scilabnumber">3</span><span class="scilabdefault">,</span> <span class="scilabnumber">3.25</span><span class="scilabdefault">,</span> <span class="scilabnumber">3.5</span><span class="scilabdefault">,</span><span class="scilabnumber">3.75</span><span class="scilabdefault">;</span>
+ <span class="scilabnumber">1.25</span><span class="scilabdefault">,</span><span class="scilabnumber">1.37</span><span class="scilabdefault">,</span><span class="scilabnumber">1.7</span><span class="scilabdefault">,</span><span class="scilabnumber">1.93</span><span class="scilabdefault">,</span><span class="scilabnumber">2.08</span><span class="scilabdefault">,</span><span class="scilabnumber">2.32</span><span class="scilabdefault">,</span><span class="scilabnumber">2.56</span><span class="scilabdefault">,</span><span class="scilabnumber">2.78</span><span class="scilabdefault">;</span>
+ <span class="scilabnumber">1.15</span><span class="scilabdefault">,</span><span class="scilabnumber">1.34</span><span class="scilabdefault">,</span><span class="scilabnumber">1.66</span><span class="scilabdefault">,</span><span class="scilabnumber">1.99</span><span class="scilabdefault">,</span><span class="scilabnumber">2.06</span><span class="scilabdefault">,</span><span class="scilabnumber">2.32</span><span class="scilabdefault">,</span><span class="scilabnumber">2.58</span><span class="scilabdefault">,</span><span class="scilabnumber">2.84</span> <span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">100</span> <span class="scilabdefault">,</span><span class="scilabnumber">205</span><span class="scilabdefault">,</span> <span class="scilabnumber">249</span> <span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
<span class="scilabcomment">// Lower Bound of variable</span>
<span class="scilabid">lb</span> <span class="scilaboperator">=</span> <a class="scilabmacro" href="scilab://repmat">repmat</a><span class="scilabopenclose">(</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">8</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
<span class="scilabcomment">// Upper Bound of variables</span>
<span class="scilabid">ub</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><a class="scilabmacro" href="scilab://repmat">repmat</a><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">4</span><span class="scilabopenclose">)</span> <a class="scilabmacro" href="scilab://repmat">repmat</a><span class="scilabopenclose">(</span><span class="scilabconstants">%inf</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">4</span><span class="scilabopenclose">)</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
-<span class="scilabcomment">// Constraint Matrix</span>
+<span class="scilabcomment">// Equality Constraints</span>
<span class="scilabid">Aeq</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">5</span><span class="scilabdefault">,</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilabnumber">4</span><span class="scilabdefault">,</span><span class="scilabnumber">6</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span>
<span class="scilabnumber">5</span><span class="scilaboperator">*</span><span class="scilabnumber">0.05</span><span class="scilabdefault">,</span><span class="scilabnumber">3</span><span class="scilaboperator">*</span><span class="scilabnumber">0.04</span><span class="scilabdefault">,</span><span class="scilabnumber">4</span><span class="scilaboperator">*</span><span class="scilabnumber">0.05</span><span class="scilabdefault">,</span><span class="scilabnumber">6</span><span class="scilaboperator">*</span><span class="scilabnumber">0.03</span><span class="scilabdefault">,</span><span class="scilabnumber">0.08</span><span class="scilabdefault">,</span><span class="scilabnumber">0.07</span><span class="scilabdefault">,</span><span class="scilabnumber">0.06</span><span class="scilabdefault">,</span><span class="scilabnumber">0.03</span><span class="scilabdefault">;</span>
<span class="scilabnumber">5</span><span class="scilaboperator">*</span><span class="scilabnumber">0.03</span><span class="scilabdefault">,</span><span class="scilabnumber">3</span><span class="scilaboperator">*</span><span class="scilabnumber">0.03</span><span class="scilabdefault">,</span><span class="scilabnumber">4</span><span class="scilaboperator">*</span><span class="scilabnumber">0.04</span><span class="scilabdefault">,</span><span class="scilabnumber">6</span><span class="scilaboperator">*</span><span class="scilabnumber">0.04</span><span class="scilabdefault">,</span><span class="scilabnumber">0.06</span><span class="scilabdefault">,</span><span class="scilabnumber">0.07</span><span class="scilabdefault">,</span><span class="scilabnumber">0.08</span><span class="scilabdefault">,</span><span class="scilabnumber">0.09</span><span class="scilabdefault">;</span><span class="scilabopenclose">]</span>
-<span class="scilabid">beq</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span> <span class="scilabnumber">25</span><span class="scilabdefault">,</span> <span class="scilabnumber">1.25</span><span class="scilabdefault">,</span> <span class="scilabnumber">1.25</span><span class="scilabopenclose">]</span>
+<span class="scilabid">beq</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span> <span class="scilabnumber">25</span><span class="scilabdefault">,</span> <span class="scilabnumber">1.25</span><span class="scilabdefault">,</span> <span class="scilabnumber">1.25</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+ <span class="scilabcomment">//Integer Constraints</span>
<span class="scilabid">intcon</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span> <span class="scilabnumber">2</span> <span class="scilabnumber">3</span> <span class="scilabnumber">4</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
<span class="scilabcomment">// Calling Symphony</span>
-<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">f</span><span class="scilabdefault">,</span><span class="scilabid">status</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">symphonymat</span><span class="scilabopenclose">(</span><span class="scilabid">c</span><span class="scilabdefault">,</span><span class="scilabid">intcon</span><span class="scilabdefault">,</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span><span class="scilabid">Aeq</span><span class="scilabdefault">,</span><span class="scilabid">beq</span><span class="scilabdefault">,</span><span class="scilabid">lb</span><span class="scilabdefault">,</span><span class="scilabid">ub</span><span class="scilabopenclose">)</span>
+<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">f</span><span class="scilabdefault">,</span><span class="scilabid">status</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">symphonymat</span><span class="scilabopenclose">(</span><span class="scilabid">c</span><span class="scilabdefault">,</span><span class="scilabid">intcon</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabid">Aeq</span><span class="scilabdefault">,</span><span class="scilabid">beq</span><span class="scilabdefault">,</span><span class="scilabid">lb</span><span class="scilabdefault">,</span><span class="scilabid">ub</span><span class="scilabopenclose">)</span>
<span class="scilabcomment">// Press ENTER to continue</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
-<div class="refsection"><h3 class="title">Examples</h3>
- <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// An advanced case where we set some options in symphony</span>
-<span class="scilabcomment">// This problem is taken from</span>
-<span class="scilabcomment">// P.C.Chu and J.E.Beasley</span>
-<span class="scilabcomment">// </span><span class="scilabcomment">&#0034;</span><span class="scilabcomment">A genetic algorithm for the multidimensional knapsack problem</span><span class="scilabcomment">&#0034;</span><span class="scilabcomment">,</span>
-<span class="scilabcomment">// Journal of Heuristics, vol. 4, 1998, pp63-86.</span>
-<span class="scilabcomment">// The problem to be solved is:</span>
-<span class="scilabcomment">// Max sum{j=1,...,n} p(j)x(j)</span>
-<span class="scilabcomment">// st sum{j=1,...,n} r(i,j)x(j) </span><span class="scilabcomment">&#0060;</span><span class="scilabcomment">= b(i) i=1,...,m</span>
-<span class="scilabcomment">// x(j)=0 or 1</span>
-<span class="scilabcomment">// The function to be maximize i.e. P(j)</span>
-<span class="scilabid">c</span> <span class="scilaboperator">=</span> <span class="scilaboperator">-</span><span class="scilabnumber">1</span><span class="scilaboperator">*</span><span class="scilabopenclose">[</span> <span class="scilabnumber">504</span> <span class="scilabnumber">803</span> <span class="scilabnumber">667</span> <span class="scilabnumber">1103</span> <span class="scilabnumber">834</span> <span class="scilabnumber">585</span> <span class="scilabnumber">811</span> <span class="scilabnumber">856</span> <span class="scilabnumber">690</span> <span class="scilabnumber">832</span> <span class="scilabnumber">846</span> <span class="scilabnumber">813</span> <span class="scilabnumber">868</span> <span class="scilabnumber">793</span> <span class="scilabspecial">..</span>
-<span class="scilabnumber">825</span> <span class="scilabnumber">1002</span> <span class="scilabnumber">860</span> <span class="scilabnumber">615</span> <span class="scilabnumber">540</span> <span class="scilabnumber">797</span> <span class="scilabnumber">616</span> <span class="scilabnumber">660</span> <span class="scilabnumber">707</span> <span class="scilabnumber">866</span> <span class="scilabnumber">647</span> <span class="scilabnumber">746</span> <span class="scilabnumber">1006</span> <span class="scilabnumber">608</span> <span class="scilabspecial">..</span>
-<span class="scilabnumber">877</span> <span class="scilabnumber">900</span> <span class="scilabnumber">573</span> <span class="scilabnumber">788</span> <span class="scilabnumber">484</span> <span class="scilabnumber">853</span> <span class="scilabnumber">942</span> <span class="scilabnumber">630</span> <span class="scilabnumber">591</span> <span class="scilabnumber">630</span> <span class="scilabnumber">640</span> <span class="scilabnumber">1169</span> <span class="scilabnumber">932</span> <span class="scilabnumber">1034</span> <span class="scilabspecial">..</span>
-<span class="scilabnumber">957</span> <span class="scilabnumber">798</span> <span class="scilabnumber">669</span> <span class="scilabnumber">625</span> <span class="scilabnumber">467</span> <span class="scilabnumber">1051</span> <span class="scilabnumber">552</span> <span class="scilabnumber">717</span> <span class="scilabnumber">654</span> <span class="scilabnumber">388</span> <span class="scilabnumber">559</span> <span class="scilabnumber">555</span> <span class="scilabnumber">1104</span> <span class="scilabnumber">783</span> <span class="scilabspecial">..</span>
-<span class="scilabnumber">959</span> <span class="scilabnumber">668</span> <span class="scilabnumber">507</span> <span class="scilabnumber">855</span> <span class="scilabnumber">986</span> <span class="scilabnumber">831</span> <span class="scilabnumber">821</span> <span class="scilabnumber">825</span> <span class="scilabnumber">868</span> <span class="scilabnumber">852</span> <span class="scilabnumber">832</span> <span class="scilabnumber">828</span> <span class="scilabnumber">799</span> <span class="scilabnumber">686</span> <span class="scilabspecial">..</span>
-<span class="scilabnumber">510</span> <span class="scilabnumber">671</span> <span class="scilabnumber">575</span> <span class="scilabnumber">740</span> <span class="scilabnumber">510</span> <span class="scilabnumber">675</span> <span class="scilabnumber">996</span> <span class="scilabnumber">636</span> <span class="scilabnumber">826</span> <span class="scilabnumber">1022</span> <span class="scilabnumber">1140</span> <span class="scilabnumber">654</span> <span class="scilabnumber">909</span> <span class="scilabnumber">799</span> <span class="scilabspecial">..</span>
-<span class="scilabnumber">1162</span> <span class="scilabnumber">653</span> <span class="scilabnumber">814</span> <span class="scilabnumber">625</span> <span class="scilabnumber">599</span> <span class="scilabnumber">476</span> <span class="scilabnumber">767</span> <span class="scilabnumber">954</span> <span class="scilabnumber">906</span> <span class="scilabnumber">904</span> <span class="scilabnumber">649</span> <span class="scilabnumber">873</span> <span class="scilabnumber">565</span> <span class="scilabnumber">853</span> <span class="scilabnumber">1008</span> <span class="scilabnumber">632</span><span class="scilabopenclose">]</span><span class="scilaboperator">&#0039;</span><span class="scilabdefault">;</span>
-<span class="scilabcomment">//Constraint Matrix</span>
-<span class="scilabid">A</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span> <span class="scilabcomment">//Constraint 1</span>
-<span class="scilabnumber">42</span> <span class="scilabnumber">41</span> <span class="scilabnumber">523</span> <span class="scilabnumber">215</span> <span class="scilabnumber">819</span> <span class="scilabnumber">551</span> <span class="scilabnumber">69</span> <span class="scilabnumber">193</span> <span class="scilabnumber">582</span> <span class="scilabnumber">375</span> <span class="scilabnumber">367</span> <span class="scilabnumber">478</span> <span class="scilabnumber">162</span> <span class="scilabnumber">898</span> <span class="scilabspecial">..</span>
-<span class="scilabnumber">550</span> <span class="scilabnumber">553</span> <span class="scilabnumber">298</span> <span class="scilabnumber">577</span> <span class="scilabnumber">493</span> <span class="scilabnumber">183</span> <span class="scilabnumber">260</span> <span class="scilabnumber">224</span> <span class="scilabnumber">852</span> <span class="scilabnumber">394</span> <span class="scilabnumber">958</span> <span class="scilabnumber">282</span> <span class="scilabnumber">402</span> <span class="scilabnumber">604</span> <span class="scilabspecial">..</span>
-<span class="scilabnumber">164</span> <span class="scilabnumber">308</span> <span class="scilabnumber">218</span> <span class="scilabnumber">61</span> <span class="scilabnumber">273</span> <span class="scilabnumber">772</span> <span class="scilabnumber">191</span> <span class="scilabnumber">117</span> <span class="scilabnumber">276</span> <span class="scilabnumber">877</span> <span class="scilabnumber">415</span> <span class="scilabnumber">873</span> <span class="scilabnumber">902</span> <span class="scilabnumber">465</span> <span class="scilabspecial">..</span>
-<span class="scilabnumber">320</span> <span class="scilabnumber">870</span> <span class="scilabnumber">244</span> <span class="scilabnumber">781</span> <span class="scilabnumber">86</span> <span class="scilabnumber">622</span> <span class="scilabnumber">665</span> <span class="scilabnumber">155</span> <span class="scilabnumber">680</span> <span class="scilabnumber">101</span> <span class="scilabnumber">665</span> <span class="scilabnumber">227</span> <span class="scilabnumber">597</span> <span class="scilabnumber">354</span> <span class="scilabspecial">..</span>
-<span class="scilabnumber">597</span> <span class="scilabnumber">79</span> <span class="scilabnumber">162</span> <span class="scilabnumber">998</span> <span class="scilabnumber">849</span> <span class="scilabnumber">136</span> <span class="scilabnumber">112</span> <span class="scilabnumber">751</span> <span class="scilabnumber">735</span> <span class="scilabnumber">884</span> <span class="scilabnumber">71</span> <span class="scilabnumber">449</span> <span class="scilabnumber">266</span> <span class="scilabnumber">420</span> <span class="scilabspecial">..</span>
-<span class="scilabnumber">797</span> <span class="scilabnumber">945</span> <span class="scilabnumber">746</span> <span class="scilabnumber">46</span> <span class="scilabnumber">44</span> <span class="scilabnumber">545</span> <span class="scilabnumber">882</span> <span class="scilabnumber">72</span> <span class="scilabnumber">383</span> <span class="scilabnumber">714</span> <span class="scilabnumber">987</span> <span class="scilabnumber">183</span> <span class="scilabnumber">731</span> <span class="scilabnumber">301</span> <span class="scilabspecial">..</span>
-<span class="scilabnumber">718</span> <span class="scilabnumber">91</span> <span class="scilabnumber">109</span> <span class="scilabnumber">567</span> <span class="scilabnumber">708</span> <span class="scilabnumber">507</span> <span class="scilabnumber">983</span> <span class="scilabnumber">808</span> <span class="scilabnumber">766</span> <span class="scilabnumber">615</span> <span class="scilabnumber">554</span> <span class="scilabnumber">282</span> <span class="scilabnumber">995</span> <span class="scilabnumber">946</span> <span class="scilabnumber">651</span> <span class="scilabnumber">298</span><span class="scilabdefault">;</span>
-<span class="scilabcomment">//Constraint 2</span>
-<span class="scilabnumber">509</span> <span class="scilabnumber">883</span> <span class="scilabnumber">229</span> <span class="scilabnumber">569</span> <span class="scilabnumber">706</span> <span class="scilabnumber">639</span> <span class="scilabnumber">114</span> <span class="scilabnumber">727</span> <span class="scilabnumber">491</span> <span class="scilabnumber">481</span> <span class="scilabnumber">681</span> <span class="scilabnumber">948</span> <span class="scilabnumber">687</span> <span class="scilabnumber">941</span> <span class="scilabspecial">..</span>
-<span class="scilabnumber">350</span> <span class="scilabnumber">253</span> <span class="scilabnumber">573</span> <span class="scilabnumber">40</span> <span class="scilabnumber">124</span> <span class="scilabnumber">384</span> <span class="scilabnumber">660</span> <span class="scilabnumber">951</span> <span class="scilabnumber">739</span> <span class="scilabnumber">329</span> <span class="scilabnumber">146</span> <span class="scilabnumber">593</span> <span class="scilabnumber">658</span> <span class="scilabnumber">816</span> <span class="scilabspecial">..</span>
-<span class="scilabnumber">638</span> <span class="scilabnumber">717</span> <span class="scilabnumber">779</span> <span class="scilabnumber">289</span> <span class="scilabnumber">430</span> <span class="scilabnumber">851</span> <span class="scilabnumber">937</span> <span class="scilabnumber">289</span> <span class="scilabnumber">159</span> <span class="scilabnumber">260</span> <span class="scilabnumber">930</span> <span class="scilabnumber">248</span> <span class="scilabnumber">656</span> <span class="scilabnumber">833</span> <span class="scilabspecial">..</span>
-<span class="scilabnumber">892</span> <span class="scilabnumber">60</span> <span class="scilabnumber">278</span> <span class="scilabnumber">741</span> <span class="scilabnumber">297</span> <span class="scilabnumber">967</span> <span class="scilabnumber">86</span> <span class="scilabnumber">249</span> <span class="scilabnumber">354</span> <span class="scilabnumber">614</span> <span class="scilabnumber">836</span> <span class="scilabnumber">290</span> <span class="scilabnumber">893</span> <span class="scilabnumber">857</span> <span class="scilabspecial">..</span>
-<span class="scilabnumber">158</span> <span class="scilabnumber">869</span> <span class="scilabnumber">206</span> <span class="scilabnumber">504</span> <span class="scilabnumber">799</span> <span class="scilabnumber">758</span> <span class="scilabnumber">431</span> <span class="scilabnumber">580</span> <span class="scilabnumber">780</span> <span class="scilabnumber">788</span> <span class="scilabnumber">583</span> <span class="scilabnumber">641</span> <span class="scilabnumber">32</span> <span class="scilabnumber">653</span> <span class="scilabspecial">..</span>
-<span class="scilabnumber">252</span> <span class="scilabnumber">709</span> <span class="scilabnumber">129</span> <span class="scilabnumber">368</span> <span class="scilabnumber">440</span> <span class="scilabnumber">314</span> <span class="scilabnumber">287</span> <span class="scilabnumber">854</span> <span class="scilabnumber">460</span> <span class="scilabnumber">594</span> <span class="scilabnumber">512</span> <span class="scilabnumber">239</span> <span class="scilabnumber">719</span> <span class="scilabnumber">751</span> <span class="scilabspecial">..</span>
-<span class="scilabnumber">708</span> <span class="scilabnumber">670</span> <span class="scilabnumber">269</span> <span class="scilabnumber">832</span> <span class="scilabnumber">137</span> <span class="scilabnumber">356</span> <span class="scilabnumber">960</span> <span class="scilabnumber">651</span> <span class="scilabnumber">398</span> <span class="scilabnumber">893</span> <span class="scilabnumber">407</span> <span class="scilabnumber">477</span> <span class="scilabnumber">552</span> <span class="scilabnumber">805</span> <span class="scilabnumber">881</span> <span class="scilabnumber">850</span><span class="scilabdefault">;</span>
-<span class="scilabcomment">//Constraint 3</span>
-<span class="scilabnumber">806</span> <span class="scilabnumber">361</span> <span class="scilabnumber">199</span> <span class="scilabnumber">781</span> <span class="scilabnumber">596</span> <span class="scilabnumber">669</span> <span class="scilabnumber">957</span> <span class="scilabnumber">358</span> <span class="scilabnumber">259</span> <span class="scilabnumber">888</span> <span class="scilabnumber">319</span> <span class="scilabnumber">751</span> <span class="scilabnumber">275</span> <span class="scilabnumber">177</span> <span class="scilabspecial">..</span>
-<span class="scilabnumber">883</span> <span class="scilabnumber">749</span> <span class="scilabnumber">229</span> <span class="scilabnumber">265</span> <span class="scilabnumber">282</span> <span class="scilabnumber">694</span> <span class="scilabnumber">819</span> <span class="scilabnumber">77</span> <span class="scilabnumber">190</span> <span class="scilabnumber">551</span> <span class="scilabnumber">140</span> <span class="scilabnumber">442</span> <span class="scilabnumber">867</span> <span class="scilabnumber">283</span> <span class="scilabspecial">..</span>
-<span class="scilabnumber">137</span> <span class="scilabnumber">359</span> <span class="scilabnumber">445</span> <span class="scilabnumber">58</span> <span class="scilabnumber">440</span> <span class="scilabnumber">192</span> <span class="scilabnumber">485</span> <span class="scilabnumber">744</span> <span class="scilabnumber">844</span> <span class="scilabnumber">969</span> <span class="scilabnumber">50</span> <span class="scilabnumber">833</span> <span class="scilabnumber">57</span> <span class="scilabnumber">877</span> <span class="scilabspecial">..</span>
-<span class="scilabnumber">482</span> <span class="scilabnumber">732</span> <span class="scilabnumber">968</span> <span class="scilabnumber">113</span> <span class="scilabnumber">486</span> <span class="scilabnumber">710</span> <span class="scilabnumber">439</span> <span class="scilabnumber">747</span> <span class="scilabnumber">174</span> <span class="scilabnumber">260</span> <span class="scilabnumber">877</span> <span class="scilabnumber">474</span> <span class="scilabnumber">841</span> <span class="scilabnumber">422</span> <span class="scilabspecial">..</span>
-<span class="scilabnumber">280</span> <span class="scilabnumber">684</span> <span class="scilabnumber">330</span> <span class="scilabnumber">910</span> <span class="scilabnumber">791</span> <span class="scilabnumber">322</span> <span class="scilabnumber">404</span> <span class="scilabnumber">403</span> <span class="scilabnumber">519</span> <span class="scilabnumber">148</span> <span class="scilabnumber">948</span> <span class="scilabnumber">414</span> <span class="scilabnumber">894</span> <span class="scilabnumber">147</span> <span class="scilabspecial">..</span>
-<span class="scilabnumber">73</span> <span class="scilabnumber">297</span> <span class="scilabnumber">97</span> <span class="scilabnumber">651</span> <span class="scilabnumber">380</span> <span class="scilabnumber">67</span> <span class="scilabnumber">582</span> <span class="scilabnumber">973</span> <span class="scilabnumber">143</span> <span class="scilabnumber">732</span> <span class="scilabnumber">624</span> <span class="scilabnumber">518</span> <span class="scilabnumber">847</span> <span class="scilabnumber">113</span> <span class="scilabspecial">..</span>
-<span class="scilabnumber">382</span> <span class="scilabnumber">97</span> <span class="scilabnumber">905</span> <span class="scilabnumber">398</span> <span class="scilabnumber">859</span> <span class="scilabnumber">4</span> <span class="scilabnumber">142</span> <span class="scilabnumber">110</span> <span class="scilabnumber">11</span> <span class="scilabnumber">213</span> <span class="scilabnumber">398</span> <span class="scilabnumber">173</span> <span class="scilabnumber">106</span> <span class="scilabnumber">331</span> <span class="scilabnumber">254</span> <span class="scilabnumber">447</span> <span class="scilabdefault">;</span>
-<span class="scilabcomment">//Constraint 4</span>
-<span class="scilabnumber">404</span> <span class="scilabnumber">197</span> <span class="scilabnumber">817</span> <span class="scilabnumber">1000</span> <span class="scilabnumber">44</span> <span class="scilabnumber">307</span> <span class="scilabnumber">39</span> <span class="scilabnumber">659</span> <span class="scilabnumber">46</span> <span class="scilabnumber">334</span> <span class="scilabnumber">448</span> <span class="scilabnumber">599</span> <span class="scilabnumber">931</span> <span class="scilabnumber">776</span> <span class="scilabspecial">..</span>
-<span class="scilabnumber">263</span> <span class="scilabnumber">980</span> <span class="scilabnumber">807</span> <span class="scilabnumber">378</span> <span class="scilabnumber">278</span> <span class="scilabnumber">841</span> <span class="scilabnumber">700</span> <span class="scilabnumber">210</span> <span class="scilabnumber">542</span> <span class="scilabnumber">636</span> <span class="scilabnumber">388</span> <span class="scilabnumber">129</span> <span class="scilabnumber">203</span> <span class="scilabnumber">110</span> <span class="scilabspecial">..</span>
-<span class="scilabnumber">817</span> <span class="scilabnumber">502</span> <span class="scilabnumber">657</span> <span class="scilabnumber">804</span> <span class="scilabnumber">662</span> <span class="scilabnumber">989</span> <span class="scilabnumber">585</span> <span class="scilabnumber">645</span> <span class="scilabnumber">113</span> <span class="scilabnumber">436</span> <span class="scilabnumber">610</span> <span class="scilabnumber">948</span> <span class="scilabnumber">919</span> <span class="scilabnumber">115</span> <span class="scilabspecial">..</span>
-<span class="scilabnumber">967</span> <span class="scilabnumber">13</span> <span class="scilabnumber">445</span> <span class="scilabnumber">449</span> <span class="scilabnumber">740</span> <span class="scilabnumber">592</span> <span class="scilabnumber">327</span> <span class="scilabnumber">167</span> <span class="scilabnumber">368</span> <span class="scilabnumber">335</span> <span class="scilabnumber">179</span> <span class="scilabnumber">909</span> <span class="scilabnumber">825</span> <span class="scilabnumber">614</span> <span class="scilabspecial">..</span>
-<span class="scilabnumber">987</span> <span class="scilabnumber">350</span> <span class="scilabnumber">179</span> <span class="scilabnumber">415</span> <span class="scilabnumber">821</span> <span class="scilabnumber">525</span> <span class="scilabnumber">774</span> <span class="scilabnumber">283</span> <span class="scilabnumber">427</span> <span class="scilabnumber">275</span> <span class="scilabnumber">659</span> <span class="scilabnumber">392</span> <span class="scilabnumber">73</span> <span class="scilabnumber">896</span> <span class="scilabspecial">..</span>
-<span class="scilabnumber">68</span> <span class="scilabnumber">982</span> <span class="scilabnumber">697</span> <span class="scilabnumber">421</span> <span class="scilabnumber">246</span> <span class="scilabnumber">672</span> <span class="scilabnumber">649</span> <span class="scilabnumber">731</span> <span class="scilabnumber">191</span> <span class="scilabnumber">514</span> <span class="scilabnumber">983</span> <span class="scilabnumber">886</span> <span class="scilabnumber">95</span> <span class="scilabnumber">846</span> <span class="scilabspecial">..</span>
-<span class="scilabnumber">689</span> <span class="scilabnumber">206</span> <span class="scilabnumber">417</span> <span class="scilabnumber">14</span> <span class="scilabnumber">735</span> <span class="scilabnumber">267</span> <span class="scilabnumber">822</span> <span class="scilabnumber">977</span> <span class="scilabnumber">302</span> <span class="scilabnumber">687</span> <span class="scilabnumber">118</span> <span class="scilabnumber">990</span> <span class="scilabnumber">323</span> <span class="scilabnumber">993</span> <span class="scilabnumber">525</span> <span class="scilabnumber">322</span><span class="scilabdefault">;</span>
-<span class="scilabcomment">//Constrain 5</span>
-<span class="scilabnumber">475</span> <span class="scilabnumber">36</span> <span class="scilabnumber">287</span> <span class="scilabnumber">577</span> <span class="scilabnumber">45</span> <span class="scilabnumber">700</span> <span class="scilabnumber">803</span> <span class="scilabnumber">654</span> <span class="scilabnumber">196</span> <span class="scilabnumber">844</span> <span class="scilabnumber">657</span> <span class="scilabnumber">387</span> <span class="scilabnumber">518</span> <span class="scilabnumber">143</span> <span class="scilabspecial">..</span>
-<span class="scilabnumber">515</span> <span class="scilabnumber">335</span> <span class="scilabnumber">942</span> <span class="scilabnumber">701</span> <span class="scilabnumber">332</span> <span class="scilabnumber">803</span> <span class="scilabnumber">265</span> <span class="scilabnumber">922</span> <span class="scilabnumber">908</span> <span class="scilabnumber">139</span> <span class="scilabnumber">995</span> <span class="scilabnumber">845</span> <span class="scilabnumber">487</span> <span class="scilabnumber">100</span> <span class="scilabspecial">..</span>
-<span class="scilabnumber">447</span> <span class="scilabnumber">653</span> <span class="scilabnumber">649</span> <span class="scilabnumber">738</span> <span class="scilabnumber">424</span> <span class="scilabnumber">475</span> <span class="scilabnumber">425</span> <span class="scilabnumber">926</span> <span class="scilabnumber">795</span> <span class="scilabnumber">47</span> <span class="scilabnumber">136</span> <span class="scilabnumber">801</span> <span class="scilabnumber">904</span> <span class="scilabnumber">740</span> <span class="scilabspecial">..</span>
-<span class="scilabnumber">768</span> <span class="scilabnumber">460</span> <span class="scilabnumber">76</span> <span class="scilabnumber">660</span> <span class="scilabnumber">500</span> <span class="scilabnumber">915</span> <span class="scilabnumber">897</span> <span class="scilabnumber">25</span> <span class="scilabnumber">716</span> <span class="scilabnumber">557</span> <span class="scilabnumber">72</span> <span class="scilabnumber">696</span> <span class="scilabnumber">653</span> <span class="scilabnumber">933</span> <span class="scilabspecial">..</span>
-<span class="scilabnumber">420</span> <span class="scilabnumber">582</span> <span class="scilabnumber">810</span> <span class="scilabnumber">861</span> <span class="scilabnumber">758</span> <span class="scilabnumber">647</span> <span class="scilabnumber">237</span> <span class="scilabnumber">631</span> <span class="scilabnumber">271</span> <span class="scilabnumber">91</span> <span class="scilabnumber">75</span> <span class="scilabnumber">756</span> <span class="scilabnumber">409</span> <span class="scilabnumber">440</span> <span class="scilabspecial">..</span>
-<span class="scilabnumber">483</span> <span class="scilabnumber">336</span> <span class="scilabnumber">765</span> <span class="scilabnumber">637</span> <span class="scilabnumber">981</span> <span class="scilabnumber">980</span> <span class="scilabnumber">202</span> <span class="scilabnumber">35</span> <span class="scilabnumber">594</span> <span class="scilabnumber">689</span> <span class="scilabnumber">602</span> <span class="scilabnumber">76</span> <span class="scilabnumber">767</span> <span class="scilabnumber">693</span> <span class="scilabspecial">..</span>
-<span class="scilabnumber">893</span> <span class="scilabnumber">160</span> <span class="scilabnumber">785</span> <span class="scilabnumber">311</span> <span class="scilabnumber">417</span> <span class="scilabnumber">748</span> <span class="scilabnumber">375</span> <span class="scilabnumber">362</span> <span class="scilabnumber">617</span> <span class="scilabnumber">553</span> <span class="scilabnumber">474</span> <span class="scilabnumber">915</span> <span class="scilabnumber">457</span> <span class="scilabnumber">261</span> <span class="scilabnumber">350</span> <span class="scilabnumber">635</span> <span class="scilabdefault">;</span>
-<span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
-<span class="scilabid">nbVar</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://size">size</a><span class="scilabopenclose">(</span><span class="scilabid">c</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span>
-<span class="scilabid">b</span><span class="scilaboperator">=</span><span class="scilabopenclose">[</span><span class="scilabnumber">11927</span> <span class="scilabnumber">13727</span> <span class="scilabnumber">11551</span> <span class="scilabnumber">13056</span> <span class="scilabnumber">13460</span> <span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
-<span class="scilabcomment">// Lower Bound of variables</span>
-<span class="scilabid">lb</span> <span class="scilaboperator">=</span> <a class="scilabmacro" href="scilab://repmat">repmat</a><span class="scilabopenclose">(</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabid">nbVar</span><span class="scilabopenclose">)</span>
+<div class="refsection"><h3 class="title">Example</h3>
+ <p class="para">In this example, we further enhance the functionality of symphonymat by setting input options. This provides us with the ability to control the solver parameters such as the maximum number of solver iterations and the max. CPU time allowed for the computation.</p>
+
+ <p class="para"></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Example 4:</span>
+<span class="scilabcomment">// Reference: Westerberg, Carl-Henrik, Bengt Bjorklund, and Eskil Hultman. </span><span class="scilabcomment">&#0034;</span><span class="scilabcomment">An application of mixed integer</span>
+<span class="scilabcomment">// programming in a Swedish steel mill.</span><span class="scilabcomment">&#0034;</span><span class="scilabcomment"> Interfaces 7, no. 2 (1977): 39-43. Modified acc. to requirements.</span>
+<span class="scilabid">c</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">350</span><span class="scilaboperator">*</span><span class="scilabnumber">5</span><span class="scilabdefault">,</span><span class="scilabnumber">330</span><span class="scilaboperator">*</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilabnumber">310</span><span class="scilaboperator">*</span><span class="scilabnumber">4</span><span class="scilabdefault">,</span><span class="scilabnumber">280</span><span class="scilaboperator">*</span><span class="scilabnumber">6</span><span class="scilabdefault">,</span><span class="scilabnumber">500</span><span class="scilabdefault">,</span><span class="scilabnumber">450</span><span class="scilabdefault">,</span><span class="scilabnumber">400</span><span class="scilabdefault">,</span><span class="scilabnumber">100</span><span class="scilabopenclose">]</span><span class="scilaboperator">&#0039;</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Inequality constraints</span>
+<span class="scilabid">A</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">6</span><span class="scilabdefault">,</span><span class="scilabnumber">4.25</span><span class="scilabdefault">,</span> <span class="scilabnumber">5.5</span><span class="scilabdefault">,</span> <span class="scilabnumber">7.75</span><span class="scilabdefault">,</span> <span class="scilabnumber">3</span><span class="scilabdefault">,</span> <span class="scilabnumber">3.25</span><span class="scilabdefault">,</span> <span class="scilabnumber">3.5</span><span class="scilabdefault">,</span><span class="scilabnumber">3.75</span><span class="scilabdefault">;</span>
+ <span class="scilabnumber">1.25</span><span class="scilabdefault">,</span><span class="scilabnumber">1.37</span><span class="scilabdefault">,</span><span class="scilabnumber">1.7</span><span class="scilabdefault">,</span><span class="scilabnumber">1.93</span><span class="scilabdefault">,</span><span class="scilabnumber">2.08</span><span class="scilabdefault">,</span><span class="scilabnumber">2.32</span><span class="scilabdefault">,</span><span class="scilabnumber">2.56</span><span class="scilabdefault">,</span><span class="scilabnumber">2.78</span><span class="scilabdefault">;</span>
+ <span class="scilabnumber">1.15</span><span class="scilabdefault">,</span><span class="scilabnumber">1.34</span><span class="scilabdefault">,</span><span class="scilabnumber">1.66</span><span class="scilabdefault">,</span><span class="scilabnumber">1.99</span><span class="scilabdefault">,</span><span class="scilabnumber">2.06</span><span class="scilabdefault">,</span><span class="scilabnumber">2.32</span><span class="scilabdefault">,</span><span class="scilabnumber">2.58</span><span class="scilabdefault">,</span><span class="scilabnumber">2.84</span> <span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">100</span> <span class="scilabdefault">,</span><span class="scilabnumber">205</span><span class="scilabdefault">,</span> <span class="scilabnumber">249</span> <span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">// Lower Bound of variable</span>
+<span class="scilabid">lb</span> <span class="scilaboperator">=</span> <a class="scilabmacro" href="scilab://repmat">repmat</a><span class="scilabopenclose">(</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">8</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
<span class="scilabcomment">// Upper Bound of variables</span>
-<span class="scilabid">ub</span> <span class="scilaboperator">=</span> <a class="scilabmacro" href="scilab://repmat">repmat</a><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabid">nbVar</span><span class="scilabopenclose">)</span>
-<span class="scilabcomment">// Lower Bound of constrains</span>
-<span class="scilabid">intcon</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
-<span class="scilabskeyword">for</span> <span class="scilabid">i</span> <span class="scilaboperator">=</span> <span class="scilabnumber">1</span><span class="scilabspecial">:</span><span class="scilabid">nbVar</span>
-<span class="scilabid">intcon</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabid">intcon</span> <span class="scilabid">i</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
-<span class="scilabskeyword">end</span>
+<span class="scilabid">ub</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><a class="scilabmacro" href="scilab://repmat">repmat</a><span class="scilabopenclose">(</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">4</span><span class="scilabopenclose">)</span> <a class="scilabmacro" href="scilab://repmat">repmat</a><span class="scilabopenclose">(</span><span class="scilabconstants">%inf</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">4</span><span class="scilabopenclose">)</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">// Equality Constraints</span>
+<span class="scilabid">Aeq</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">5</span><span class="scilabdefault">,</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilabnumber">4</span><span class="scilabdefault">,</span><span class="scilabnumber">6</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">5</span><span class="scilaboperator">*</span><span class="scilabnumber">0.05</span><span class="scilabdefault">,</span><span class="scilabnumber">3</span><span class="scilaboperator">*</span><span class="scilabnumber">0.04</span><span class="scilabdefault">,</span><span class="scilabnumber">4</span><span class="scilaboperator">*</span><span class="scilabnumber">0.05</span><span class="scilabdefault">,</span><span class="scilabnumber">6</span><span class="scilaboperator">*</span><span class="scilabnumber">0.03</span><span class="scilabdefault">,</span><span class="scilabnumber">0.08</span><span class="scilabdefault">,</span><span class="scilabnumber">0.07</span><span class="scilabdefault">,</span><span class="scilabnumber">0.06</span><span class="scilabdefault">,</span><span class="scilabnumber">0.03</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">5</span><span class="scilaboperator">*</span><span class="scilabnumber">0.03</span><span class="scilabdefault">,</span><span class="scilabnumber">3</span><span class="scilaboperator">*</span><span class="scilabnumber">0.03</span><span class="scilabdefault">,</span><span class="scilabnumber">4</span><span class="scilaboperator">*</span><span class="scilabnumber">0.04</span><span class="scilabdefault">,</span><span class="scilabnumber">6</span><span class="scilaboperator">*</span><span class="scilabnumber">0.04</span><span class="scilabdefault">,</span><span class="scilabnumber">0.06</span><span class="scilabdefault">,</span><span class="scilabnumber">0.07</span><span class="scilabdefault">,</span><span class="scilabnumber">0.08</span><span class="scilabdefault">,</span><span class="scilabnumber">0.09</span><span class="scilabdefault">;</span><span class="scilabopenclose">]</span>
+<span class="scilabid">beq</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span> <span class="scilabnumber">25</span><span class="scilabdefault">,</span> <span class="scilabnumber">1.25</span><span class="scilabdefault">,</span> <span class="scilabnumber">1.25</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+ <span class="scilabcomment">//Integer Constraints</span>
+<span class="scilabid">intcon</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span> <span class="scilabnumber">2</span> <span class="scilabnumber">3</span> <span class="scilabnumber">4</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Options</span>
<span class="scilabid">options</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">time_limit</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabnumber">25</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
-<span class="scilabcomment">// The expected solution :</span>
-<span class="scilabcomment">// Output variables</span>
-<span class="scilabid">xopt</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">0</span> <span class="scilabnumber">1</span> <span class="scilabnumber">1</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">1</span> <span class="scilabnumber">0</span> <span class="scilabnumber">1</span> <span class="scilabnumber">0</span> <span class="scilabnumber">1</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">1</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">1</span> <span class="scilabnumber">0</span> <span class="scilabnumber">1</span> <span class="scilabnumber">1</span> <span class="scilabnumber">0</span> <span class="scilabnumber">1</span> <span class="scilabnumber">1</span> <span class="scilabnumber">0</span> <span class="scilabnumber">1</span> <span class="scilabspecial">..</span>
-<span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">1</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">1</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">1</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">1</span> <span class="scilabnumber">1</span> <span class="scilabspecial">..</span>
-<span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">1</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">1</span> <span class="scilabnumber">0</span> <span class="scilabnumber">1</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">1</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">1</span> <span class="scilabnumber">0</span> <span class="scilabnumber">1</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">1</span> <span class="scilabnumber">1</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">1</span> <span class="scilabnumber">1</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">1</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">1</span> <span class="scilabnumber">0</span><span class="scilabopenclose">]</span>
-<span class="scilabcomment">// Optimal value</span>
-<span class="scilabid">fopt</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span> <span class="scilaboperator">-</span><span class="scilabnumber">24381</span> <span class="scilabopenclose">]</span>
<span class="scilabcomment">// Calling Symphony</span>
-<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">f</span><span class="scilabdefault">,</span><span class="scilabid">status</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">symphonymat</span><span class="scilabopenclose">(</span><span class="scilabid">c</span><span class="scilabdefault">,</span><span class="scilabid">intcon</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span><span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">,</span><span class="scilabid">lb</span><span class="scilabdefault">,</span><span class="scilabid">ub</span><span class="scilabdefault">,</span><span class="scilabid">options</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">f</span><span class="scilabdefault">,</span><span class="scilabid">status</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">symphonymat</span><span class="scilabopenclose">(</span><span class="scilabid">c</span><span class="scilabdefault">,</span><span class="scilabid">intcon</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabid">Aeq</span><span class="scilabdefault">,</span><span class="scilabid">beq</span><span class="scilabdefault">,</span><span class="scilabid">lb</span><span class="scilabdefault">,</span><span class="scilabid">ub</span><span class="scilabopenclose">)</span>
+<span class="scilabcomment">// Press ENTER to continue</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Example</h3>
+ <p class="para">Primal Infeasible Problems: Find x in R^8 such that it minimizes:</p>
+ <p class="para">Find x in R^8 such that it minimizes:</p>
+ <p class="para"><span><img src='./_LaTeX_symphonymat.xml_5.png' style='position:relative;top:12px;width:666px;height:146px'/></span></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Example 5:</span>
+<span class="scilabcomment">// Reference: Westerberg, Carl-Henrik, Bengt Bjorklund, and Eskil Hultman. </span><span class="scilabcomment">&#0034;</span><span class="scilabcomment">An application of mixed integer </span>
+<span class="scilabcomment">// programming in a Swedish steel mill.</span><span class="scilabcomment">&#0034;</span><span class="scilabcomment"> Interfaces 7, no. 2 (1977): 39-43. Modified acc. to requirements.</span>
+<span class="scilabid">c</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">350</span><span class="scilaboperator">*</span><span class="scilabnumber">5</span><span class="scilabdefault">,</span><span class="scilabnumber">330</span><span class="scilaboperator">*</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilabnumber">310</span><span class="scilaboperator">*</span><span class="scilabnumber">4</span><span class="scilabdefault">,</span><span class="scilabnumber">280</span><span class="scilaboperator">*</span><span class="scilabnumber">6</span><span class="scilabdefault">,</span><span class="scilabnumber">500</span><span class="scilabdefault">,</span><span class="scilabnumber">450</span><span class="scilabdefault">,</span><span class="scilabnumber">400</span><span class="scilabdefault">,</span><span class="scilabnumber">100</span><span class="scilabopenclose">]</span><span class="scilaboperator">&#0039;</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Inequality constraints </span>
+<span class="scilabid">A</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">6</span><span class="scilabdefault">,</span><span class="scilabnumber">4.25</span><span class="scilabdefault">,</span> <span class="scilabnumber">5.5</span><span class="scilabdefault">,</span> <span class="scilabnumber">7.75</span><span class="scilabdefault">,</span> <span class="scilabnumber">3</span><span class="scilabdefault">,</span> <span class="scilabnumber">3.25</span><span class="scilabdefault">,</span> <span class="scilabnumber">3.5</span><span class="scilabdefault">,</span><span class="scilabnumber">3.75</span><span class="scilabdefault">;</span>
+ <span class="scilabnumber">1.25</span><span class="scilabdefault">,</span><span class="scilabnumber">1.37</span><span class="scilabdefault">,</span><span class="scilabnumber">1.7</span><span class="scilabdefault">,</span><span class="scilabnumber">1.93</span><span class="scilabdefault">,</span><span class="scilabnumber">2.08</span><span class="scilabdefault">,</span><span class="scilabnumber">2.32</span><span class="scilabdefault">,</span><span class="scilabnumber">2.56</span><span class="scilabdefault">,</span><span class="scilabnumber">2.78</span><span class="scilabdefault">;</span>
+ <span class="scilabnumber">1.15</span><span class="scilabdefault">,</span><span class="scilabnumber">1.34</span><span class="scilabdefault">,</span><span class="scilabnumber">1.66</span><span class="scilabdefault">,</span><span class="scilabnumber">1.99</span><span class="scilabdefault">,</span><span class="scilabnumber">2.06</span><span class="scilabdefault">,</span><span class="scilabnumber">2.32</span><span class="scilabdefault">,</span><span class="scilabnumber">2.58</span><span class="scilabdefault">,</span><span class="scilabnumber">2.84</span> <span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">26.333</span> <span class="scilabdefault">,</span><span class="scilabnumber">3.916</span> <span class="scilabdefault">,</span><span class="scilabnumber">5.249</span> <span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+ <span class="scilabcomment">//Integer Constraints</span>
+<span class="scilabid">intcon</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span> <span class="scilabnumber">2</span> <span class="scilabnumber">3</span> <span class="scilabnumber">4</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+
+<span class="scilabcomment">// Calling Symphony</span>
+
+<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">f</span><span class="scilabdefault">,</span><span class="scilabid">status</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">symphonymat</span><span class="scilabopenclose">(</span><span class="scilabid">c</span><span class="scilabdefault">,</span><span class="scilabid">intcon</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabopenclose">)</span>
+<span class="scilabcomment">// Press ENTER to continue</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Example</h3>
+ <p class="para">Unbounded Problems. Find x in R^8 such that it minimizes:</p>
+ <p class="para"><span><img src='./_LaTeX_symphonymat.xml_6.png' style='position:relative;top:12px;width:650px;height:146px'/></span></p>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Example 6:</span>
+<span class="scilabcomment">// Reference: Westerberg, Carl-Henrik, Bengt Bjorklund, and Eskil Hultman. </span><span class="scilabcomment">&#0034;</span><span class="scilabcomment">An application of mixed integer</span>
+<span class="scilabcomment">// programming in a Swedish steel mill.</span><span class="scilabcomment">&#0034;</span><span class="scilabcomment"> Interfaces 7, no. 2 (1977): 39-43. Modified acc. to requirements.</span>
+<span class="scilabid">c</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">350</span><span class="scilaboperator">*</span><span class="scilabnumber">5</span><span class="scilabdefault">,</span><span class="scilabnumber">330</span><span class="scilaboperator">*</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilabnumber">310</span><span class="scilaboperator">*</span><span class="scilabnumber">4</span><span class="scilabdefault">,</span><span class="scilabnumber">280</span><span class="scilaboperator">*</span><span class="scilabnumber">6</span><span class="scilabdefault">,</span><span class="scilabnumber">500</span><span class="scilabdefault">,</span><span class="scilabnumber">450</span><span class="scilabdefault">,</span><span class="scilabnumber">400</span><span class="scilabdefault">,</span><span class="scilabnumber">100</span><span class="scilabopenclose">]</span><span class="scilaboperator">&#0039;</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">//Inequality constraints</span>
+<span class="scilabid">A</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">// Equality Constraints</span>
+<span class="scilabid">Aeq</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">5</span><span class="scilabdefault">,</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilabnumber">4</span><span class="scilabdefault">,</span><span class="scilabnumber">6</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">5</span><span class="scilaboperator">*</span><span class="scilabnumber">0.05</span><span class="scilabdefault">,</span><span class="scilabnumber">3</span><span class="scilaboperator">*</span><span class="scilabnumber">0.04</span><span class="scilabdefault">,</span><span class="scilabnumber">4</span><span class="scilaboperator">*</span><span class="scilabnumber">0.05</span><span class="scilabdefault">,</span><span class="scilabnumber">6</span><span class="scilaboperator">*</span><span class="scilabnumber">0.03</span><span class="scilabdefault">,</span><span class="scilabnumber">0.08</span><span class="scilabdefault">,</span><span class="scilabnumber">0.07</span><span class="scilabdefault">,</span><span class="scilabnumber">0.06</span><span class="scilabdefault">,</span><span class="scilabnumber">0.03</span><span class="scilabdefault">;</span>
+<span class="scilabnumber">5</span><span class="scilaboperator">*</span><span class="scilabnumber">0.03</span><span class="scilabdefault">,</span><span class="scilabnumber">3</span><span class="scilaboperator">*</span><span class="scilabnumber">0.03</span><span class="scilabdefault">,</span><span class="scilabnumber">4</span><span class="scilaboperator">*</span><span class="scilabnumber">0.04</span><span class="scilabdefault">,</span><span class="scilabnumber">6</span><span class="scilaboperator">*</span><span class="scilabnumber">0.04</span><span class="scilabdefault">,</span><span class="scilabnumber">0.06</span><span class="scilabdefault">,</span><span class="scilabnumber">0.07</span><span class="scilabdefault">,</span><span class="scilabnumber">0.08</span><span class="scilabdefault">,</span><span class="scilabnumber">0.09</span><span class="scilabdefault">;</span><span class="scilabopenclose">]</span>
+<span class="scilabid">beq</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span> <span class="scilabnumber">25</span><span class="scilabdefault">,</span> <span class="scilabnumber">1.25</span><span class="scilabdefault">,</span> <span class="scilabnumber">1.25</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+ <span class="scilabcomment">//Integer Constraints</span>
+<span class="scilabid">intcon</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</span> <span class="scilabnumber">2</span> <span class="scilabnumber">3</span> <span class="scilabnumber">4</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabcomment">// Calling Symphony</span>
+<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span><span class="scilabid">f</span><span class="scilabdefault">,</span><span class="scilabid">status</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">symphonymat</span><span class="scilabopenclose">(</span><span class="scilabid">c</span><span class="scilabdefault">,</span><span class="scilabid">intcon</span><span class="scilabdefault">,</span><span class="scilabid">A</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabid">Aeq</span><span class="scilabdefault">,</span><span class="scilabid">beq</span><span class="scilabopenclose">)</span>
+<span class="scilabcomment">// Press ENTER to continue</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+
<div class="refsection"><h3 class="title">Authors</h3>
<ul class="itemizedlist"><li class="member">Keyur Joshi, Saikiran, Iswarya, Harpreet Singh</li></ul></div>
@@ -199,11 +255,11 @@ It has type &#0034;struct&#0034; and contains the following fields.
</td>
<td width="40%" class="center">
- <span class="top"><a href="section_031bbc67ce78762a40093bfdff4eaa3b.html">FOSSEE Optimization Toolbox</a></span>
+ <span class="top"><a href="section_44e1f57c5225357b5fe53cb5fad967e9.html">FOSSEE Optimization Toolbox</a></span>
</td>
<td width="30%" class="next">
- <span class="next"><a href="section_316c7f5a42ba69316753082a567f2a1a.html">Symphony Native Functions &gt;&gt;</a></span>
+ <span class="next"><a href="section_5fc7ef02a133896efbd190355314d3fc.html">Symphony Native Functions &gt;&gt;</a></span>
</td>
</tr></table>
diff --git a/help/en_US/symphony.xml b/help/en_US/symphony.xml
index 692d4ad..371e60e 100644
--- a/help/en_US/symphony.xml
+++ b/help/en_US/symphony.xml
@@ -33,85 +33,168 @@
</refsynopsisdiv>
<refsection>
- <title>Parameters</title>
+ <title>Input Parameters</title>
<variablelist>
<varlistentry><term>nbVar :</term>
- <listitem><para> a double, number of variables.</para></listitem></varlistentry>
+ <listitem><para> A double, representing the number of variables.</para></listitem></varlistentry>
<varlistentry><term>nbCon :</term>
- <listitem><para> a double, number of constraints.</para></listitem></varlistentry>
+ <listitem><para> A double, representing the number of constraints.</para></listitem></varlistentry>
<varlistentry><term>c :</term>
- <listitem><para> a vector of double, represents coefficients of the variables in the objective.</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, representing the coefficients of the variables in the objective.</para></listitem></varlistentry>
<varlistentry><term>isInt :</term>
- <listitem><para> a vector of boolean, represents wether a variable is constrained to be an integer.</para></listitem></varlistentry>
+ <listitem><para> A vector of booleans, representing whether a variable is constrained to be an integer.</para></listitem></varlistentry>
<varlistentry><term>lb :</term>
- <listitem><para> a vector of double, represents lower bounds of the variables.</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, containing the lower bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables.</para></listitem></varlistentry>
<varlistentry><term>ub :</term>
- <listitem><para> a vector of double, represents upper bounds of the variables.</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, containing the upper bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables.</para></listitem></varlistentry>
<varlistentry><term>A :</term>
- <listitem><para> a matrix of double, represents matrix representing the constraint matrix conLB ≤ A⋅x ≤ conUB.</para></listitem></varlistentry>
+ <listitem><para> A matrix of double, representing the constraint matrix in conLB ≤ A⋅x ≤ conUB.</para></listitem></varlistentry>
<varlistentry><term>conLB :</term>
- <listitem><para> a vector of double, represents lower bounds of the constraints conLB ≤ A⋅x ≤ conUB.</para></listitem></varlistentry>
+ <listitem><para> A vector of double, representing the lower bounds of the constraints conLB ≤ A⋅x ≤ conUB.</para></listitem></varlistentry>
<varlistentry><term>conUB :</term>
- <listitem><para> a vector of double, represents upper bounds of the constraints conLB ≤ A⋅x ≤ conUB.</para></listitem></varlistentry>
+ <listitem><para> A vector of double, representing the upper bounds of the constraints conLB ≤ A⋅x ≤ conUB.</para></listitem></varlistentry>
<varlistentry><term>objSense :</term>
<listitem><para> The sense (maximization/minimization) of the objective. Use 1(sym_minimize ) or -1 (sym_maximize) here.</para></listitem></varlistentry>
<varlistentry><term>options :</term>
- <listitem><para> a list containing the parameters to be set.</para></listitem></varlistentry>
+ <listitem><para> A list, containing the option for user to specify. See below for details.</para></listitem></varlistentry>
+ </variablelist>
+</refsection>
+<refsection>
+<title> Outputs</title>
+ <variablelist>
<varlistentry><term>xopt :</term>
- <listitem><para> a vector of double, the computed solution of the optimization problem.</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, containing the computed solution of the optimization problem.</para></listitem></varlistentry>
<varlistentry><term>fopt :</term>
- <listitem><para> a double, the value of the function at x.</para></listitem></varlistentry>
- <varlistentry><term>status :</term>
- <listitem><para> status flag returned from symphony.See below for details.</para></listitem></varlistentry>
+ <listitem><para> A double, containing the value of the function at x.</para></listitem></varlistentry>
+ <varlistentry><term>status :</term>
+ <listitem><para> The status flag returned from symphony. See below for details.</para></listitem></varlistentry>
<varlistentry><term>output :</term>
- <listitem><para> The output data structure contains detailed information about the optimization process. See below for details.</para></listitem></varlistentry>
+ <listitem><para> A structure, containing the information about the optimization. See below for details.</para></listitem></varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
-Search the minimum or maximum of a constrained mixed integer linear programming optimization problem specified by :
+Search the minimum or maximum of a constrained mixed integer linear programming optimization problem specified by:
</para>
- <para>
+ <para>
<latex>
\begin{eqnarray}
-&amp;\mbox{min}_{x}
-&amp; f^T⋅x \\
-&amp; \text{subject to} &amp; conLB \leq A⋅x \leq conUB \\
-&amp; &amp; lb \leq x \leq ub \\
-&amp; &amp; x_i \in \!\, \mathbb{Z}, i \in \!\, I
+\mbox{min}_{x}\ f^{T} \boldsymbol{\cdot} x \\
+\text{Subjected to: }\\
+ conLB \leq A \boldsymbol{\cdot} x \leq conUB \\
+lb \leq x \leq ub \\
+x_{i} \in \!\, \mathbb{Z}, i \in \!\, I
\end{eqnarray}
-</latex>
+ </latex>
+</para>
+ <para>
+The routine calls SYMPHONY, a solver for mixed-integer linear programs written in C, for the actual computation.
</para>
+ <para>
+ <title>Options</title>
+The options should be defined as type "list" and consist of over a hundred fields, the most important ones of which have been detailed here:
+</para>
<para>
-The routine calls SYMPHONY written in C by gateway files for the actual computation.
+<itemizedlist>
+ <listitem>node_limit : A scalar, specifying the max. number of nodes allowed to be analyzed during the solution.</listitem>
+ <listitem>time_limit : A scalar, specifying the maximum amount of CPU time in seconds that the solver should take.</listitem>
+ <listitem>gap_limit : A scalar, representing the target gap limit allowed for solution.</listitem>
+<listitem>granularity : A scalar, “the minimum difference between two distinct objective function values</listitem>
+
+<listitem>node_selection_rule : A Scalar, specifying the maximum number of iterations that the solver should take.</listitem>
+<listitem>prep_level : An integer, that determines the level of preprocessing that should be done on the current MILP instance.</listitem>
+<listitem>do_branch_and_cut : A boolean, representing the decision whether to run the branch and cut algorithm or not. </listitem>
+</itemizedlist>
</para>
<para>
-The status allows to know the status of the optimization which is given back by Ipopt.
+The status allows the user to know the status of the optimization which is returned by Symphony. The values it can take and what they indicate is described below:
<itemizedlist>
-<listitem>status=227 : Optimal Solution Found </listitem>
-<listitem>status=228 : Maximum CPU Time exceeded.</listitem>
-<listitem>status=229 : Maximum Number of Node Limit Exceeded.</listitem>
-<listitem>status=230 : Maximum Number of Iterations Limit Exceeded.</listitem>
+<listitem>227 : Optimal Solution Found </listitem>
+<listitem>228 : Maximum CPU Time exceeded.</listitem>
+<listitem>229 : Maximum Number of Node Limit Exceeded.</listitem>
+<listitem>230 : Maximum Number of Iterations Limit Exceeded.</listitem>
</itemizedlist>
</para>
<para>
-For more details on status see the symphony documentation, go to http://www.coin-or.org/SYMPHONY/man-5.6/
+For more details on the status, see the symphony documentation which can be found on http://www.coin-or.org/SYMPHONY/man-5.6/
</para>
<para>
-The output data structure contains detailed informations about the optimization process.
-It has type "struct" and contains the following fields.
+The output data structure contains detailed information about the optimization process.
+It is of type "struct" and contains the following fields.
<itemizedlist>
-<listitem>output.iterations: The number of iterations performed during the search</listitem>
+<listitem>output.iterations: The number of iterations performed.</listitem>
</itemizedlist>
</para>
<para>
</para>
</refsection>
+<para>
+A few examples displaying the various functionalities of symphony have been provided below. You will find a series of problems and the appropriate code snippets to solve them.
+</para>
+<refsection>
+ <title>Example</title>
+ <para>
+<latex>
+\begin{eqnarray}
+\mbox{min}_{x}\ f(x) = 1750x_{1} + 990x_{2} + 1240x_{3} + 1680x_{4} + 500x_{5} + 450x_{6} + 400x_{7} + 100x_{8} \\
+\end{eqnarray}\\
+\text{Subjected to:}\\
+\begin{eqnarray}
+0 &amp;\leq x_{1} &amp;\leq 1\\
+0 &amp;\leq x_{2} &amp;\leq 1\\
+0 &amp;\leq x_{3} &amp;\leq 1\\
+0 &amp;\leq x_{4} &amp;\leq 1\\
+0 &amp;\leq x_{5} &amp;\leq \infty\\
+0 &amp;\leq x_{6} &amp;\leq \infty\\
+0 &amp;\leq x_{7} &amp;\leq \infty\\
+0 &amp;\leq x_{8} &amp;\leq \infty
+\end{eqnarray}\\
+\text{With constraint bounds as: }\\
+\begin{eqnarray}
+25 &amp;\leq c_{1} &amp;\leq 25\\
+1.25 &amp;\leq c_{2} &amp;\leq 1.25\\
+1.25 &amp;\leq c_{3} &amp;\leq 1.25\\
+\end{eqnarray}
+</latex>
+ </para>
+ <programlisting role="example"><![CDATA[
+//Reference: Westerberg, Carl-Henrik, Bengt Bjorklund, and Eskil Hultman. "An application of mixed integer programming in a Swedish steel mill." Interfaces 7, no. 2 (1977): 39-43.
+// Objective function
+c = [350*5,330*3,310*4,280*6,500,450,400,100]';
+// Lower Bound of variable
+lb = repmat(0,8,1);
+// Upper Bound of variables
+ub = [repmat(1,4,1);repmat(%inf,4,1)];
+// Constraint Matrix
+A = [5,3,4,6,1,1,1,1;
+5*0.05,3*0.04,4*0.05,6*0.03,0.08,0.07,0.06,0.03;
+5*0.03,3*0.03,4*0.04,6*0.04,0.06,0.07,0.08,0.09;]
+// Lower Bound of constraints
+conlb = [ 25; 1.25; 1.25]
+// Upper Bound of constraints
+conub = [ 25; 1.25; 1.25]
+// Row Matrix for telling symphony that the is integer or not
+isInt = [repmat(%t,1,4) repmat(%f,1,4)];
+xopt = [1 1 0 1 7.25 0 0.25 3.5]
+fopt = [8495]
+options = list("time_limit", 25);
+// Calling Symphony
+[x,f,status,output] = symphony(8,3,c,isInt,lb,ub,A,conlb,conub,1,options);
+// Press ENTER to continue
+
+ ]]></programlisting>
+</refsection>
+
<refsection>
- <title>Examples</title>
+ <title>Example</title>
+ <para>
+Here we provide the sense (maximization/minimization) of the objective and show how we can further enhance the functionality of symphony by setting input options. This provides us with the ability to control the solver parameters such as the maximum number of solver iterations and the max. CPU time allowed for the computation.
+</para>
+<para>
+ </para>
<programlisting role="example"><![CDATA[
//Reference: Westerberg, Carl-Henrik, Bengt Bjorklund, and Eskil Hultman. "An application of mixed integer programming in a Swedish steel mill." Interfaces 7, no. 2 (1977): 39-43.
// Objective function
@@ -132,17 +215,40 @@ conub = [ 25; 1.25; 1.25]
isInt = [repmat(%t,1,4) repmat(%f,1,4)];
xopt = [1 1 0 1 7.25 0 0.25 3.5]
fopt = [8495]
+options = list("time_limit", 25);
// Calling Symphony
-[x,f,status,output] = symphony(8,3,c,isInt,lb,ub,A,conlb,conub,1)
+[x,f,status,output] = symphony(8,3,c,isInt,lb,ub,A,conlb,conub,1,options);
// Press ENTER to continue
]]></programlisting>
</refsection>
<refsection>
- <title>Examples</title>
+ <title>Example</title>
+ <para>
+ An advanced example for Symphony.
+ </para>
+ <para>
+ <latex>
+\begin{eqnarray}
+\mbox{max}_{x}\ sum_{j=1,...,n} P_{j} \boldsymbol{\cdot} x_{j} \\
+\text{Where P is specified below.} \\
+\end{eqnarray}\\
+\\
+\text{Subjected to:}\\
+\begin{eqnarray}
+sum{j=1,...,n} r_{i,j} \boldsymbol{\cdot} x_{j} &amp;\leq b_{i}\\
+\end{eqnarray}\\
+\text{Where r and b are specified below.} \\
+\begin{eqnarray}
+x_{j} = 0 &amp;\text{OR}&amp; x_{j} = 1
+\end{eqnarray}
+ </latex>
+ </para>
+ <para>
+ </para>
<programlisting role="example"><![CDATA[
-// An advanced case where we set some options in symphony
+// Example 3:
// This problem is taken from
// P.C.Chu and J.E.Beasley
// "A genetic algorithm for the multidimensional knapsack problem",
diff --git a/help/en_US/symphonymat.xml b/help/en_US/symphonymat.xml
index e99d223..5aca7d1 100644
--- a/help/en_US/symphonymat.xml
+++ b/help/en_US/symphonymat.xml
@@ -34,34 +34,39 @@
</refsynopsisdiv>
<refsection>
- <title>Parameters</title>
+ <title>Input Parameters</title>
<variablelist>
<varlistentry><term>c :</term>
- <listitem><para> a vector of double, contains coefficients of the variables in the objective</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, containing the coefficients of the variables in the objective function.</para></listitem></varlistentry>
<varlistentry><term>intcon :</term>
- <listitem><para> Vector of integer constraints, specified as a vector of positive integers. The values in intcon indicate the components of the decision variable x that are integer-valued. intcon has values from 1 through number of variable.</para></listitem></varlistentry>
+ <listitem><para> A vector of integer constraints, specified as a vector of positive integers. The values in intcon indicate the components of the decision variable x that are integer-valued. intcon has values from 1 to n where n is the number of variable.</para></listitem></varlistentry>
<varlistentry><term>A :</term>
- <listitem><para> a matrix of double, represents the linear coefficients in the inequality constraints A⋅x ≤ b.</para></listitem></varlistentry>
+ <listitem><para> A matrix of doubles, containing the coefficients of linear inequality constraints of size (m X n) where 'm' is the number of linear inequality constraints.</para></listitem></varlistentry>
<varlistentry><term>b :</term>
- <listitem><para> a vector of double, represents the linear coefficients in the inequality constraints A⋅x ≤ b.</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, related to 'A' and represents the linear coefficients in the linear inequality constraints of size (m X 1).</para></listitem></varlistentry>
<varlistentry><term>Aeq :</term>
- <listitem><para> a matrix of double, represents the linear coefficients in the equality constraints Aeq⋅x = beq.</para></listitem></varlistentry>
+ <listitem><para> A matrix of doubles, containing the coefficients of linear equality constraints of size (m1 X n) where 'm1' is the number of linear equality constraints.</para></listitem></varlistentry>
<varlistentry><term>beq :</term>
- <listitem><para> a vector of double, represents the linear coefficients in the equality constraints Aeq⋅x = beq.</para></listitem></varlistentry>
+ <listitem><para> A vector of double, vector of doubles, related to 'Aeq' and represents the linear coefficients in the equality constraints of size (m1 X 1).</para></listitem></varlistentry>
<varlistentry><term>lb :</term>
- <listitem><para> Lower bounds, specified as a vector or array of double. lb represents the lower bounds elementwise in lb ≤ x ≤ ub.</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, containing the lower bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables.</para></listitem></varlistentry>
<varlistentry><term>ub :</term>
- <listitem><para> Upper bounds, specified as a vector or array of double. ub represents the upper bounds elementwise in lb ≤ x ≤ ub.</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, containing the upper bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables.</para></listitem></varlistentry>
<varlistentry><term>options :</term>
- <listitem><para> a list containing the parameters to be set.</para></listitem></varlistentry>
+ <listitem><para> A list, containing the option for user to specify. See below for details.</para></listitem></varlistentry>
+ </variablelist>
+</refsection>
+<refsection>
+<title> Outputs</title>
+ <variablelist>
<varlistentry><term>xopt :</term>
- <listitem><para> a vector of double, the computed solution of the optimization problem.</para></listitem></varlistentry>
+ <listitem><para> A vector of doubles, containing the computed solution of the optimization problem.</para></listitem></varlistentry>
<varlistentry><term>fopt :</term>
- <listitem><para> a double, the value of the function at x.</para></listitem></varlistentry>
+ <listitem><para> A double, containing the value of the function at x.</para></listitem></varlistentry>
<varlistentry><term>status :</term>
- <listitem><para> status flag returned from symphony. See below for details.</para></listitem></varlistentry>
+ <listitem><para> The status flag returned from symphony. See below for details.</para></listitem></varlistentry>
<varlistentry><term>output :</term>
- <listitem><para> The output data structure contains detailed information about the optimization process. See below for details.</para></listitem></varlistentry>
+ <listitem><para> A structure, containing the information about the optimization. See below for details.</para></listitem></varlistentry>
</variablelist>
</refsection>
@@ -72,36 +77,52 @@ Search the minimum or maximum of a constrained mixed integer linear programming
</para>
<para>
<latex>
-\begin{eqnarray}
-&amp;\mbox{min}_{x}
-&amp; C^T⋅x \\
-&amp; \text{subject to} &amp; A⋅x \leq b \\
-&amp; &amp; Aeq⋅x = beq \\
-&amp; &amp; lb \leq x \leq ub \\
-&amp; &amp; x_i \in \!\, \mathbb{Z}, i \in \!\, I
+ \begin{eqnarray}
+ \mbox{min}_{x}
+C^T⋅x \\
+\text{Subjected to: } A⋅x \leq b \\
+Aeq⋅x = beq \\
+ lb \leq x \leq ub \\
+x_{i} \in \!\, \mathbb{Z}, i \in \!\, I
\end{eqnarray}
</latex>
</para>
<para>
-The routine calls SYMPHONY written in C by gateway files for the actual computation.
+The routine calls SYMPHONY, a solver for mixed-integer linear programs written in C, for the actual computation.
+ </para>
+ <para>
+ <title>Options</title>
+The options should be defined as type "list" and consist of over a hundred fields, the most important ones of which have been detailed here:
+</para>
+ <para>
+<itemizedlist>
+ <listitem>node_limit : A scalar, specifying the max. number of nodes allowed to be analyzed during the solution.</listitem>
+ <listitem>time_limit : A scalar, specifying the maximum amount of CPU time in seconds that the solver should take.</listitem>
+ <listitem>gap_limit : A scalar, representing the target gap limit allowed for solution.</listitem>
+<listitem>granularity : A scalar, “the minimum difference between two distinct objective function values</listitem>
+
+<listitem>node_selection_rule : A Scalar, specifying the maximum number of iterations that the solver should take.</listitem>
+<listitem>prep_level : An integer, that determines the level of preprocessing that should be done on the current MILP instance.</listitem>
+<listitem>do_branch_and_cut : A boolean, representing the decision whether to run the branch and cut algorithm or not. </listitem>
+</itemizedlist>
</para>
<para>
-The status allows to know the status of the optimization which is given back by Ipopt.
+The status allows the user to know the status of the optimization which is returned by Symphony. The values it can take and what they indicate is described below:
<itemizedlist>
-<listitem>status=227 : Optimal Solution Found </listitem>
-<listitem>status=228 : Maximum CPU Time exceeded.</listitem>
-<listitem>status=229 : Maximum Number of Node Limit Exceeded.</listitem>
-<listitem>status=230 : Maximum Number of Iterations Limit Exceeded.</listitem>
+<listitem>227 : Optimal Solution Found </listitem>
+<listitem>228 : Maximum CPU Time exceeded.</listitem>
+<listitem>229 : Maximum Number of Node Limit Exceeded.</listitem>
+<listitem>230 : Maximum Number of Iterations Limit Exceeded.</listitem>
</itemizedlist>
</para>
<para>
-For more details on status see the symphony documentation, go to http://www.coin-or.org/SYMPHONY/man-5.6/
+For more details on the status, see the symphony documentation which can be found on http://www.coin-or.org/SYMPHONY/man-5.6/
</para>
<para>
-The output data structure contains detailed informations about the optimization process.
-It has type "struct" and contains the following fields.
+The output data structure contains detailed information about the optimization process.
+It is of type "struct" and contains the following fields.
<itemizedlist>
-<listitem>output.iterations: The number of iterations performed during the search</listitem>
+<listitem>output.iterations: The number of iterations performed.</listitem>
</itemizedlist>
</para>
<para>
@@ -109,115 +130,275 @@ It has type "struct" and contains the following fields.
</refsection>
<refsection>
- <title>Examples</title>
+ <title>Example</title>
+ <para>
+ Here we solve a simple objective function, subjected to three linear inequality constraints.
+ </para>
+ <para>
+Find x in R^8 such that it minimizes:
+ </para>
+ <para>
+<latex>
+ \begin{eqnarray}
+\mbox{min}_{x}\ f(x) = 1750x_{1} + 990x_{2} + 1240x_{3} + 1680x_{4} + 500x_{5} + 450x_{6} + 400x_{7} + 100x_{8} \\
+\end{eqnarray}\\
+\text{Subjected to:}\\
+\begin{eqnarray}
+\hspace{70pt} &amp;6x_{1} + 4.25x_{2} + 5.5x_{3} + 7.75x_{4} + 3x_{5} + 3.25x_{6} + 3.5x_{7} + 3.75x_{8}&amp;\leq 100\\
+\hspace{70pt} &amp;1.25x_{1} + 1.37x_{2} + 1.7x_{3} + 1.93x_{4} + 2.08x_{5} + 2.32x_{6} + 2.56x_{7} + 2.78x_{8}&amp;\leq 205\\
+\hspace{70pt} &amp;1.15x_{1} + 1.34x_{2} + 1.66x_{3} + 1.99x_{4} + 2.06x_{5} + 2.32x_{6} + 2.58x_{7} + 2.84x_{8}&amp;\leq 409\\
+\end{eqnarray}\\
+\text{With integer constraints as: }
+\begin{eqnarray}
+\begin{array}{cccccc}
+[1 &amp; 2 &amp; 3 &amp; 4] \\
+\end{array}
+\end{eqnarray}
+ </latex>
+ </para>
+ <para>
+</para>
+ <programlisting role="example"><![CDATA[
+// Example 1:
+// Reference: Westerberg, Carl-Henrik, Bengt Bjorklund, and Eskil Hultman. "An application of mixed integer
+// programming in a Swedish steel mill." Interfaces 7, no. 2 (1977): 39-43. Modified acc. to requirements.
+c = [350*5,330*3,310*4,280*6,500,450,400,100]';
+A = [6,4.25, 5.5, 7.75, 3, 3.25, 3.5,3.75;
+ 1.25,1.37,1.7,1.93,2.08,2.32,2.56,2.78;
+ 1.15,1.34,1.66,1.99,2.06,2.32,2.58,2.84 ];
+b = [100 ,205, 249 ];
+//Defining the integer constraints
+intcon = [1 2 3 4];
+// Calling Symphony
+[x,f,status,output] = symphonymat(c,intcon,A,b)
+// Press ENTER to continue
+
+ ]]></programlisting>
+</refsection>
+<para>
+A few examples displaying the various functionalities of symphonymat have been provided below. You will find a series of problems and the appropriate code snippets to solve them.
+ </para>
+<refsection>
+ <title>Example</title>
+ <para>
+Here we build up on the previous example by adding upper and lower bounds to the variables.
+We add the following bounds to the problem specified above: </para>
+ <para>
+<latex>
+\begin{eqnarray}
+0 &amp;\leq x_{1} &amp;\leq 1\\
+0 &amp;\leq x_{2} &amp;\leq 1\\
+0 &amp;\leq x_{3} &amp;\leq 1\\
+0 &amp;\leq x_{4} &amp;\leq 1\\
+0 &amp;\leq x_{5} &amp;\leq \infty\\
+0 &amp;\leq x_{6} &amp;\leq \infty\\
+0 &amp;\leq x_{7} &amp;\leq \infty\\
+0 &amp;\leq x_{8} &amp;\leq \infty
+\end{eqnarray}
+ </latex>
+</para>
+ <programlisting role="example"><![CDATA[
+// Example 2:
+// Reference: Westerberg, Carl-Henrik, Bengt Bjorklund, and Eskil Hultman. "An application of mixed integer
+// programming in a Swedish steel mill." Interfaces 7, no. 2 (1977): 39-43. Modified acc. to requirements.
+ c = [350*5,330*3,310*4,280*6,500,450,400,100]';
+ //Inequality constraints
+ A = [6,4.25, 5.5, 7.75, 3, 3.25, 3.5,3.75;
+ 1.25,1.37,1.7,1.93,2.08,2.32,2.56,2.78;
+ 1.15,1.34,1.66,1.99,2.06,2.32,2.58,2.84 ];
+ b = [100 ,205, 249 ];
+
+ // Lower Bound of variable
+lb = repmat(0,1,8);
+// Upper Bound of variables
+ub = [repmat(1,1,4) repmat(%inf,1,4)];
+ //Integer Constraints
+ intcon = [1 2 3 4];
+ // Calling Symphony
+ [x,f,status,output] = symphonymat(c,intcon,A,b,[],[],lb,ub)
+// Press ENTER to continue
+
+ ]]></programlisting>
+</refsection>
+
+<refsection>
+ <title>Example</title>
+ <para>
+In this example, we proceed to add the linear equality constraints to the objective function.
+ </para>
+
+ <para>
+<latex>
+\begin{eqnarray}
+\hspace{1pt} &amp;5x_{1} + 3x_{2} + 4x_{3} + 6x_{4} + x_{5} + x_{6} + x_{7} + x_{8}&amp;= 25\\
+\hspace{1pt} &amp;0.25x_{1} + 0.12x_{2} + 0.2x_{3} + 0.18x_{4} + 0.08x_{5} + 0.07x_{6} + 0.06x_{7} + 0.03x_{8}&amp;= 1.25\\
+\hspace{1pt} &amp;0.15x_{1} + 0.09x_{2} + 0.16x_{3} + 0.24x_{4} + 0.06x_{5} + 0.07x_{6} + 0.08x_{7} + 0.09x_{8}&amp;= 1.25\\
+\end{eqnarray}
+ </latex>
+</para>
<programlisting role="example"><![CDATA[
-// Objective function
-// Reference: Westerberg, Carl-Henrik, Bengt Bjorklund, and Eskil Hultman. "An application of mixed integer programming in a Swedish steel mill." Interfaces 7, no. 2 (1977): 39-43.
+// Example 3:
+// Reference: Westerberg, Carl-Henrik, Bengt Bjorklund, and Eskil Hultman. "An application of mixed integer
+// programming in a Swedish steel mill." Interfaces 7, no. 2 (1977): 39-43. Modified acc. to requirements.
c = [350*5,330*3,310*4,280*6,500,450,400,100]';
+//Inequality constraints
+A = [6,4.25, 5.5, 7.75, 3, 3.25, 3.5,3.75;
+ 1.25,1.37,1.7,1.93,2.08,2.32,2.56,2.78;
+ 1.15,1.34,1.66,1.99,2.06,2.32,2.58,2.84 ];
+b = [100 ,205, 249 ];
// Lower Bound of variable
lb = repmat(0,1,8);
// Upper Bound of variables
ub = [repmat(1,1,4) repmat(%inf,1,4)];
-// Constraint Matrix
+// Equality Constraints
Aeq = [5,3,4,6,1,1,1,1;
5*0.05,3*0.04,4*0.05,6*0.03,0.08,0.07,0.06,0.03;
5*0.03,3*0.03,4*0.04,6*0.04,0.06,0.07,0.08,0.09;]
-beq = [ 25, 1.25, 1.25]
+beq = [ 25, 1.25, 1.25];
+ //Integer Constraints
intcon = [1 2 3 4];
// Calling Symphony
-[x,f,status,output] = symphonymat(c,intcon,[],[],Aeq,beq,lb,ub)
+[x,f,status,output] = symphonymat(c,intcon,A,b,Aeq,beq,lb,ub)
// Press ENTER to continue
]]></programlisting>
</refsection>
<refsection>
- <title>Examples</title>
+ <title>Example</title>
+ <para>
+In this example, we further enhance the functionality of symphonymat by setting input options. This provides us with the ability to control the solver parameters such as the maximum number of solver iterations and the max. CPU time allowed for the computation.
+ </para>
+
+ <para>
+</para>
<programlisting role="example"><![CDATA[
-// An advanced case where we set some options in symphony
-// This problem is taken from
-// P.C.Chu and J.E.Beasley
-// "A genetic algorithm for the multidimensional knapsack problem",
-// Journal of Heuristics, vol. 4, 1998, pp63-86.
-// The problem to be solved is:
-// Max sum{j=1,...,n} p(j)x(j)
-// st sum{j=1,...,n} r(i,j)x(j) <= b(i) i=1,...,m
-// x(j)=0 or 1
-// The function to be maximize i.e. P(j)
-c = -1*[ 504 803 667 1103 834 585 811 856 690 832 846 813 868 793 ..
-825 1002 860 615 540 797 616 660 707 866 647 746 1006 608 ..
-877 900 573 788 484 853 942 630 591 630 640 1169 932 1034 ..
-957 798 669 625 467 1051 552 717 654 388 559 555 1104 783 ..
-959 668 507 855 986 831 821 825 868 852 832 828 799 686 ..
-510 671 575 740 510 675 996 636 826 1022 1140 654 909 799 ..
-1162 653 814 625 599 476 767 954 906 904 649 873 565 853 1008 632]';
-//Constraint Matrix
-A = [ //Constraint 1
-42 41 523 215 819 551 69 193 582 375 367 478 162 898 ..
-550 553 298 577 493 183 260 224 852 394 958 282 402 604 ..
-164 308 218 61 273 772 191 117 276 877 415 873 902 465 ..
-320 870 244 781 86 622 665 155 680 101 665 227 597 354 ..
-597 79 162 998 849 136 112 751 735 884 71 449 266 420 ..
-797 945 746 46 44 545 882 72 383 714 987 183 731 301 ..
-718 91 109 567 708 507 983 808 766 615 554 282 995 946 651 298;
-//Constraint 2
-509 883 229 569 706 639 114 727 491 481 681 948 687 941 ..
-350 253 573 40 124 384 660 951 739 329 146 593 658 816 ..
-638 717 779 289 430 851 937 289 159 260 930 248 656 833 ..
-892 60 278 741 297 967 86 249 354 614 836 290 893 857 ..
-158 869 206 504 799 758 431 580 780 788 583 641 32 653 ..
-252 709 129 368 440 314 287 854 460 594 512 239 719 751 ..
-708 670 269 832 137 356 960 651 398 893 407 477 552 805 881 850;
-//Constraint 3
-806 361 199 781 596 669 957 358 259 888 319 751 275 177 ..
-883 749 229 265 282 694 819 77 190 551 140 442 867 283 ..
-137 359 445 58 440 192 485 744 844 969 50 833 57 877 ..
-482 732 968 113 486 710 439 747 174 260 877 474 841 422 ..
-280 684 330 910 791 322 404 403 519 148 948 414 894 147 ..
-73 297 97 651 380 67 582 973 143 732 624 518 847 113 ..
-382 97 905 398 859 4 142 110 11 213 398 173 106 331 254 447 ;
-//Constraint 4
-404 197 817 1000 44 307 39 659 46 334 448 599 931 776 ..
-263 980 807 378 278 841 700 210 542 636 388 129 203 110 ..
-817 502 657 804 662 989 585 645 113 436 610 948 919 115 ..
-967 13 445 449 740 592 327 167 368 335 179 909 825 614 ..
-987 350 179 415 821 525 774 283 427 275 659 392 73 896 ..
-68 982 697 421 246 672 649 731 191 514 983 886 95 846 ..
-689 206 417 14 735 267 822 977 302 687 118 990 323 993 525 322;
-//Constrain 5
-475 36 287 577 45 700 803 654 196 844 657 387 518 143 ..
-515 335 942 701 332 803 265 922 908 139 995 845 487 100 ..
-447 653 649 738 424 475 425 926 795 47 136 801 904 740 ..
-768 460 76 660 500 915 897 25 716 557 72 696 653 933 ..
-420 582 810 861 758 647 237 631 271 91 75 756 409 440 ..
-483 336 765 637 981 980 202 35 594 689 602 76 767 693 ..
-893 160 785 311 417 748 375 362 617 553 474 915 457 261 350 635 ;
-];
-nbVar = size(c,1)
-b=[11927 13727 11551 13056 13460 ];
-// Lower Bound of variables
-lb = repmat(0,1,nbVar)
+// Example 4:
+// Reference: Westerberg, Carl-Henrik, Bengt Bjorklund, and Eskil Hultman. "An application of mixed integer
+// programming in a Swedish steel mill." Interfaces 7, no. 2 (1977): 39-43. Modified acc. to requirements.
+c = [350*5,330*3,310*4,280*6,500,450,400,100]';
+//Inequality constraints
+A = [6,4.25, 5.5, 7.75, 3, 3.25, 3.5,3.75;
+ 1.25,1.37,1.7,1.93,2.08,2.32,2.56,2.78;
+ 1.15,1.34,1.66,1.99,2.06,2.32,2.58,2.84 ];
+b = [100 ,205, 249 ];
+// Lower Bound of variable
+lb = repmat(0,1,8);
// Upper Bound of variables
-ub = repmat(1,1,nbVar)
-// Lower Bound of constrains
-intcon = [];
-for i = 1:nbVar
-intcon = [intcon i];
-end
+ub = [repmat(1,1,4) repmat(%inf,1,4)];
+// Equality Constraints
+Aeq = [5,3,4,6,1,1,1,1;
+5*0.05,3*0.04,4*0.05,6*0.03,0.08,0.07,0.06,0.03;
+5*0.03,3*0.03,4*0.04,6*0.04,0.06,0.07,0.08,0.09;]
+beq = [ 25, 1.25, 1.25];
+ //Integer Constraints
+intcon = [1 2 3 4];
+//Options
options = list("time_limit", 25);
-// The expected solution :
-// Output variables
-xopt = [0 1 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 1 0 1 1 0 1 ..
-0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 1 ..
-0 0 1 0 0 1 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 1 0 0 1 0]
-// Optimal value
-fopt = [ -24381 ]
// Calling Symphony
-[x,f,status,output] = symphonymat(c,intcon,A,b,[],[],lb,ub,options);
+[x,f,status,output] = symphonymat(c,intcon,A,b,Aeq,beq,lb,ub)
+// Press ENTER to continue
+
]]></programlisting>
</refsection>
<refsection>
+ <title>Example</title>
+ <para>
+Primal Infeasible Problems: Find x in R^8 such that it minimizes:
+ </para>
+ <para>
+Find x in R^8 such that it minimizes:
+ </para>
+ <para>
+<latex>
+ \begin{eqnarray}
+\mbox{min}_{x}\ f(x) = 1750x_{1} + 990x_{2} + 1240x_{3} + 1680x_{4} + 500x_{5} + 450x_{6} + 400x_{7} + 100x_{8} \\
+\end{eqnarray}\\
+\text{Subjected to:}\\
+\begin{eqnarray}
+\hspace{70pt} &amp;6x_{1} + 4.25x_{2} + 5.5x_{3} + 7.75x_{4} + 3x_{5} + 3.25x_{6} + 3.5x_{7} + 3.75x_{8}&amp;\leq 26.333\\
+\hspace{70pt} &amp;1.25x_{1} + 1.37x_{2} + 1.7x_{3} + 1.93x_{4} + 2.08x_{5} + 2.32x_{6} + 2.56x_{7} + 2.78x_{8}&amp;\leq 3.916\\
+\hspace{70pt} &amp;1.15x_{1} + 1.34x_{2} + 1.66x_{3} + 1.99x_{4} + 2.06x_{5} + 2.32x_{6} + 2.58x_{7} + 2.84x_{8}&amp;\leq 5.249\\
+\end{eqnarray}\\
+\text{With integer constraints as: }
+\begin{eqnarray}
+\begin{array}{cccc}
+[1 &amp; 2 &amp; 3 &amp; 4]
+\end{array}
+\end{eqnarray}
+ </latex>
+</para>
+ <programlisting role="example"><![CDATA[
+// Example 5:
+// Reference: Westerberg, Carl-Henrik, Bengt Bjorklund, and Eskil Hultman. "An application of mixed integer
+// programming in a Swedish steel mill." Interfaces 7, no. 2 (1977): 39-43. Modified acc. to requirements.
+c = [350*5,330*3,310*4,280*6,500,450,400,100]';
+//Inequality constraints
+A = [6,4.25, 5.5, 7.75, 3, 3.25, 3.5,3.75;
+ 1.25,1.37,1.7,1.93,2.08,2.32,2.56,2.78;
+ 1.15,1.34,1.66,1.99,2.06,2.32,2.58,2.84 ];
+b = [26.333 ,3.916 ,5.249 ];
+ //Integer Constraints
+intcon = [1 2 3 4];
+
+// Calling Symphony
+
+[x,f,status,output] = symphonymat(c,intcon,A,b)
+// Press ENTER to continue
+
+ ]]></programlisting>
+</refsection>
+
+<refsection>
+ <title>Example</title>
+ <para>
+Unbounded Problems. Find x in R^8 such that it minimizes:
+ </para>
+ <para>
+<latex>
+ \begin{eqnarray}
+\mbox{min}_{x}\ f(x) = 1750x_{1} + 990x_{2} + 1240x_{3} + 1680x_{4} + 500x_{5} + 450x_{6} + 400x_{7} + 100x_{8} \\
+\end{eqnarray}\\
+\text{Subjected to:}\\
+\begin{eqnarray}
+\hspace{70pt} &amp;5x_{1} + 3x_{2} + 4x_{3} + 6x_{4} + x_{5} + x_{6} + x_{7} + x_{8}&amp;= 25\\
+\hspace{70pt} &amp;0.25x_{1} + 0.12x_{2} + 0.2x_{3} + 0.18x_{4} + 0.08x_{5} + 0.07x_{6} + 0.06x_{7} + 0.03x_{8}&amp;= 1.25\\
+\hspace{70pt} &amp;0.15x_{1} + 0.09x_{2} + 0.16x_{3} + 0.24x_{4} + 0.06x_{5} + 0.07x_{6} + 0.08x_{7} + 0.09x_{8}&amp;= 1.25\\
+\end{eqnarray}\\
+\text{With integer constraints as: }
+\begin{eqnarray}
+\begin{array}{cccc}
+[1 &amp; 2 &amp; 3 &amp; 4] \\
+\end{array}
+\end{eqnarray}
+ </latex>
+</para>
+ <programlisting role="example"><![CDATA[
+// Example 6:
+// Reference: Westerberg, Carl-Henrik, Bengt Bjorklund, and Eskil Hultman. "An application of mixed integer
+// programming in a Swedish steel mill." Interfaces 7, no. 2 (1977): 39-43. Modified acc. to requirements.
+c = [350*5,330*3,310*4,280*6,500,450,400,100]';
+//Inequality constraints
+A = [];
+b = [];
+// Equality Constraints
+Aeq = [5,3,4,6,1,1,1,1;
+5*0.05,3*0.04,4*0.05,6*0.03,0.08,0.07,0.06,0.03;
+5*0.03,3*0.03,4*0.04,6*0.04,0.06,0.07,0.08,0.09;]
+beq = [ 25, 1.25, 1.25];
+ //Integer Constraints
+intcon = [1 2 3 4];
+// Calling Symphony
+[x,f,status,output] = symphonymat(c,intcon,A,b,Aeq,beq)
+// Press ENTER to continue
+
+ ]]></programlisting>
+</refsection>
+
+
+
+<refsection>
<title>Authors</title>
<simplelist type="vert">
<member>Keyur Joshi, Saikiran, Iswarya, Harpreet Singh</member>