summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHarpreet2015-12-31 16:03:57 +0530
committerHarpreet2015-12-31 16:03:57 +0530
commitd5356061fbd3a9b3052dee25bd9c82c375c42e22 (patch)
tree72a37d5161eb0f4b895513c46c68e031d1200520
parenteb9ca1191c94059cd7adcf69805906c809fe9712 (diff)
downloadFOSSEE-Optimization-toolbox-d5356061fbd3a9b3052dee25bd9c82c375c42e22.tar.gz
FOSSEE-Optimization-toolbox-d5356061fbd3a9b3052dee25bd9c82c375c42e22.tar.bz2
FOSSEE-Optimization-toolbox-d5356061fbd3a9b3052dee25bd9c82c375c42e22.zip
Macros example updated
-rw-r--r--demos/lsqlin.dem.sce66
-rw-r--r--demos/lsqnonneg.dem.sce20
-rw-r--r--demos/qpipopt.dem.sce42
-rw-r--r--demos/qpipoptmat.dem.sce26
-rw-r--r--demos/symphony.dem.sce2
-rw-r--r--demos/symphonymat.dem.sce1
-rw-r--r--help/en_US/lsqlin.xml72
-rw-r--r--help/en_US/lsqnonneg.xml26
-rw-r--r--help/en_US/qpipopt.xml57
-rw-r--r--help/en_US/qpipoptmat.xml33
-rw-r--r--help/en_US/scilab_en_US_help/JavaHelpSearch/DOCSbin7534 -> 6899 bytes
-rw-r--r--help/en_US/scilab_en_US_help/JavaHelpSearch/DOCS.TABbin872 -> 761 bytes
-rw-r--r--help/en_US/scilab_en_US_help/JavaHelpSearch/OFFSETSbin270 -> 264 bytes
-rw-r--r--help/en_US/scilab_en_US_help/JavaHelpSearch/POSITIONSbin36377 -> 33375 bytes
-rw-r--r--help/en_US/scilab_en_US_help/JavaHelpSearch/SCHEMA2
-rw-r--r--help/en_US/scilab_en_US_help/JavaHelpSearch/TMAPbin16384 -> 14336 bytes
-rw-r--r--help/en_US/scilab_en_US_help/lsqlin.html72
-rw-r--r--help/en_US/scilab_en_US_help/lsqnonneg.html26
-rw-r--r--help/en_US/scilab_en_US_help/qpipopt.html51
-rw-r--r--help/en_US/scilab_en_US_help/qpipoptmat.html35
-rw-r--r--help/en_US/scilab_en_US_help/symphony.html7
-rw-r--r--help/en_US/scilab_en_US_help/symphonymat.html6
-rw-r--r--help/en_US/symphony.xml5
-rw-r--r--help/en_US/symphonymat.xml4
-rw-r--r--jar/scilab_en_US_help.jarbin215257 -> 205947 bytes
-rw-r--r--macros/buildmacros.sce6
-rw-r--r--macros/lsqlin.binbin53548 -> 50916 bytes
-rw-r--r--macros/lsqlin.sci84
-rw-r--r--macros/lsqnonneg.binbin23840 -> 24024 bytes
-rw-r--r--macros/lsqnonneg.sci32
-rw-r--r--macros/qpipopt.binbin50496 -> 50352 bytes
-rw-r--r--macros/qpipopt.sci185
-rw-r--r--macros/qpipoptmat.binbin52464 -> 52688 bytes
-rw-r--r--macros/qpipoptmat.sci38
-rw-r--r--macros/setOptions.sci6
-rw-r--r--macros/symphony.binbin54340 -> 56296 bytes
-rw-r--r--macros/symphony.sci30
-rw-r--r--macros/symphony_call.sci6
-rw-r--r--macros/symphonymat.binbin60108 -> 60688 bytes
-rw-r--r--macros/symphonymat.sci295
-rw-r--r--sci_gateway/cpp/.sci_QuadNLP.cpp.swpbin0 -> 16384 bytes
-rw-r--r--sci_gateway/cpp/QuadNLP.hpp21
-rw-r--r--sci_gateway/cpp/builder_gateway_cpp.sce6
-rw-r--r--sci_gateway/cpp/globals.cpp17
-rw-r--r--sci_gateway/cpp/libsymphonytools.c144
-rwxr-xr-xsci_gateway/cpp/libsymphonytools.sobin86003 -> 0 bytes
-rw-r--r--sci_gateway/cpp/sci_QuadNLP.cpp17
-rw-r--r--sci_gateway/cpp/sci_iofunc.cpp14
-rw-r--r--sci_gateway/cpp/sci_iofunc.hpp13
-rw-r--r--sci_gateway/cpp/sci_ipopt.cpp18
-rw-r--r--sci_gateway/cpp/sci_solver_status_query_functions.cpp16
-rw-r--r--sci_gateway/cpp/sci_sym_addrowcol.cpp16
-rw-r--r--sci_gateway/cpp/sci_sym_getinfinity.cpp16
-rw-r--r--sci_gateway/cpp/sci_sym_getobjsense.cpp16
-rw-r--r--sci_gateway/cpp/sci_sym_getrowact.cpp16
-rw-r--r--sci_gateway/cpp/sci_sym_isenvactive.cpp16
-rw-r--r--sci_gateway/cpp/sci_sym_load_mps.cpp17
-rw-r--r--sci_gateway/cpp/sci_sym_loadproblem.cpp17
-rw-r--r--sci_gateway/cpp/sci_sym_openclose.cpp16
-rw-r--r--sci_gateway/cpp/sci_sym_primalbound.cpp16
-rw-r--r--sci_gateway/cpp/sci_sym_remove.cpp17
-rw-r--r--sci_gateway/cpp/sci_sym_rowmod.cpp16
-rw-r--r--sci_gateway/cpp/sci_sym_set_indices.cpp17
-rw-r--r--sci_gateway/cpp/sci_sym_set_variables.cpp17
-rw-r--r--sci_gateway/cpp/sci_sym_setcolsoln.cpp16
-rw-r--r--sci_gateway/cpp/sci_sym_setobj.cpp15
-rw-r--r--sci_gateway/cpp/sci_sym_solution.cpp16
-rw-r--r--sci_gateway/cpp/sci_sym_solve.cpp15
-rw-r--r--sci_gateway/cpp/sci_sym_varbounds.cpp16
-rw-r--r--sci_gateway/cpp/sci_vartype.cpp16
-rw-r--r--sci_gateway/cpp/sym_data_query_functions.cpp16
-rw-r--r--sci_gateway/cpp/template.cpp43
-rw-r--r--tests/general_tests/lsqlin/lsqlin_A1.sce28
-rw-r--r--tests/general_tests/lsqlin/lsqlin_Aeq1.sce29
-rw-r--r--tests/general_tests/lsqlin/lsqlin_C1.sce26
-rw-r--r--tests/general_tests/lsqlin/lsqlin_b1.sce23
-rw-r--r--tests/general_tests/lsqlin/lsqlin_beq1.sce23
-rw-r--r--tests/general_tests/lsqlin/lsqlin_infeasible1.sce29
-rw-r--r--tests/general_tests/lsqlin/lsqlin_input1.sce27
-rw-r--r--tests/general_tests/lsqlin/lsqlin_input2.sce26
-rw-r--r--tests/general_tests/lsqlin/lsqlin_logical1.sce54
-rw-r--r--tests/general_tests/lsqlin/lsqlin_maxiter.sce42
-rw-r--r--tests/general_tests/lsqlin/lsqlin_param1.sce26
-rw-r--r--tests/general_tests/lsqlin/lsqlin_param2.sce26
-rw-r--r--tests/general_tests/lsqlin/lsqlin_param3.sce26
-rw-r--r--tests/general_tests/lsqlin/lsqlin_x01.sce52
-rw-r--r--tests/general_tests/lsqlin/lsqlin_zeros.sce32
-rw-r--r--tests/general_tests/lsqnonneg/lsqnonneg_C.sce20
-rw-r--r--tests/general_tests/lsqnonneg/lsqnonneg_input1.sce20
-rw-r--r--tests/general_tests/lsqnonneg/lsqnonneg_input2.sce20
-rw-r--r--tests/general_tests/lsqnonneg/lsqnonneg_logical.sce42
-rw-r--r--tests/general_tests/lsqnonneg/lsqnonneg_maxiter.sce42
-rw-r--r--tests/general_tests/lsqnonneg/lsqnonneg_param1.sce20
-rw-r--r--tests/general_tests/lsqnonneg/lsqnonneg_param2.sce20
-rw-r--r--tests/general_tests/lsqnonneg/lsqnonneg_zeros.sce28
-rw-r--r--tests/general_tests/qpipopt/qpipopt_logical_2.sce1
-rw-r--r--tests/general_tests/qpipopt/qpipopt_maxiter.sce46
-rw-r--r--tests/general_tests/qpipopt/qpipopt_zeros.sce42
-rw-r--r--tests/general_tests/qpipoptmat/qpipoptmat_logical2.sce2
-rw-r--r--tests/general_tests/qpipoptmat/qpipoptmat_maxiter.sce44
-rw-r--r--tests/general_tests/qpipoptmat/qpipoptmat_zeros.sce35
-rw-r--r--tests/general_tests/symphony/symphony_logical2.sce6
-rw-r--r--tests/general_tests/symphony/symphony_zeros.sce46
-rw-r--r--thirdparty/linux/include/coin/.IpIpoptCalculatedQuantities.hpp.swpbin0 -> 16384 bytes
104 files changed, 1497 insertions, 1273 deletions
diff --git a/demos/lsqlin.dem.sce b/demos/lsqlin.dem.sce
index 0b81630..827ba63 100644
--- a/demos/lsqlin.dem.sce
+++ b/demos/lsqlin.dem.sce
@@ -4,46 +4,40 @@ mode(1)
//
//A simple linear least square example
-C = [0.9501 0.7620 0.6153 0.4057
-0.2311 0.4564 0.7919 0.9354
-0.6068 0.0185 0.9218 0.9169
-0.4859 0.8214 0.7382 0.4102
-0.8912 0.4447 0.1762 0.8936];
-d = [0.0578
-0.3528
-0.8131
-0.0098
-0.1388];
-A = [0.2027 0.2721 0.7467 0.4659
-0.1987 0.1988 0.4450 0.4186
-0.6037 0.0152 0.9318 0.8462];
-b = [0.5251
-0.2026
-0.6721];
+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
halt() // Press return to continue
//A basic example for equality, inequality constraints and variable bounds
-C = [0.9501 0.7620 0.6153 0.4057
-0.2311 0.4564 0.7919 0.9354
-0.6068 0.0185 0.9218 0.9169
-0.4859 0.8214 0.7382 0.4102
-0.8912 0.4447 0.1762 0.8936];
-d = [0.0578
-0.3528
-0.8131
-0.0098
-0.1388];
-A =[0.2027 0.2721 0.7467 0.4659
-0.1987 0.1988 0.4450 0.4186
-0.6037 0.0152 0.9318 0.8462];
-b =[0.5251
-0.2026
-0.6721];
-Aeq = [3 5 7 9];
-beq = 4;
-lb = -0.1*ones(4,1);
-ub = 2*ones(4,1);
+C = [1 1 1;
+1 1 0;
+0 1 1;
+1 0 0;
+0 0 1]
+d = [89;
+67;
+53;
+35;
+20;]
+A = [3 2 1;
+2 3 4;
+1 2 3];
+b = [191
+209
+162];
+Aeq = [1 2 1];
+beq = 10;
+lb = repmat(0.1,3,1);
+ub = repmat(4,3,1);
[xopt,resnorm,residual,exitflag,output,lambda] = lsqlin(C,d,A,b,Aeq,beq,lb,ub)
//========= E N D === O F === D E M O =========//
diff --git a/demos/lsqnonneg.dem.sce b/demos/lsqnonneg.dem.sce
index 73fa6df..d8be39b 100644
--- a/demos/lsqnonneg.dem.sce
+++ b/demos/lsqnonneg.dem.sce
@@ -4,15 +4,15 @@ mode(1)
//
// A basic lsqnonneg problem
-C = [
-0.0372 0.2869
-0.6861 0.7071
-0.6233 0.6245
-0.6344 0.6170];
-d = [
-0.8587
-0.1781
-0.0747
-0.8405];
+C = [1 1 1;
+1 1 0;
+0 1 1;
+1 0 0;
+0 0 1]
+d = [89;
+67;
+53;
+35;
+20;]
[xopt,resnorm,residual,exitflag,output,lambda] = lsqnonneg(C,d)
//========= E N D === O F === D E M O =========//
diff --git a/demos/qpipopt.dem.sce b/demos/qpipopt.dem.sce
index 8e405e1..3fa7476 100644
--- a/demos/qpipopt.dem.sce
+++ b/demos/qpipopt.dem.sce
@@ -3,6 +3,28 @@ mode(1)
// Demo of qpipopt.sci
//
+//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];
+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
+halt() // Press return to continue
+
//Find x in R^6 such that:
A= [1,-1,1,0,3,1;
-1,0,-3,-4,5,6;
@@ -20,24 +42,4 @@ 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)
-// Press ENTER to continue
-halt() // Press return to continue
-
-//Find the value of x that minimize following function
-// f(x) = 0.5*x1^2 + x2^2 - x1*x2 - 2*x1 - 6*x2
-// Subject to:
-// x1 + x2 ≤ 2
-// –x1 + 2x2 ≤ 2
-// 2x1 + x2 ≤ 3
-// 0 ≤ x1, 0 ≤ x2.
-H = [1 -1; -1 2];
-f = [-2; -6];
-A = [1 1; -1 2; 2 1];
-conUB = [2; 2; 3];
-conLB = [-%inf; -%inf; -%inf];
-lb = [0; 0];
-ub = [%inf; %inf];
-nbVar = 2;
-nbCon = 3;
-[xopt,fopt,exitflag,output,lambda] = qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB)
//========= E N D === O F === D E M O =========//
diff --git a/demos/qpipoptmat.dem.sce b/demos/qpipoptmat.dem.sce
index 0892855..1e8ebc8 100644
--- a/demos/qpipoptmat.dem.sce
+++ b/demos/qpipoptmat.dem.sce
@@ -3,17 +3,19 @@ mode(1)
// Demo of qpipoptmat.sci
//
-//Find the value of x that minimize following function
-// f(x) = 0.5*x1^2 + x2^2 - x1*x2 - 2*x1 - 6*x2
-// Subject to:
-// x1 + x2 ≤ 2
-// –x1 + 2x2 ≤ 2
-// 2x1 + x2 ≤ 3
-// 0 ≤ x1, 0 ≤ x2.
-H = [1 -1; -1 2];
-f = [-2; -6];
-A = [1 1; -1 2; 2 1];
-b = [2; 2; 3];
+//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)
@@ -34,5 +36,5 @@ 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,[],param)
+[xopt,fopt,exitflag,output,lambda]=qpipoptmat(H,f,A,b,Aeq,beq,lb,ub,x0,param)
//========= E N D === O F === D E M O =========//
diff --git a/demos/symphony.dem.sce b/demos/symphony.dem.sce
index 67886a3..a0b629e 100644
--- a/demos/symphony.dem.sce
+++ b/demos/symphony.dem.sce
@@ -3,7 +3,7 @@ mode(1)
// Demo of symphony.sci
//
-//A basic case :
+//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
diff --git a/demos/symphonymat.dem.sce b/demos/symphonymat.dem.sce
index a5e19ac..7bc751e 100644
--- a/demos/symphonymat.dem.sce
+++ b/demos/symphonymat.dem.sce
@@ -4,6 +4,7 @@ mode(1)
//
// 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.
c = [350*5,330*3,310*4,280*6,500,450,400,100]';
// Lower Bound of variable
lb = repmat(0,1,8);
diff --git a/help/en_US/lsqlin.xml b/help/en_US/lsqlin.xml
index c08905e..c6ec286 100644
--- a/help/en_US/lsqlin.xml
+++ b/help/en_US/lsqlin.xml
@@ -62,13 +62,13 @@
<varlistentry><term>resnorm :</term>
<listitem><para> a double, objective value returned as the 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 C*x-d.</para></listitem></varlistentry>
+ <listitem><para> a vector of double, solution residuals returned as the vector d-C*x.</para></listitem></varlistentry>
<varlistentry><term>exitflag :</term>
- <listitem><para> Integer identifying the reason the algorithm terminated. It could be 0, 1 or 2 etc. i.e. Optimal, Maximum Number of Iterations Exceeded, CPU time exceeded. Other flags one can see in the lsqlin macro.</para></listitem></varlistentry>
+ <listitem><para> A flag showing returned exit flag from Ipopt. It could be 0, 1 or 2 etc. i.e. Optimal, Maximum Number of Iterations Exceeded, CPU time exceeded. Other flags one can see in the lsqlin macro.</para></listitem></varlistentry>
<varlistentry><term>output :</term>
<listitem><para> Structure containing information about the optimization. This version only contains number of iterations.</para></listitem></varlistentry>
<varlistentry><term>lambda :</term>
- <listitem><para> Structure containing the Lagrange multipliers at the solution x (separated by constraint type).It contains lower, upper bound multiplier and linear equality, inequality constraints.</para></listitem></varlistentry>
+ <listitem><para> Structure containing the Lagrange multipliers at the solution x (separated by constraint type).It contains lower, upper bound multiplier and linear equality, inequality constraint multiplier.</para></listitem></varlistentry>
</variablelist>
</refsection>
@@ -99,22 +99,16 @@ The routine calls Ipopt for solving the linear least square problem, Ipopt is a
<title>Examples</title>
<programlisting role="example"><![CDATA[
//A simple linear least square example
-C = [0.9501 0.7620 0.6153 0.4057
-0.2311 0.4564 0.7919 0.9354
-0.6068 0.0185 0.9218 0.9169
-0.4859 0.8214 0.7382 0.4102
-0.8912 0.4447 0.1762 0.8936];
-d = [0.0578
-0.3528
-0.8131
-0.0098
-0.1388];
-A = [0.2027 0.2721 0.7467 0.4659
-0.1987 0.1988 0.4450 0.4186
-0.6037 0.0152 0.9318 0.8462];
-b = [0.5251
-0.2026
-0.6721];
+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
@@ -125,26 +119,26 @@ b = [0.5251
<title>Examples</title>
<programlisting role="example"><![CDATA[
//A basic example for equality, inequality constraints and variable bounds
-C = [0.9501 0.7620 0.6153 0.4057
-0.2311 0.4564 0.7919 0.9354
-0.6068 0.0185 0.9218 0.9169
-0.4859 0.8214 0.7382 0.4102
-0.8912 0.4447 0.1762 0.8936];
-d = [0.0578
-0.3528
-0.8131
-0.0098
-0.1388];
-A =[0.2027 0.2721 0.7467 0.4659
-0.1987 0.1988 0.4450 0.4186
-0.6037 0.0152 0.9318 0.8462];
-b =[0.5251
-0.2026
-0.6721];
-Aeq = [3 5 7 9];
-beq = 4;
-lb = -0.1*ones(4,1);
-ub = 2*ones(4,1);
+C = [1 1 1;
+1 1 0;
+0 1 1;
+1 0 0;
+0 0 1]
+d = [89;
+67;
+53;
+35;
+20;]
+A = [3 2 1;
+2 3 4;
+1 2 3];
+b = [191
+209
+162];
+Aeq = [1 2 1];
+beq = 10;
+lb = repmat(0.1,3,1);
+ub = repmat(4,3,1);
[xopt,resnorm,residual,exitflag,output,lambda] = lsqlin(C,d,A,b,Aeq,beq,lb,ub)
]]></programlisting>
</refsection>
diff --git a/help/en_US/lsqnonneg.xml b/help/en_US/lsqnonneg.xml
index 662ba2a..5d78bbd 100644
--- a/help/en_US/lsqnonneg.xml
+++ b/help/en_US/lsqnonneg.xml
@@ -43,13 +43,13 @@
<varlistentry><term>resnorm :</term>
<listitem><para> a double, objective value returned as the 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 C*x-d.</para></listitem></varlistentry>
+ <listitem><para> a vector of double, solution residuals returned as the vector d-C*x.</para></listitem></varlistentry>
<varlistentry><term>exitflag :</term>
- <listitem><para> Integer identifying the reason the algorithm terminated. It could be 0, 1 or 2 i.e. Optimal, Maximum Number of Iterations Exceeded, CPU time exceeded.</para></listitem></varlistentry>
+ <listitem><para> A flag showing returned exit flag from Ipopt. It could be 0, 1 or 2 etc. i.e. Optimal, Maximum Number of Iterations Exceeded, CPU time exceeded. Other flags one can see in the lsqlin macro.</para></listitem></varlistentry>
<varlistentry><term>output :</term>
<listitem><para> Structure containing information about the optimization. This version only contains number of iterations.</para></listitem></varlistentry>
<varlistentry><term>lambda :</term>
- <listitem><para> Structure containing the Lagrange multipliers at the solution x. It contains lower and upper bound multiplier.</para></listitem></varlistentry>
+ <listitem><para> Structure containing the Lagrange multipliers at the solution xopt. It contains lower, upper bound multiplier and linear equality, inequality constraint multiplier.</para></listitem></varlistentry>
</variablelist>
</refsection>
@@ -78,16 +78,16 @@ The routine calls Ipopt for solving the nonnegative least-squares curve fitting
<title>Examples</title>
<programlisting role="example"><![CDATA[
// A basic lsqnonneg problem
-C = [
-0.0372 0.2869
-0.6861 0.7071
-0.6233 0.6245
-0.6344 0.6170];
-d = [
-0.8587
-0.1781
-0.0747
-0.8405];
+C = [1 1 1;
+1 1 0;
+0 1 1;
+1 0 0;
+0 0 1]
+d = [89;
+67;
+53;
+35;
+20;]
[xopt,resnorm,residual,exitflag,output,lambda] = lsqnonneg(C,d)
]]></programlisting>
</refsection>
diff --git a/help/en_US/qpipopt.xml b/help/en_US/qpipopt.xml
index 6dd578d..3ba2107 100644
--- a/help/en_US/qpipopt.xml
+++ b/help/en_US/qpipopt.xml
@@ -62,11 +62,11 @@
<varlistentry><term>fopt :</term>
<listitem><para> a double, the function value at x.</para></listitem></varlistentry>
<varlistentry><term>exitflag :</term>
- <listitem><para> Integer identifying the reason the algorithm terminated. It could be 0, 1 or 2 etc. i.e. Optimal, Maximum Number of Iterations Exceeded, CPU time exceeded. Other flags one can see in the qpipopt macro.</para></listitem></varlistentry>
+ <listitem><para> A flag showing returned exit flag from Ipopt. It could be 0, 1 or 2 etc. i.e. Optimal, Maximum Number of Iterations Exceeded, CPU time exceeded. Other flags one can see in the lsqlin macro.</para></listitem></varlistentry>
<varlistentry><term>output :</term>
<listitem><para> Structure containing information about the optimization. This version only contains number of iterations</para></listitem></varlistentry>
<varlistentry><term>lambda :</term>
- <listitem><para> Structure containing the Lagrange multipliers at the solution x (separated by constraint type).It contains lower, upper and linear equality, inequality constraints.</para></listitem></varlistentry>
+ <listitem><para> Structure containing the Lagrange multipliers at the solution x (separated by constraint type).It contains lower, upper bound multiplier and linear equality, inequality constraint multiplier.</para></listitem></varlistentry>
</variablelist>
</refsection>
@@ -74,7 +74,6 @@
<title>Description</title>
<para>
Search the minimum of a constrained linear quadratic optimization problem specified by :
-find the minimum of f(x) such that
</para>
<para>
<latex>
@@ -96,6 +95,33 @@ The routine calls Ipopt for solving the quadratic problem, Ipopt is a library wr
<refsection>
<title>Examples</title>
<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];
+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>Examples</title>
+ <programlisting role="example"><![CDATA[
//Find x in R^6 such that:
A= [1,-1,1,0,3,1;
-1,0,-3,-4,5,6;
@@ -113,31 +139,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)
-// Press ENTER to continue
-
- ]]></programlisting>
-</refsection>
-
-<refsection>
- <title>Examples</title>
- <programlisting role="example"><![CDATA[
-//Find the value of x that minimize following function
-// f(x) = 0.5*x1^2 + x2^2 - x1*x2 - 2*x1 - 6*x2
-// Subject to:
-// x1 + x2 ≤ 2
-// –x1 + 2x2 ≤ 2
-// 2x1 + x2 ≤ 3
-// 0 ≤ x1, 0 ≤ x2.
-H = [1 -1; -1 2];
-f = [-2; -6];
-A = [1 1; -1 2; 2 1];
-conUB = [2; 2; 3];
-conLB = [-%inf; -%inf; -%inf];
-lb = [0; 0];
-ub = [%inf; %inf];
-nbVar = 2;
-nbCon = 3;
-[xopt,fopt,exitflag,output,lambda] = qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB)
]]></programlisting>
</refsection>
diff --git a/help/en_US/qpipoptmat.xml b/help/en_US/qpipoptmat.xml
index 8d0bc0c..1334603 100644
--- a/help/en_US/qpipoptmat.xml
+++ b/help/en_US/qpipoptmat.xml
@@ -62,12 +62,14 @@
<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 function value at x.</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>
<varlistentry><term>exitflag :</term>
- <listitem><para> Integer identifying the reason the algorithm terminated.It could be 0, 1 or 2 etc. i.e. Optimal, Maximum Number of Iterations Exceeded, CPU time exceeded. Other flags one can see in the qpipoptmat macro.</para></listitem></varlistentry>
+ <listitem><para> A flag showing returned exit flag from Ipopt. It could be 0, 1 or 2 etc. i.e. Optimal, Maximum Number of Iterations Exceeded, CPU time exceeded. Other flags one can see in the lsqlin macro.</para></listitem></varlistentry>
<varlistentry><term>output :</term>
<listitem><para> Structure containing information about the optimization. This version only contains number of iterations.</para></listitem></varlistentry>
<varlistentry><term>lambda :</term>
- <listitem><para> Structure containing the Lagrange multipliers at the solution x (separated by constraint type).It contains lower, upper and linear equality, inequality constraints.</para></listitem></varlistentry>
+ <listitem><para> Structure containing the Lagrange multipliers at the solution x (separated by constraint type).It contains lower, upper bound multiplier and linear equality, inequality constraint multiplier.</para></listitem></varlistentry>
</variablelist>
</refsection>
@@ -75,7 +77,6 @@
<title>Description</title>
<para>
Search the minimum of a constrained linear quadratic optimization problem specified by :
-find the minimum of f(x) such that
</para>
<para>
<latex>
@@ -98,17 +99,19 @@ The routine calls Ipopt for solving the quadratic problem, Ipopt is a library wr
<refsection>
<title>Examples</title>
<programlisting role="example"><![CDATA[
-//Find the value of x that minimize following function
-// f(x) = 0.5*x1^2 + x2^2 - x1*x2 - 2*x1 - 6*x2
-// Subject to:
-// x1 + x2 ≤ 2
-// –x1 + 2x2 ≤ 2
-// 2x1 + x2 ≤ 3
-// 0 ≤ x1, 0 ≤ x2.
-H = [1 -1; -1 2];
-f = [-2; -6];
-A = [1 1; -1 2; 2 1];
-b = [2; 2; 3];
+//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)
@@ -134,7 +137,7 @@ 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,[],param)
+[xopt,fopt,exitflag,output,lambda]=qpipoptmat(H,f,A,b,Aeq,beq,lb,ub,x0,param)
]]></programlisting>
</refsection>
diff --git a/help/en_US/scilab_en_US_help/JavaHelpSearch/DOCS b/help/en_US/scilab_en_US_help/JavaHelpSearch/DOCS
index 8ebf21b..d3146bf 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 728f68c..f0a1fcb 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 9468d7f..8a63187 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 d5dee46..423d132 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 e2b33d1..6df2edb 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=1446 id2=1
+TMAP bs=2048 rt=1 fl=-1 id1=1249 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 35dc462..6104335 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/lsqlin.html b/help/en_US/scilab_en_US_help/lsqlin.html
index aef773d..e9253c5 100644
--- a/help/en_US/scilab_en_US_help/lsqlin.html
+++ b/help/en_US/scilab_en_US_help/lsqlin.html
@@ -70,13 +70,13 @@
<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>
<dt><span class="term">residual :</span>
- <dd><p class="para">a vector of double, solution residuals returned as the vector C*x-d.</p></dd></dt>
+ <dd><p class="para">a vector of double, solution residuals returned as the vector d-C*x.</p></dd></dt>
<dt><span class="term">exitflag :</span>
- <dd><p class="para">Integer identifying the reason the algorithm terminated. It could be 0, 1 or 2 etc. i.e. Optimal, Maximum Number of Iterations Exceeded, CPU time exceeded. Other flags one can see in the lsqlin macro.</p></dd></dt>
+ <dd><p class="para">A flag showing returned exit flag from Ipopt. It could be 0, 1 or 2 etc. i.e. Optimal, Maximum Number of Iterations Exceeded, CPU time exceeded. Other flags one can see in the lsqlin macro.</p></dd></dt>
<dt><span class="term">output :</span>
<dd><p class="para">Structure containing information about the optimization. This version only contains number of iterations.</p></dd></dt>
<dt><span class="term">lambda :</span>
- <dd><p class="para">Structure containing the Lagrange multipliers at the solution x (separated by constraint type).It contains lower, upper bound multiplier and linear equality, inequality constraints.</p></dd></dt></dl></div>
+ <dd><p class="para">Structure containing the Lagrange multipliers at the solution x (separated by constraint type).It contains lower, upper bound multiplier and linear equality, inequality constraint multiplier.</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>
@@ -86,47 +86,41 @@
<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">0.9501</span> <span class="scilabnumber">0.7620</span> <span class="scilabnumber">0.6153</span> <span class="scilabnumber">0.4057</span>
-<span class="scilabnumber">0.2311</span> <span class="scilabnumber">0.4564</span> <span class="scilabnumber">0.7919</span> <span class="scilabnumber">0.9354</span>
-<span class="scilabnumber">0.6068</span> <span class="scilabnumber">0.0185</span> <span class="scilabnumber">0.9218</span> <span class="scilabnumber">0.9169</span>
-<span class="scilabnumber">0.4859</span> <span class="scilabnumber">0.8214</span> <span class="scilabnumber">0.7382</span> <span class="scilabnumber">0.4102</span>
-<span class="scilabnumber">0.8912</span> <span class="scilabnumber">0.4447</span> <span class="scilabnumber">0.1762</span> <span class="scilabnumber">0.8936</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
-<span class="scilabid">d</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">0.0578</span>
-<span class="scilabnumber">0.3528</span>
-<span class="scilabnumber">0.8131</span>
-<span class="scilabnumber">0.0098</span>
-<span class="scilabnumber">0.1388</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">0.2027</span> <span class="scilabnumber">0.2721</span> <span class="scilabnumber">0.7467</span> <span class="scilabnumber">0.4659</span>
-<span class="scilabnumber">0.1987</span> <span class="scilabnumber">0.1988</span> <span class="scilabnumber">0.4450</span> <span class="scilabnumber">0.4186</span>
-<span class="scilabnumber">0.6037</span> <span class="scilabnumber">0.0152</span> <span class="scilabnumber">0.9318</span> <span class="scilabnumber">0.8462</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">0.5251</span>
-<span class="scilabnumber">0.2026</span>
-<span class="scilabnumber">0.6721</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</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>
-<span class="scilabid">C</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">0.9501</span> <span class="scilabnumber">0.7620</span> <span class="scilabnumber">0.6153</span> <span class="scilabnumber">0.4057</span>
-<span class="scilabnumber">0.2311</span> <span class="scilabnumber">0.4564</span> <span class="scilabnumber">0.7919</span> <span class="scilabnumber">0.9354</span>
-<span class="scilabnumber">0.6068</span> <span class="scilabnumber">0.0185</span> <span class="scilabnumber">0.9218</span> <span class="scilabnumber">0.9169</span>
-<span class="scilabnumber">0.4859</span> <span class="scilabnumber">0.8214</span> <span class="scilabnumber">0.7382</span> <span class="scilabnumber">0.4102</span>
-<span class="scilabnumber">0.8912</span> <span class="scilabnumber">0.4447</span> <span class="scilabnumber">0.1762</span> <span class="scilabnumber">0.8936</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
-<span class="scilabid">d</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">0.0578</span>
-<span class="scilabnumber">0.3528</span>
-<span class="scilabnumber">0.8131</span>
-<span class="scilabnumber">0.0098</span>
-<span class="scilabnumber">0.1388</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">0.2027</span> <span class="scilabnumber">0.2721</span> <span class="scilabnumber">0.7467</span> <span class="scilabnumber">0.4659</span>
-<span class="scilabnumber">0.1987</span> <span class="scilabnumber">0.1988</span> <span class="scilabnumber">0.4450</span> <span class="scilabnumber">0.4186</span>
-<span class="scilabnumber">0.6037</span> <span class="scilabnumber">0.0152</span> <span class="scilabnumber">0.9318</span> <span class="scilabnumber">0.8462</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">0.5251</span>
-<span class="scilabnumber">0.2026</span>
-<span class="scilabnumber">0.6721</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">3</span> <span class="scilabnumber">5</span> <span class="scilabnumber">7</span> <span class="scilabnumber">9</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
-<span class="scilabid">beq</span> <span class="scilaboperator">=</span> <span class="scilabnumber">4</span><span class="scilabdefault">;</span>
-<span class="scilabid">lb</span> <span class="scilaboperator">=</span> <span class="scilaboperator">-</span><span class="scilabnumber">0.1</span><span class="scilaboperator">*</span><a class="scilabcommand" href="scilab://ones">ones</a><span class="scilabopenclose">(</span><span class="scilabnumber">4</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="scilabnumber">2</span><span class="scilaboperator">*</span><a class="scilabcommand" href="scilab://ones">ones</a><span class="scilabopenclose">(</span><span class="scilabnumber">4</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</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">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="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="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">Authors</h3>
diff --git a/help/en_US/scilab_en_US_help/lsqnonneg.html b/help/en_US/scilab_en_US_help/lsqnonneg.html
index e9a9110..7211c40 100644
--- a/help/en_US/scilab_en_US_help/lsqnonneg.html
+++ b/help/en_US/scilab_en_US_help/lsqnonneg.html
@@ -51,13 +51,13 @@
<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>
<dt><span class="term">residual :</span>
- <dd><p class="para">a vector of double, solution residuals returned as the vector C*x-d.</p></dd></dt>
+ <dd><p class="para">a vector of double, solution residuals returned as the vector d-C*x.</p></dd></dt>
<dt><span class="term">exitflag :</span>
- <dd><p class="para">Integer identifying the reason the algorithm terminated. It could be 0, 1 or 2 i.e. Optimal, Maximum Number of Iterations Exceeded, CPU time exceeded.</p></dd></dt>
+ <dd><p class="para">A flag showing returned exit flag from Ipopt. It could be 0, 1 or 2 etc. i.e. Optimal, Maximum Number of Iterations Exceeded, CPU time exceeded. Other flags one can see in the lsqlin macro.</p></dd></dt>
<dt><span class="term">output :</span>
<dd><p class="para">Structure containing information about the optimization. This version only contains number of iterations.</p></dd></dt>
<dt><span class="term">lambda :</span>
- <dd><p class="para">Structure containing the Lagrange multipliers at the solution x. It contains lower and upper bound multiplier.</p></dd></dt></dl></div>
+ <dd><p class="para">Structure containing the Lagrange multipliers at the solution xopt. It contains lower, upper bound multiplier and linear equality, inequality constraint multiplier.</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>
@@ -67,16 +67,16 @@
<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>
-<span class="scilabid">C</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span>
-<span class="scilabnumber">0.0372</span> <span class="scilabnumber">0.2869</span>
-<span class="scilabnumber">0.6861</span> <span class="scilabnumber">0.7071</span>
-<span class="scilabnumber">0.6233</span> <span class="scilabnumber">0.6245</span>
-<span class="scilabnumber">0.6344</span> <span class="scilabnumber">0.6170</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
-<span class="scilabid">d</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span>
-<span class="scilabnumber">0.8587</span>
-<span class="scilabnumber">0.1781</span>
-<span class="scilabnumber">0.0747</span>
-<span class="scilabnumber">0.8405</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</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="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">Authors</h3>
diff --git a/help/en_US/scilab_en_US_help/qpipopt.html b/help/en_US/scilab_en_US_help/qpipopt.html
index 349bbc4..31f389f 100644
--- a/help/en_US/scilab_en_US_help/qpipopt.html
+++ b/help/en_US/scilab_en_US_help/qpipopt.html
@@ -70,20 +70,41 @@
<dt><span class="term">fopt :</span>
<dd><p class="para">a double, the function value at x.</p></dd></dt>
<dt><span class="term">exitflag :</span>
- <dd><p class="para">Integer identifying the reason the algorithm terminated. It could be 0, 1 or 2 etc. i.e. Optimal, Maximum Number of Iterations Exceeded, CPU time exceeded. Other flags one can see in the qpipopt macro.</p></dd></dt>
+ <dd><p class="para">A flag showing returned exit flag from Ipopt. It could be 0, 1 or 2 etc. i.e. Optimal, Maximum Number of Iterations Exceeded, CPU time exceeded. Other flags one can see in the lsqlin macro.</p></dd></dt>
<dt><span class="term">output :</span>
<dd><p class="para">Structure containing information about the optimization. This version only contains number of iterations</p></dd></dt>
<dt><span class="term">lambda :</span>
- <dd><p class="para">Structure containing the Lagrange multipliers at the solution x (separated by constraint type).It contains lower, upper and linear equality, inequality constraints.</p></dd></dt></dl></div>
+ <dd><p class="para">Structure containing the Lagrange multipliers at the solution x (separated by constraint type).It contains lower, upper bound multiplier and linear equality, inequality constraint multiplier.</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 :
-find the minimum of f(x) such that</p>
+ <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"></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">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="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>
@@ -100,27 +121,7 @@ find the minimum of f(x) such that</p>
<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>
-<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 the value of x that minimize following function</span>
-<span class="scilabcomment">// f(x) = 0.5*x1^2 + x2^2 - x1*x2 - 2*x1 - 6*x2</span>
-<span class="scilabcomment">// Subject to:</span>
-<span class="scilabcomment">// x1 + x2 ≤ 2</span>
-<span class="scilabcomment">// –x1 + 2x2 ≤ 2</span>
-<span class="scilabcomment">// 2x1 + x2 ≤ 3</span>
-<span class="scilabcomment">// 0 ≤ x1, 0 ≤ x2.</span>
-<span class="scilabid">H</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</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="scilabnumber">2</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">2</span><span class="scilabdefault">;</span> <span class="scilaboperator">-</span><span class="scilabnumber">6</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="scilaboperator">-</span><span class="scilabnumber">1</span> <span class="scilabnumber">2</span><span class="scilabdefault">;</span> <span class="scilabnumber">2</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">2</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="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="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">3</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></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">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">Authors</h3>
<ul class="itemizedlist"><li class="member">Keyur Joshi, Saikiran, Iswarya, Harpreet Singh</li></ul></div>
diff --git a/help/en_US/scilab_en_US_help/qpipoptmat.html b/help/en_US/scilab_en_US_help/qpipoptmat.html
index 73c7298..6c195ea 100644
--- a/help/en_US/scilab_en_US_help/qpipoptmat.html
+++ b/help/en_US/scilab_en_US_help/qpipoptmat.html
@@ -70,32 +70,35 @@
<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 function value at x.</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>
<dt><span class="term">exitflag :</span>
- <dd><p class="para">Integer identifying the reason the algorithm terminated.It could be 0, 1 or 2 etc. i.e. Optimal, Maximum Number of Iterations Exceeded, CPU time exceeded. Other flags one can see in the qpipoptmat macro.</p></dd></dt>
+ <dd><p class="para">A flag showing returned exit flag from Ipopt. It could be 0, 1 or 2 etc. i.e. Optimal, Maximum Number of Iterations Exceeded, CPU time exceeded. Other flags one can see in the lsqlin macro.</p></dd></dt>
<dt><span class="term">output :</span>
<dd><p class="para">Structure containing information about the optimization. This version only contains number of iterations.</p></dd></dt>
<dt><span class="term">lambda :</span>
- <dd><p class="para">Structure containing the Lagrange multipliers at the solution x (separated by constraint type).It contains lower, upper and linear equality, inequality constraints.</p></dd></dt></dl></div>
+ <dd><p class="para">Structure containing the Lagrange multipliers at the solution x (separated by constraint type).It contains lower, upper bound multiplier and linear equality, inequality constraint multiplier.</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 :
-find the minimum of f(x) such that</p>
+ <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"></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 the value of x that minimize following function</span>
-<span class="scilabcomment">// f(x) = 0.5*x1^2 + x2^2 - x1*x2 - 2*x1 - 6*x2</span>
-<span class="scilabcomment">// Subject to:</span>
-<span class="scilabcomment">// x1 + x2 ≤ 2</span>
-<span class="scilabcomment">// –x1 + 2x2 ≤ 2</span>
-<span class="scilabcomment">// 2x1 + x2 ≤ 3</span>
-<span class="scilabcomment">// 0 ≤ x1, 0 ≤ x2.</span>
-<span class="scilabid">H</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">1</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="scilabnumber">2</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">2</span><span class="scilabdefault">;</span> <span class="scilaboperator">-</span><span class="scilabnumber">6</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="scilaboperator">-</span><span class="scilabnumber">1</span> <span class="scilabnumber">2</span><span class="scilabdefault">;</span> <span class="scilabnumber">2</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">2</span><span class="scilabdefault">;</span> <span class="scilabnumber">3</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+ <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>
@@ -116,7 +119,7 @@ find the minimum of f(x) such that</p>
<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">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="scilabopenclose">[</span><span class="scilabopenclose">]</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="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>
<div class="refsection"><h3 class="title">Authors</h3>
<ul class="itemizedlist"><li class="member">Keyur Joshi, Saikiran, Iswarya, Harpreet Singh</li></ul></div>
diff --git a/help/en_US/scilab_en_US_help/symphony.html b/help/en_US/scilab_en_US_help/symphony.html
index b81bbb0..e374a30 100644
--- a/help/en_US/scilab_en_US_help/symphony.html
+++ b/help/en_US/scilab_en_US_help/symphony.html
@@ -70,19 +70,18 @@
<dt><span class="term">fopt :</span>
<dd><p class="para">a double, the function value at x.</p></dd></dt>
<dt><span class="term">status :</span>
- <dd><p class="para">status flag from symphony. 227 is optimal, 228 is Time limit exceeded, 230 is iteration limit exceeded.</p></dd></dt>
+ <dd><p class="para">status flag returned from symphony. 227 is optimal, 228 is Time limit exceeded, 230 is iteration limit exceeded.</p></dd></dt>
<dt><span class="term">output :</span>
<dd><p class="para">The output data structure contains detailed information about the optimization process. This version only contains number of iterations</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 :
-find the minimum or maximum of f(x) such that</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: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"></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 case :</span>
+ <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>
diff --git a/help/en_US/scilab_en_US_help/symphonymat.html b/help/en_US/scilab_en_US_help/symphonymat.html
index fc60daf..203f2d4 100644
--- a/help/en_US/scilab_en_US_help/symphonymat.html
+++ b/help/en_US/scilab_en_US_help/symphonymat.html
@@ -67,19 +67,19 @@
<dt><span class="term">fopt :</span>
<dd><p class="para">a double, the function value at x</p></dd></dt>
<dt><span class="term">status :</span>
- <dd><p class="para">status flag from symphony. 227 is optimal, 228 is Time limit exceeded, 230 is iteration limit exceeded.</p></dd></dt>
+ <dd><p class="para">status flag returned from symphony. 227 is optimal, 228 is Time limit exceeded, 230 is iteration limit exceeded.</p></dd></dt>
<dt><span class="term">output :</span>
<dd><p class="para">The output data structure contains detailed information about the optimization process. This version only contains number of iterations.</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 :
-find the minimum or maximum of C&#0039;⋅x such that</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_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"></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>
<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">1</span><span class="scilabdefault">,</span><span class="scilabnumber">8</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
diff --git a/help/en_US/symphony.xml b/help/en_US/symphony.xml
index c0caa8e..da156ce 100644
--- a/help/en_US/symphony.xml
+++ b/help/en_US/symphony.xml
@@ -62,7 +62,7 @@
<varlistentry><term>fopt :</term>
<listitem><para> a double, the function value at x.</para></listitem></varlistentry>
<varlistentry><term>status :</term>
- <listitem><para> status flag from symphony. 227 is optimal, 228 is Time limit exceeded, 230 is iteration limit exceeded.</para></listitem></varlistentry>
+ <listitem><para> status flag returned from symphony. 227 is optimal, 228 is Time limit exceeded, 230 is iteration limit exceeded.</para></listitem></varlistentry>
<varlistentry><term>output :</term>
<listitem><para> The output data structure contains detailed information about the optimization process. This version only contains number of iterations</para></listitem></varlistentry>
</variablelist>
@@ -72,7 +72,6 @@
<title>Description</title>
<para>
Search the minimum or maximum of a constrained mixed integer linear programming optimization problem specified by :
-find the minimum or maximum of f(x) such that
</para>
<para>
<latex>
@@ -95,7 +94,7 @@ The routine calls SYMPHONY written in C by gateway files for the actual computat
<refsection>
<title>Examples</title>
<programlisting role="example"><![CDATA[
-//A basic case :
+//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
diff --git a/help/en_US/symphonymat.xml b/help/en_US/symphonymat.xml
index cf95807..68ec072 100644
--- a/help/en_US/symphonymat.xml
+++ b/help/en_US/symphonymat.xml
@@ -59,7 +59,7 @@
<varlistentry><term>fopt :</term>
<listitem><para> a double, the function value at x</para></listitem></varlistentry>
<varlistentry><term>status :</term>
- <listitem><para> status flag from symphony. 227 is optimal, 228 is Time limit exceeded, 230 is iteration limit exceeded.</para></listitem></varlistentry>
+ <listitem><para> status flag returned from symphony. 227 is optimal, 228 is Time limit exceeded, 230 is iteration limit exceeded.</para></listitem></varlistentry>
<varlistentry><term>output :</term>
<listitem><para> The output data structure contains detailed information about the optimization process. This version only contains number of iterations.</para></listitem></varlistentry>
</variablelist>
@@ -69,7 +69,6 @@
<title>Description</title>
<para>
Search the minimum or maximum of a constrained mixed integer linear programming optimization problem specified by :
-find the minimum or maximum of C'⋅x such that
</para>
<para>
<latex>
@@ -94,6 +93,7 @@ The routine calls SYMPHONY written in C by gateway files for the actual computat
<title>Examples</title>
<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.
c = [350*5,330*3,310*4,280*6,500,450,400,100]';
// Lower Bound of variable
lb = repmat(0,1,8);
diff --git a/jar/scilab_en_US_help.jar b/jar/scilab_en_US_help.jar
index 204eacb..4e1dc60 100644
--- a/jar/scilab_en_US_help.jar
+++ b/jar/scilab_en_US_help.jar
Binary files differ
diff --git a/macros/buildmacros.sce b/macros/buildmacros.sce
index 656ff4a..fe6a619 100644
--- a/macros/buildmacros.sce
+++ b/macros/buildmacros.sce
@@ -1,13 +1,13 @@
// Copyright (C) 2015 - IIT Bombay - FOSSEE
//
-// Author: Harpreet Singh
-// Organization: FOSSEE, IIT Bombay
-// Email: harpreet.mertia@gmail.com
// This file must be used under the terms of the CeCILL.
// This source file is licensed as described in the file COPYING, which
// you should have received as part of this distribution. The terms
// are also available at
// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Harpreet Singh
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
tbx_build_macros("Symphony", get_absolute_file_path("buildmacros.sce"));
diff --git a/macros/lsqlin.bin b/macros/lsqlin.bin
index 8c30789..1359535 100644
--- a/macros/lsqlin.bin
+++ b/macros/lsqlin.bin
Binary files differ
diff --git a/macros/lsqlin.sci b/macros/lsqlin.sci
index fba036d..9460424 100644
--- a/macros/lsqlin.sci
+++ b/macros/lsqlin.sci
@@ -1,13 +1,13 @@
// Copyright (C) 2015 - IIT Bombay - FOSSEE
//
-// Author: Harpreet Singh
-// Organization: FOSSEE, IIT Bombay
-// Email: harpreet.mertia@gmail.com
// This file must be used under the terms of the CeCILL.
// This source file is licensed as described in the file COPYING, which
// you should have received as part of this distribution. The terms
// are also available at
// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Harpreet Singh
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
function [xopt,resnorm,residual,exitflag,output,lambda] = lsqlin (varargin)
@@ -34,10 +34,10 @@ function [xopt,resnorm,residual,exitflag,output,lambda] = lsqlin (varargin)
// param : a list containing the the parameters to be set.
// xopt : a vector of double, the computed solution of the optimization problem.
// resnorm : a double, objective value returned as the scalar value norm(C*x-d)^2.
- // residual : a vector of double, solution residuals returned as the vector C*x-d.
- // exitflag : Integer identifying the reason the algorithm terminated. It could be 0, 1 or 2 etc. i.e. Optimal, Maximum Number of Iterations Exceeded, CPU time exceeded. Other flags one can see in the lsqlin macro.
+ // residual : a vector of double, solution residuals returned as the vector d-C*x.
+ // exitflag : A flag showing returned exit flag from Ipopt. It could be 0, 1 or 2 etc. i.e. Optimal, Maximum Number of Iterations Exceeded, CPU time exceeded. Other flags one can see in the lsqlin macro.
// output : Structure containing information about the optimization. This version only contains number of iterations.
- // lambda : Structure containing the Lagrange multipliers at the solution x (separated by constraint type).It contains lower, upper bound multiplier and linear equality, inequality constraints.
+ // lambda : Structure containing the Lagrange multipliers at the solution x (separated by constraint type).It contains lower, upper bound multiplier and linear equality, inequality constraint multiplier.
//
// Description
// Search the minimum of a constrained linear least square problem specified by :
@@ -56,48 +56,42 @@ function [xopt,resnorm,residual,exitflag,output,lambda] = lsqlin (varargin)
//
// Examples
// //A simple linear least square example
- // C = [0.9501 0.7620 0.6153 0.4057
- // 0.2311 0.4564 0.7919 0.9354
- // 0.6068 0.0185 0.9218 0.9169
- // 0.4859 0.8214 0.7382 0.4102
- // 0.8912 0.4447 0.1762 0.8936];
- // d = [0.0578
- // 0.3528
- // 0.8131
- // 0.0098
- // 0.1388];
- // A = [0.2027 0.2721 0.7467 0.4659
- // 0.1987 0.1988 0.4450 0.4186
- // 0.6037 0.0152 0.9318 0.8462];
- // b = [0.5251
- // 0.2026
- // 0.6721];
+ // 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
//
// Examples
// //A basic example for equality, inequality constraints and variable bounds
- // C = [0.9501 0.7620 0.6153 0.4057
- // 0.2311 0.4564 0.7919 0.9354
- // 0.6068 0.0185 0.9218 0.9169
- // 0.4859 0.8214 0.7382 0.4102
- // 0.8912 0.4447 0.1762 0.8936];
- // d = [0.0578
- // 0.3528
- // 0.8131
- // 0.0098
- // 0.1388];
- // A =[0.2027 0.2721 0.7467 0.4659
- // 0.1987 0.1988 0.4450 0.4186
- // 0.6037 0.0152 0.9318 0.8462];
- // b =[0.5251
- // 0.2026
- // 0.6721];
- // Aeq = [3 5 7 9];
- // beq = 4;
- // lb = -0.1*ones(4,1);
- // ub = 2*ones(4,1);
- // [xopt,resnorm,residual,exitflag,output,lambda] = lsqlin(C,d,A,b,Aeq,beq,lb,ub)
+ // C = [1 1 1;
+ // 1 1 0;
+ // 0 1 1;
+ // 1 0 0;
+ // 0 0 1]
+ // d = [89;
+ // 67;
+ // 53;
+ // 35;
+ // 20;]
+ // A = [3 2 1;
+ // 2 3 4;
+ // 1 2 3];
+ // b = [191
+ // 209
+ // 162];
+ // Aeq = [1 2 1];
+ // beq = 10;
+ // lb = repmat(0.1,3,1);
+ // ub = repmat(4,3,1);
+ // [xopt,resnorm,residual,exitflag,output,lambda] = lsqlin(C,d,A,b,Aeq,beq,lb,ub)
// Authors
// Harpreet Singh
@@ -238,7 +232,7 @@ function [xopt,resnorm,residual,exitflag,output,lambda] = lsqlin (varargin)
//Check the size of equality constraint which should be equal to the number of variables
if ( size(Aeq,2) ~= nbVar & size(Aeq,2) ~= 0 ) then
- errmsg = msprintf(gettext("%s: The number of columns in Aeq must be the same as the number of elements of d"), "lsqlin");
+ errmsg = msprintf(gettext("%s: The number of columns in Aeq must be the same as the number of columns in C"), "lsqlin");
error(errmsg);
end
@@ -333,7 +327,7 @@ function [xopt,resnorm,residual,exitflag,output,lambda] = lsqlin (varargin)
[xopt,fopt,status,iter,Zl,Zu,lmbda] = solveqp(nbVar,nbCon,H,f,conMatrix,conLB,conUB,lb,ub,x0,options);
xopt = xopt';
- residual = -1*(C*xopt-d);
+ residual = d-C*xopt;
resnorm = residual'*residual;
exitflag = status;
output = struct("Iterations" , []);
diff --git a/macros/lsqnonneg.bin b/macros/lsqnonneg.bin
index 182cfa9..b480250 100644
--- a/macros/lsqnonneg.bin
+++ b/macros/lsqnonneg.bin
Binary files differ
diff --git a/macros/lsqnonneg.sci b/macros/lsqnonneg.sci
index 5f6ffa2..80ec92a 100644
--- a/macros/lsqnonneg.sci
+++ b/macros/lsqnonneg.sci
@@ -1,13 +1,13 @@
// Copyright (C) 2015 - IIT Bombay - FOSSEE
//
-// Author: Harpreet Singh
-// Organization: FOSSEE, IIT Bombay
-// Email: harpreet.mertia@gmail.com
// This file must be used under the terms of the CeCILL.
// This source file is licensed as described in the file COPYING, which
// you should have received as part of this distribution. The terms
// are also available at
// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Harpreet Singh
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
function [xopt,resnorm,residual,exitflag,output,lambda] = lsqnonneg (varargin)
@@ -23,10 +23,10 @@ function [xopt,resnorm,residual,exitflag,output,lambda] = lsqnonneg (varargin)
// d : 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.
// xopt : a vector of double, the computed solution of the optimization problem.
// resnorm : a double, objective value returned as the scalar value norm(C*x-d)^2.
- // residual : a vector of double, solution residuals returned as the vector C*x-d.
- // exitflag : Integer identifying the reason the algorithm terminated. It could be 0, 1 or 2 i.e. Optimal, Maximum Number of Iterations Exceeded, CPU time exceeded.
+ // residual : a vector of double, solution residuals returned as the vector d-C*x.
+ // exitflag : A flag showing returned exit flag from Ipopt. It could be 0, 1 or 2 etc. i.e. Optimal, Maximum Number of Iterations Exceeded, CPU time exceeded. Other flags one can see in the lsqlin macro.
// output : Structure containing information about the optimization. This version only contains number of iterations.
- // lambda : Structure containing the Lagrange multipliers at the solution x. It contains lower and upper bound multiplier.
+ // lambda : Structure containing the Lagrange multipliers at the solution xopt. It contains lower, upper bound multiplier and linear equality, inequality constraint multiplier.
//
// Description
// Solves nonnegative least-squares curve fitting problems specified by :
@@ -43,16 +43,16 @@ function [xopt,resnorm,residual,exitflag,output,lambda] = lsqnonneg (varargin)
//
// Examples
// // A basic lsqnonneg problem
- // C = [
- // 0.0372 0.2869
- // 0.6861 0.7071
- // 0.6233 0.6245
- // 0.6344 0.6170];
- // d = [
- // 0.8587
- // 0.1781
- // 0.0747
- // 0.8405];
+ // C = [1 1 1;
+ // 1 1 0;
+ // 0 1 1;
+ // 1 0 0;
+ // 0 0 1]
+ // d = [89;
+ // 67;
+ // 53;
+ // 35;
+ // 20;]
// [xopt,resnorm,residual,exitflag,output,lambda] = lsqnonneg(C,d)
// Authors
// Harpreet Singh
diff --git a/macros/qpipopt.bin b/macros/qpipopt.bin
index 4a407c4..19a7040 100644
--- a/macros/qpipopt.bin
+++ b/macros/qpipopt.bin
Binary files differ
diff --git a/macros/qpipopt.sci b/macros/qpipopt.sci
index ed531e1..e8c945a 100644
--- a/macros/qpipopt.sci
+++ b/macros/qpipopt.sci
@@ -1,108 +1,109 @@
// Copyright (C) 2015 - IIT Bombay - FOSSEE
//
-// Author: Harpreet Singh
-// Organization: FOSSEE, IIT Bombay
-// Email: harpreet.mertia@gmail.com
// This file must be used under the terms of the CeCILL.
// This source file is licensed as described in the file COPYING, which
// you should have received as part of this distribution. The terms
// are also available at
// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Harpreet Singh
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
function [xopt,fopt,exitflag,output,lambda] = qpipopt (varargin)
- // Solves a linear quadratic problem.
- //
- // Calling Sequence
- // 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,fopt,exitflag,output,lamda] = qpipopt( ... )
- //
- // Parameters
- // nbVar : a double, number of variables
- // nbCon : a double, number of constraints
- // H : a symmetric matrix of double, represents coefficients of quadratic in the quadratic problem.
- // f : a vector of double, represents coefficients of linear in the quadratic problem
- // lb : a vector of double, contains lower bounds of the variables.
- // ub : a vector of double, contains upper bounds of the variables.
- // A : a matrix of double, contains matrix representing the constraint matrix
- // conLB : a vector of double, contains lower bounds of the constraints.
- // conUB : a vector of double, contains upper bounds of the constraints.
- // x0 : a vector of double, contains initial guess of variables.
- // param : a list containing the the parameters to be set.
- // xopt : a vector of double, the computed solution of the optimization problem.
- // fopt : a double, the function value at x.
- // exitflag : Integer identifying the reason the algorithm terminated. It could be 0, 1 or 2 etc. i.e. Optimal, Maximum Number of Iterations Exceeded, CPU time exceeded. Other flags one can see in the qpipopt macro.
- // output : Structure containing information about the optimization. This version only contains number of iterations
- // lambda : Structure containing the Lagrange multipliers at the solution x (separated by constraint type).It contains lower, upper and linear equality, inequality constraints.
- //
- // Description
- // Search the minimum of a constrained linear quadratic optimization problem specified by :
- // find the minimum of f(x) such that
- //
- // <latex>
- // \begin{eqnarray}
- // &\mbox{min}_{x}
- // & 1/2⋅x^T⋅H⋅x + f^T⋅x \\
- // & \text{subject to} & conLB \leq A⋅x \leq conUB \\
- // & & lb \leq x \leq ub \\
- // \end{eqnarray}
- // </latex>
- //
- // The routine calls Ipopt for solving the quadratic problem, Ipopt is a library written in C++.
- //
- // Examples
- // //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)
- // // Press ENTER to continue
- //
- // Examples
- // //Find the value of x that minimize following function
- // // f(x) = 0.5*x1^2 + x2^2 - x1*x2 - 2*x1 - 6*x2
- // // Subject to:
- // // x1 + x2 ≤ 2
- // // –x1 + 2x2 ≤ 2
- // // 2x1 + x2 ≤ 3
- // // 0 ≤ x1, 0 ≤ x2.
- // H = [1 -1; -1 2];
- // f = [-2; -6];
- // A = [1 1; -1 2; 2 1];
- // conUB = [2; 2; 3];
- // conLB = [-%inf; -%inf; -%inf];
- // lb = [0; 0];
- // ub = [%inf; %inf];
- // nbVar = 2;
- // nbCon = 3;
- // [xopt,fopt,exitflag,output,lambda] = qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB)
- // Authors
- // Keyur Joshi, Saikiran, Iswarya, Harpreet Singh
+ // Solves a linear quadratic problem.
+ //
+ // Calling Sequence
+ // 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,fopt,exitflag,output,lamda] = qpipopt( ... )
+ //
+ // Parameters
+ // nbVar : a double, number of variables
+ // nbCon : a double, number of constraints
+ // H : a symmetric matrix of double, represents coefficients of quadratic in the quadratic problem.
+ // f : a vector of double, represents coefficients of linear in the quadratic problem
+ // lb : a vector of double, contains lower bounds of the variables.
+ // ub : a vector of double, contains upper bounds of the variables.
+ // A : a matrix of double, contains matrix representing the constraint matrix
+ // conLB : a vector of double, contains lower bounds of the constraints.
+ // conUB : a vector of double, contains upper bounds of the constraints.
+ // x0 : a vector of double, contains initial guess of variables.
+ // param : a list containing the the parameters to be set.
+ // xopt : a vector of double, the computed solution of the optimization problem.
+ // fopt : a double, the function value at x.
+ // exitflag : A flag showing returned exit flag from Ipopt. It could be 0, 1 or 2 etc. i.e. Optimal, Maximum Number of Iterations Exceeded, CPU time exceeded. Other flags one can see in the lsqlin macro.
+ // output : Structure containing information about the optimization. This version only contains number of iterations
+ // lambda : Structure containing the Lagrange multipliers at the solution x (separated by constraint type).It contains lower, upper bound multiplier and linear equality, inequality constraint multiplier.
+ //
+ // Description
+ // Search the minimum of a constrained linear quadratic optimization problem specified by :
+ //
+ // <latex>
+ // \begin{eqnarray}
+ // &\mbox{min}_{x}
+ // & 1/2⋅x^T⋅H⋅x + f^T⋅x \\
+ // & \text{subject to} & conLB \leq A⋅x \leq conUB \\
+ // & & lb \leq x \leq ub \\
+ // \end{eqnarray}
+ // </latex>
+ //
+ // The routine calls Ipopt for solving the quadratic problem, Ipopt is a library written in C++.
+ //
+ // Examples
+ // //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];
+ // 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
+ //
+ // Examples
+ // //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)
+ // Authors
+ // Keyur Joshi, Saikiran, Iswarya, Harpreet Singh
-//To check the number of input and output argument
- [lhs , rhs] = argn();
+ //To check the number of input and output argument
+ [lhs , rhs] = argn();
-//To check the number of argument given by user
- if ( rhs < 9 | rhs > 11 ) then
- errmsg = msprintf(gettext("%s: Unexpected number of input arguments : %d provided while should be 9, 10 or 11"), "qpipopt", rhs);
- error(errmsg)
- end
-
+ //To check the number of argument given by user
+ if ( rhs < 9 | rhs > 11 ) then
+ errmsg = msprintf(gettext("%s: Unexpected number of input arguments : %d provided while should be 9, 10 or 11"), "qpipopt", rhs);
+ error(errmsg)
+ end
+
nbVar = [];
nbCon = [];
H = [];
diff --git a/macros/qpipoptmat.bin b/macros/qpipoptmat.bin
index 35142ae..817f0f9 100644
--- a/macros/qpipoptmat.bin
+++ b/macros/qpipoptmat.bin
Binary files differ
diff --git a/macros/qpipoptmat.sci b/macros/qpipoptmat.sci
index 8e9c67e..d019aa1 100644
--- a/macros/qpipoptmat.sci
+++ b/macros/qpipoptmat.sci
@@ -1,13 +1,13 @@
// Copyright (C) 2015 - IIT Bombay - FOSSEE
//
-// Author: Harpreet Singh
-// Organization: FOSSEE, IIT Bombay
-// Email: harpreet.mertia@gmail.com
// This file must be used under the terms of the CeCILL.
// This source file is licensed as described in the file COPYING, which
// you should have received as part of this distribution. The terms
// are also available at
// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Harpreet Singh
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
function [xopt,fopt,exitflag,output,lambda] = qpipoptmat (varargin)
@@ -35,13 +35,13 @@ function [xopt,fopt,exitflag,output,lambda] = qpipoptmat (varargin)
// param : a list containing the the parameters to be set.
// xopt : a vector of double, the computed solution of the optimization problem.
// fopt : a double, the function value at x.
- // exitflag : Integer identifying the reason the algorithm terminated.It could be 0, 1 or 2 etc. i.e. Optimal, Maximum Number of Iterations Exceeded, CPU time exceeded. Other flags one can see in the qpipoptmat macro.
+ // residual : a vector of double, solution residuals returned as the vector d-C*x.
+ // exitflag : A flag showing returned exit flag from Ipopt. It could be 0, 1 or 2 etc. i.e. Optimal, Maximum Number of Iterations Exceeded, CPU time exceeded. Other flags one can see in the lsqlin macro.
// output : Structure containing information about the optimization. This version only contains number of iterations.
- // lambda : Structure containing the Lagrange multipliers at the solution x (separated by constraint type).It contains lower, upper and linear equality, inequality constraints.
+ // lambda : Structure containing the Lagrange multipliers at the solution x (separated by constraint type).It contains lower, upper bound multiplier and linear equality, inequality constraint multiplier.
//
// Description
// Search the minimum of a constrained linear quadratic optimization problem specified by :
- // find the minimum of f(x) such that
//
// <latex>
// \begin{eqnarray}
@@ -56,17 +56,19 @@ function [xopt,fopt,exitflag,output,lambda] = qpipoptmat (varargin)
// The routine calls Ipopt for solving the quadratic problem, Ipopt is a library written in C++.
//
// Examples
- // //Find the value of x that minimize following function
- // // f(x) = 0.5*x1^2 + x2^2 - x1*x2 - 2*x1 - 6*x2
- // // Subject to:
- // // x1 + x2 ≤ 2
- // // –x1 + 2x2 ≤ 2
- // // 2x1 + x2 ≤ 3
- // // 0 ≤ x1, 0 ≤ x2.
- // H = [1 -1; -1 2];
- // f = [-2; -6];
- // A = [1 1; -1 2; 2 1];
- // b = [2; 2; 3];
+ // //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)
@@ -87,7 +89,7 @@ function [xopt,fopt,exitflag,output,lambda] = qpipoptmat (varargin)
// 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,[],param)
+ // [xopt,fopt,exitflag,output,lambda]=qpipoptmat(H,f,A,b,Aeq,beq,lb,ub,x0,param)
// Authors
// Keyur Joshi, Saikiran, Iswarya, Harpreet Singh
diff --git a/macros/setOptions.sci b/macros/setOptions.sci
index 68aad02..995b2fb 100644
--- a/macros/setOptions.sci
+++ b/macros/setOptions.sci
@@ -1,13 +1,13 @@
// Copyright (C) 2015 - IIT Bombay - FOSSEE
//
-// Author: Harpreet Singh
-// Organization: FOSSEE, IIT Bombay
-// Email: harpreet.mertia@gmail.com
// This file must be used under the terms of the CeCILL.
// This source file is licensed as described in the file COPYING, which
// you should have received as part of this distribution. The terms
// are also available at
// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Harpreet Singh
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
function setOptions(varargin)
diff --git a/macros/symphony.bin b/macros/symphony.bin
index 9217660..87b6444 100644
--- a/macros/symphony.bin
+++ b/macros/symphony.bin
Binary files differ
diff --git a/macros/symphony.sci b/macros/symphony.sci
index 264a513..d465b90 100644
--- a/macros/symphony.sci
+++ b/macros/symphony.sci
@@ -1,13 +1,13 @@
// Copyright (C) 2015 - IIT Bombay - FOSSEE
//
-// Author: Harpreet Singh
-// Organization: FOSSEE, IIT Bombay
-// Email: harpreet.mertia@gmail.com
// This file must be used under the terms of the CeCILL.
// This source file is licensed as described in the file COPYING, which
// you should have received as part of this distribution. The terms
// are also available at
// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Harpreet Singh
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
function [xopt,fopt,status,output] = symphony (varargin)
// Solves a mixed integer linear programming constrained optimization problem.
@@ -32,12 +32,11 @@ function [xopt,fopt,status,output] = symphony (varargin)
// options : a list containing the the parameters to be set.
// xopt : a vector of double, the computed solution of the optimization problem.
// fopt : a double, the function value at x.
- // status : status flag from symphony. 227 is optimal, 228 is Time limit exceeded, 230 is iteration limit exceeded.
+ // status : status flag returned from symphony. 227 is optimal, 228 is Time limit exceeded, 230 is iteration limit exceeded.
// output : The output data structure contains detailed information about the optimization process. This version only contains number of iterations
//
// Description
// Search the minimum or maximum of a constrained mixed integer linear programming optimization problem specified by :
- // find the minimum or maximum of f(x) such that
//
// <latex>
// \begin{eqnarray}
@@ -52,7 +51,7 @@ function [xopt,fopt,status,output] = symphony (varargin)
// The routine calls SYMPHONY written in C by gateway files for the actual computation.
//
// Examples
- // //A basic case :
+ // //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
@@ -203,8 +202,21 @@ function [xopt,fopt,status,output] = symphony (varargin)
options = varargin(11);
end
-// Check if the user gives row vector
-// and Changing it to a column matrix
+ // Check if the user gives empty matrix
+ if (size(lb,2)==0) then
+ lb = repmat(-%inf,nbVar,1);
+ end
+
+ if (size(isInt,2)==0) then
+ isInt = repmat(%f,nbVar,1);
+ end
+
+ if (size(ub,2)==0) then
+ ub = repmat(%inf,nbVar,1);
+ end
+
+ // Check if the user gives row vector
+ // and Changing it to a column matrix
if (size(isInt,2)== [nbVar]) then
isInt = isInt';
@@ -262,7 +274,7 @@ function [xopt,fopt,status,output] = symphony (varargin)
end
//Check the column of constraint which should equal to the number of variables
- if ( size(A,2) ~= nbVar) then
+ if ( size(A,2) ~= nbVar & size(A,2) ~= 0) then
errmsg = msprintf(gettext("%s: The number of columns in constraint should equal to the number of variables"), "Symphony");
error(errmsg);
end
diff --git a/macros/symphony_call.sci b/macros/symphony_call.sci
index cfe73ae..af066f4 100644
--- a/macros/symphony_call.sci
+++ b/macros/symphony_call.sci
@@ -1,13 +1,13 @@
// Copyright (C) 2015 - IIT Bombay - FOSSEE
//
-// Author: Harpreet Singh
-// Organization: FOSSEE, IIT Bombay
-// Email: harpreet.mertia@gmail.com
// This file must be used under the terms of the CeCILL.
// This source file is licensed as described in the file COPYING, which
// you should have received as part of this distribution. The terms
// are also available at
// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Harpreet Singh
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
function [xopt,fopt,status,output] = symphony_call(nbVar,nbCon,objCoef,isInt,LB,UB,conMatrix,conLB,conUB,objSense,options)
diff --git a/macros/symphonymat.bin b/macros/symphonymat.bin
index 0841d41..eacbd5c 100644
--- a/macros/symphonymat.bin
+++ b/macros/symphonymat.bin
Binary files differ
diff --git a/macros/symphonymat.sci b/macros/symphonymat.sci
index 2c0c18d..67e64c5 100644
--- a/macros/symphonymat.sci
+++ b/macros/symphonymat.sci
@@ -1,162 +1,162 @@
// Copyright (C) 2015 - IIT Bombay - FOSSEE
//
-// Author: Harpreet Singh
-// Organization: FOSSEE, IIT Bombay
-// Email: harpreet.mertia@gmail.com
// This file must be used under the terms of the CeCILL.
// This source file is licensed as described in the file COPYING, which
// you should have received as part of this distribution. The terms
// are also available at
// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Harpreet Singh
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
function [xopt,fopt,status,iter] = symphonymat (varargin)
- // Solves a mixed integer linear programming constrained optimization problem in intlinprog format.
- //
- // Calling Sequence
- // xopt = symphonymat(c,intcon,A,b)
- // xopt = symphonymat(c,intcon,A,b,Aeq,beq)
- // xopt = symphonymat(c,intcon,A,b,Aeq,beq,lb,ub)
- // xopt = symphonymat(c,intcon,A,b,Aeq,beq,lb,ub,options)
- // [xopt,fopt,status,output] = symphonymat( ... )
- //
- // Parameters
- // c : a vector of double, contains coefficients of the variables in the objective
- // intcon : 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.
- // A : Linear inequality constraint matrix, specified as a matrix of double. A represents the linear coefficients in the constraints A*x ≤ b. A has the size where columns equals to the number of variables.
- // b : Linear inequality constraint vector, specified as a vector of double. b represents the constant vector in the constraints A*x ≤ b. b has size equals to the number of rows in A.
- // Aeq : Linear equality constraint matrix, specified as a matrix of double. Aeq represents the linear coefficients in the constraints Aeq*x = beq. Aeq has the size where columns equals to the number of variables.
- // beq : Linear equality constraint vector, specified as a vector of double. beq represents the constant vector in the constraints Aeq*x = beq. beq has size equals to the number of rows in Aeq.
- // lb : Lower bounds, specified as a vector or array of double. lb represents the lower bounds elementwise in lb ≤ x ≤ ub.
- // ub : Upper bounds, specified as a vector or array of double. ub represents the upper bounds elementwise in lb ≤ x ≤ ub.
- // options : a list containing the the parameters to be set.
- // xopt : a vector of double, the computed solution of the optimization problem.
- // fopt : a double, the function value at x
- // status : status flag from symphony. 227 is optimal, 228 is Time limit exceeded, 230 is iteration limit exceeded.
- // output : The output data structure contains detailed information about the optimization process. This version only contains number of iterations.
- //
- // Description
- // Search the minimum or maximum of a constrained mixed integer linear programming optimization problem specified by :
- // find the minimum or maximum of C'⋅x such that
- //
- // <latex>
- // \begin{eqnarray}
- // &\mbox{min}_{x}
- // & C^T⋅x \\
- // & \text{subject to} & A⋅x \leq b \\
- // & & Aeq⋅x = beq \\
- // & & lb \leq x \leq ub \\
- // & & x_i \in \!\, \mathbb{Z}, i \in \!\, I
- // \end{eqnarray}
- // </latex>
- //
- // The routine calls SYMPHONY written in C by gateway files for the actual computation.
- //
- // Examples
- // // Objective function
- // c = [350*5,330*3,310*4,280*6,500,450,400,100]';
- // // Lower Bound of variable
- // lb = repmat(0,1,8);
- // // Upper Bound of variables
- // ub = [repmat(1,1,4) repmat(%inf,1,4)];
- // // Constraint Matrix
- // 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]
- // intcon = [1 2 3 4];
- // // Calling Symphony
- // [x,f,status,output] = symphonymat(c,intcon,[],[],Aeq,beq,lb,ub)
- // // Press ENTER to continue
- //
- // Examples
- // // 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)
- // // Upper Bound of variables
- // ub = repmat(1,1,nbVar)
- // // Lower Bound of constrains
- // intcon = [];
- // for i = 1:nbVar
- // intcon = [intcon i];
- // end
- // 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);
- // Authors
- // Keyur Joshi, Saikiran, Iswarya, Harpreet Singh
+ // Solves a mixed integer linear programming constrained optimization problem in intlinprog format.
+ //
+ // Calling Sequence
+ // xopt = symphonymat(c,intcon,A,b)
+ // xopt = symphonymat(c,intcon,A,b,Aeq,beq)
+ // xopt = symphonymat(c,intcon,A,b,Aeq,beq,lb,ub)
+ // xopt = symphonymat(c,intcon,A,b,Aeq,beq,lb,ub,options)
+ // [xopt,fopt,status,output] = symphonymat( ... )
+ //
+ // Parameters
+ // c : a vector of double, contains coefficients of the variables in the objective
+ // intcon : 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.
+ // A : Linear inequality constraint matrix, specified as a matrix of double. A represents the linear coefficients in the constraints A*x ≤ b. A has the size where columns equals to the number of variables.
+ // b : Linear inequality constraint vector, specified as a vector of double. b represents the constant vector in the constraints A*x ≤ b. b has size equals to the number of rows in A.
+ // Aeq : Linear equality constraint matrix, specified as a matrix of double. Aeq represents the linear coefficients in the constraints Aeq*x = beq. Aeq has the size where columns equals to the number of variables.
+ // beq : Linear equality constraint vector, specified as a vector of double. beq represents the constant vector in the constraints Aeq*x = beq. beq has size equals to the number of rows in Aeq.
+ // lb : Lower bounds, specified as a vector or array of double. lb represents the lower bounds elementwise in lb ≤ x ≤ ub.
+ // ub : Upper bounds, specified as a vector or array of double. ub represents the upper bounds elementwise in lb ≤ x ≤ ub.
+ // options : a list containing the the parameters to be set.
+ // xopt : a vector of double, the computed solution of the optimization problem.
+ // fopt : a double, the function value at x
+ // status : status flag returned from symphony. 227 is optimal, 228 is Time limit exceeded, 230 is iteration limit exceeded.
+ // output : The output data structure contains detailed information about the optimization process. This version only contains number of iterations.
+ //
+ // Description
+ // Search the minimum or maximum of a constrained mixed integer linear programming optimization problem specified by :
+ //
+ // <latex>
+ // \begin{eqnarray}
+ // &\mbox{min}_{x}
+ // & C^T⋅x \\
+ // & \text{subject to} & A⋅x \leq b \\
+ // & & Aeq⋅x = beq \\
+ // & & lb \leq x \leq ub \\
+ // & & x_i \in \!\, \mathbb{Z}, i \in \!\, I
+ // \end{eqnarray}
+ // </latex>
+ //
+ // The routine calls SYMPHONY written in C by gateway files for the actual computation.
+ //
+ // Examples
+ // // 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.
+ // c = [350*5,330*3,310*4,280*6,500,450,400,100]';
+ // // Lower Bound of variable
+ // lb = repmat(0,1,8);
+ // // Upper Bound of variables
+ // ub = [repmat(1,1,4) repmat(%inf,1,4)];
+ // // Constraint Matrix
+ // 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]
+ // intcon = [1 2 3 4];
+ // // Calling Symphony
+ // [x,f,status,output] = symphonymat(c,intcon,[],[],Aeq,beq,lb,ub)
+ // // Press ENTER to continue
+ //
+ // Examples
+ // // 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)
+ // // Upper Bound of variables
+ // ub = repmat(1,1,nbVar)
+ // // Lower Bound of constrains
+ // intcon = [];
+ // for i = 1:nbVar
+ // intcon = [intcon i];
+ // end
+ // 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);
+ // Authors
+ // Keyur Joshi, Saikiran, Iswarya, Harpreet Singh
-//To check the number of input and output argument
- [lhs , rhs] = argn();
+ //To check the number of input and output argument
+ [lhs , rhs] = argn();
-//To check the number of argument given by user
+ //To check the number of argument given by user
if ( rhs < 4 | rhs == 5 | rhs == 7 | rhs > 9 ) then
errmsg = msprintf(gettext("%s: Unexpected number of input arguments : %d provided while should be in the set [4 6 8 9]"), "Symphony", rhs);
error(errmsg);
@@ -171,7 +171,6 @@ function [xopt,fopt,status,iter] = symphonymat (varargin)
lb = [];
ub = [];
-
c = varargin(1)
intcon = varargin(2)
A = varargin(3)
diff --git a/sci_gateway/cpp/.sci_QuadNLP.cpp.swp b/sci_gateway/cpp/.sci_QuadNLP.cpp.swp
new file mode 100644
index 0000000..764077c
--- /dev/null
+++ b/sci_gateway/cpp/.sci_QuadNLP.cpp.swp
Binary files differ
diff --git a/sci_gateway/cpp/QuadNLP.hpp b/sci_gateway/cpp/QuadNLP.hpp
index ec40195..4020913 100644
--- a/sci_gateway/cpp/QuadNLP.hpp
+++ b/sci_gateway/cpp/QuadNLP.hpp
@@ -1,14 +1,13 @@
-/*
- * Quadratic Programming Toolbox for Scilab using IPOPT library
- * Authors :
- Sai Kiran
- Keyur Joshi
- Iswarya
-
-
- * Optimizing (minimizing) the quadratic objective function having any number of variables and linear constraints.
- *
-*/
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Harpreet Singh, Sai Kiran, Keyur Joshi, Iswarya
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
#ifndef __QuadNLP_HPP__
#define __QuadNLP_HPP__
diff --git a/sci_gateway/cpp/builder_gateway_cpp.sce b/sci_gateway/cpp/builder_gateway_cpp.sce
index 225edd8..6e4adf7 100644
--- a/sci_gateway/cpp/builder_gateway_cpp.sce
+++ b/sci_gateway/cpp/builder_gateway_cpp.sce
@@ -1,13 +1,13 @@
// Copyright (C) 2015 - IIT Bombay - FOSSEE
//
-// Author: Keyur Joshi, Sai Kiran, Iswarya and Harpreet Singh
-// Organization: FOSSEE, IIT Bombay
-// Email: harpreet.mertia@gmail.com
// This file must be used under the terms of the CeCILL.
// This source file is licensed as described in the file COPYING, which
// you should have received as part of this distribution. The terms
// are also available at
// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Harpreet Singh
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
mode(-1)
lines(0)
diff --git a/sci_gateway/cpp/globals.cpp b/sci_gateway/cpp/globals.cpp
index 4b5d99c..92767bc 100644
--- a/sci_gateway/cpp/globals.cpp
+++ b/sci_gateway/cpp/globals.cpp
@@ -1,9 +1,14 @@
-/*
- * Implementation Symphony Tool Box for Scilab
- * globals.cpp
- * contains definitions of global variables and functions
- * By Keyur Joshi and Sai Kiran
- */
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Keyur Joshi and Sai Kiran
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
#include <symphony.h>
#include <sciprint.h>
diff --git a/sci_gateway/cpp/libsymphonytools.c b/sci_gateway/cpp/libsymphonytools.c
deleted file mode 100644
index 1007284..0000000
--- a/sci_gateway/cpp/libsymphonytools.c
+++ /dev/null
@@ -1,144 +0,0 @@
-#ifdef __cplusplus
-extern "C" {
-#endif
-#include <mex.h>
-#include <sci_gateway.h>
-#include <api_scilab.h>
-#include <MALLOC.h>
-static int direct_gateway(char *fname,void F(void)) { F();return 0;};
-extern Gatefunc sci_sym_open;
-extern Gatefunc sci_sym_close;
-extern Gatefunc sci_sym_isEnvActive;
-extern Gatefunc sci_sym_set_defaults;
-extern Gatefunc sci_sym_set_int_param;
-extern Gatefunc sci_sym_get_int_param;
-extern Gatefunc sci_sym_set_dbl_param;
-extern Gatefunc sci_sym_get_dbl_param;
-extern Gatefunc sci_sym_set_str_param;
-extern Gatefunc sci_sym_get_str_param;
-extern Gatefunc sci_sym_getInfinity;
-extern Gatefunc sci_sym_loadProblemBasic;
-extern Gatefunc sci_sym_loadProblem;
-extern Gatefunc sci_sym_load_mps;
-extern Gatefunc sci_sym_get_num_int;
-extern Gatefunc sci_sym_get_num_int;
-extern Gatefunc sci_sym_get_num_int;
-extern Gatefunc sci_sym_isContinuous;
-extern Gatefunc sci_sym_isBinary;
-extern Gatefunc sci_sym_isInteger;
-extern Gatefunc sci_sym_set_continuous;
-extern Gatefunc sci_sym_set_integer;
-extern Gatefunc sci_sym_get_dbl_arr;
-extern Gatefunc sci_sym_get_dbl_arr;
-extern Gatefunc sci_sym_setVarBound;
-extern Gatefunc sci_sym_setVarBound;
-extern Gatefunc sci_sym_get_dbl_arr;
-extern Gatefunc sci_sym_setObjCoeff;
-extern Gatefunc sci_sym_getObjSense;
-extern Gatefunc sci_sym_setObjSense;
-extern Gatefunc sci_sym_get_dbl_arr;
-extern Gatefunc sci_sym_get_dbl_arr;
-extern Gatefunc sci_sym_get_dbl_arr;
-extern Gatefunc sci_sym_get_dbl_arr;
-extern Gatefunc sci_sym_setConstrBound;
-extern Gatefunc sci_sym_setConstrBound;
-extern Gatefunc sci_sym_setConstrType;
-extern Gatefunc sci_sym_get_matrix;
-extern Gatefunc sci_sym_get_row_sense;
-extern Gatefunc sci_sym_addConstr;
-extern Gatefunc sci_sym_addVar;
-extern Gatefunc sci_sym_delete_cols;
-extern Gatefunc sci_sym_delete_rows;
-extern Gatefunc sci_sym_getPrimalBound;
-extern Gatefunc sci_sym_setPrimalBound;
-extern Gatefunc sci_sym_setColSoln;
-extern Gatefunc sci_sym_solve;
-extern Gatefunc sci_sym_get_status;
-extern Gatefunc sci_sym_get_solver_status;
-extern Gatefunc sci_sym_get_solver_status;
-extern Gatefunc sci_sym_get_solver_status;
-extern Gatefunc sci_sym_get_solver_status;
-extern Gatefunc sci_sym_get_solver_status;
-extern Gatefunc sci_sym_get_solver_status;
-extern Gatefunc sci_sym_getVarSoln;
-extern Gatefunc sci_sym_getObjVal;
-extern Gatefunc sci_sym_get_iteration_count;
-extern Gatefunc sci_sym_getRowActivity;
-static GenericTable Tab[]={
- {(Myinterfun)sci_gateway_without_putlhsvar,sci_sym_open,"sym_open"},
- {(Myinterfun)sci_gateway_without_putlhsvar,sci_sym_close,"sym_close"},
- {(Myinterfun)sci_gateway_without_putlhsvar,sci_sym_isEnvActive,"sym_isEnvActive"},
- {(Myinterfun)sci_gateway_without_putlhsvar,sci_sym_set_defaults,"sym_resetParams"},
- {(Myinterfun)sci_gateway_without_putlhsvar,sci_sym_set_int_param,"sym_setIntParam"},
- {(Myinterfun)sci_gateway_without_putlhsvar,sci_sym_get_int_param,"sym_getIntParam"},
- {(Myinterfun)sci_gateway_without_putlhsvar,sci_sym_set_dbl_param,"sym_setDblParam"},
- {(Myinterfun)sci_gateway_without_putlhsvar,sci_sym_get_dbl_param,"sym_getDblParam"},
- {(Myinterfun)sci_gateway_without_putlhsvar,sci_sym_set_str_param,"sym_setStrParam"},
- {(Myinterfun)sci_gateway_without_putlhsvar,sci_sym_get_str_param,"sym_getStrParam"},
- {(Myinterfun)sci_gateway_without_putlhsvar,sci_sym_getInfinity,"sym_getInfinity"},
- {(Myinterfun)sci_gateway_without_putlhsvar,sci_sym_loadProblemBasic,"sym_loadProblemBasic"},
- {(Myinterfun)sci_gateway_without_putlhsvar,sci_sym_loadProblem,"sym_loadProblem"},
- {(Myinterfun)sci_gateway_without_putlhsvar,sci_sym_load_mps,"sym_loadMPS"},
- {(Myinterfun)sci_gateway_without_putlhsvar,sci_sym_get_num_int,"sym_getNumConstr"},
- {(Myinterfun)sci_gateway_without_putlhsvar,sci_sym_get_num_int,"sym_getNumVar"},
- {(Myinterfun)sci_gateway_without_putlhsvar,sci_sym_get_num_int,"sym_getNumElements"},
- {(Myinterfun)sci_gateway_without_putlhsvar,sci_sym_isContinuous,"sym_isContinuous"},
- {(Myinterfun)sci_gateway_without_putlhsvar,sci_sym_isBinary,"sym_isBinary"},
- {(Myinterfun)sci_gateway_without_putlhsvar,sci_sym_isInteger,"sym_isInteger"},
- {(Myinterfun)sci_gateway_without_putlhsvar,sci_sym_set_continuous,"sym_setContinuous"},
- {(Myinterfun)sci_gateway_without_putlhsvar,sci_sym_set_integer,"sym_setInteger"},
- {(Myinterfun)sci_gateway_without_putlhsvar,sci_sym_get_dbl_arr,"sym_getVarLower"},
- {(Myinterfun)sci_gateway_without_putlhsvar,sci_sym_get_dbl_arr,"sym_getVarUpper"},
- {(Myinterfun)sci_gateway_without_putlhsvar,sci_sym_setVarBound,"sym_setVarLower"},
- {(Myinterfun)sci_gateway_without_putlhsvar,sci_sym_setVarBound,"sym_setVarUpper"},
- {(Myinterfun)sci_gateway_without_putlhsvar,sci_sym_get_dbl_arr,"sym_getObjCoeff"},
- {(Myinterfun)sci_gateway_without_putlhsvar,sci_sym_setObjCoeff,"sym_setObjCoeff"},
- {(Myinterfun)sci_gateway_without_putlhsvar,sci_sym_getObjSense,"sym_getObjSense"},
- {(Myinterfun)sci_gateway_without_putlhsvar,sci_sym_setObjSense,"sym_setObjSense"},
- {(Myinterfun)sci_gateway_without_putlhsvar,sci_sym_get_dbl_arr,"sym_getRhs"},
- {(Myinterfun)sci_gateway_without_putlhsvar,sci_sym_get_dbl_arr,"sym_getConstrRange"},
- {(Myinterfun)sci_gateway_without_putlhsvar,sci_sym_get_dbl_arr,"sym_getConstrLower"},
- {(Myinterfun)sci_gateway_without_putlhsvar,sci_sym_get_dbl_arr,"sym_getConstrUpper"},
- {(Myinterfun)sci_gateway_without_putlhsvar,sci_sym_setConstrBound,"sym_setConstrLower"},
- {(Myinterfun)sci_gateway_without_putlhsvar,sci_sym_setConstrBound,"sym_setConstrUpper"},
- {(Myinterfun)sci_gateway_without_putlhsvar,sci_sym_setConstrType,"sym_setConstrType"},
- {(Myinterfun)sci_gateway_without_putlhsvar,sci_sym_get_matrix,"sym_getMatrix"},
- {(Myinterfun)sci_gateway_without_putlhsvar,sci_sym_get_row_sense,"sym_getConstrSense"},
- {(Myinterfun)sci_gateway_without_putlhsvar,sci_sym_addConstr,"sym_addConstr"},
- {(Myinterfun)sci_gateway_without_putlhsvar,sci_sym_addVar,"sym_addVar"},
- {(Myinterfun)sci_gateway_without_putlhsvar,sci_sym_delete_cols,"sym_deleteVars"},
- {(Myinterfun)sci_gateway_without_putlhsvar,sci_sym_delete_rows,"sym_deleteConstrs"},
- {(Myinterfun)sci_gateway_without_putlhsvar,sci_sym_getPrimalBound,"sym_getPrimalBound"},
- {(Myinterfun)sci_gateway_without_putlhsvar,sci_sym_setPrimalBound,"sym_setPrimalBound"},
- {(Myinterfun)sci_gateway_without_putlhsvar,sci_sym_setColSoln,"sym_setVarSoln"},
- {(Myinterfun)sci_gateway_without_putlhsvar,sci_sym_solve,"sym_solve"},
- {(Myinterfun)sci_gateway_without_putlhsvar,sci_sym_get_status,"sym_getStatus"},
- {(Myinterfun)sci_gateway_without_putlhsvar,sci_sym_get_solver_status,"sym_isOptimal"},
- {(Myinterfun)sci_gateway_without_putlhsvar,sci_sym_get_solver_status,"sym_isInfeasible"},
- {(Myinterfun)sci_gateway_without_putlhsvar,sci_sym_get_solver_status,"sym_isAbandoned"},
- {(Myinterfun)sci_gateway_without_putlhsvar,sci_sym_get_solver_status,"sym_isIterLimitReached"},
- {(Myinterfun)sci_gateway_without_putlhsvar,sci_sym_get_solver_status,"sym_isTimeLimitReached"},
- {(Myinterfun)sci_gateway_without_putlhsvar,sci_sym_get_solver_status,"sym_isTargetGapAchieved"},
- {(Myinterfun)sci_gateway_without_putlhsvar,sci_sym_getVarSoln,"sym_getVarSoln"},
- {(Myinterfun)sci_gateway_without_putlhsvar,sci_sym_getObjVal,"sym_getObjVal"},
- {(Myinterfun)sci_gateway_without_putlhsvar,sci_sym_get_iteration_count,"sym_getIterCount"},
- {(Myinterfun)sci_gateway_without_putlhsvar,sci_sym_getRowActivity,"sym_getConstrActivity"},
-};
-
-int C2F(libsymphonytools)()
-{
- Rhs = Max(0, Rhs);
- if (*(Tab[Fin-1].f) != NULL)
- {
- if(pvApiCtx == NULL)
- {
- pvApiCtx = (StrCtx*)MALLOC(sizeof(StrCtx));
- }
- pvApiCtx->pstName = (char*)Tab[Fin-1].name;
- (*(Tab[Fin-1].f))(Tab[Fin-1].name,Tab[Fin-1].F);
- }
- return 0;
-}
-#ifdef __cplusplus
-}
-#endif
diff --git a/sci_gateway/cpp/libsymphonytools.so b/sci_gateway/cpp/libsymphonytools.so
deleted file mode 100755
index 31e63b1..0000000
--- a/sci_gateway/cpp/libsymphonytools.so
+++ /dev/null
Binary files differ
diff --git a/sci_gateway/cpp/sci_QuadNLP.cpp b/sci_gateway/cpp/sci_QuadNLP.cpp
index 50e8109..b1a0e04 100644
--- a/sci_gateway/cpp/sci_QuadNLP.cpp
+++ b/sci_gateway/cpp/sci_QuadNLP.cpp
@@ -1,10 +1,13 @@
-/*
- * Quadratic Programming Toolbox for Scilab using IPOPT library
- * Authors :
- Sai Kiran
- Keyur Joshi
- Iswarya
- */
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Harpreet Singh, Sai Kiran, Keyur Joshi, Iswarya
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
#include "QuadNLP.hpp"
#include "IpIpoptData.hpp"
diff --git a/sci_gateway/cpp/sci_iofunc.cpp b/sci_gateway/cpp/sci_iofunc.cpp
index 04b5639..e92c318 100644
--- a/sci_gateway/cpp/sci_iofunc.cpp
+++ b/sci_gateway/cpp/sci_iofunc.cpp
@@ -1,6 +1,14 @@
-// Symphony Toolbox for Scilab
-// (Definition of) Functions for input and output from Scilab
-// By Keyur Joshi
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Keyur Joshi, Harpreet Singh
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
#include "api_scilab.h"
#include "Scierror.h"
diff --git a/sci_gateway/cpp/sci_iofunc.hpp b/sci_gateway/cpp/sci_iofunc.hpp
index 3833777..fc379f4 100644
--- a/sci_gateway/cpp/sci_iofunc.hpp
+++ b/sci_gateway/cpp/sci_iofunc.hpp
@@ -1,6 +1,13 @@
-// Symphony Toolbox for Scilab
-// (Declaration of) Functions for input and output from Scilab
-// By Keyur Joshi
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Keyur Joshi, Harpreet Singh
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
#ifndef SCI_IOFUNCHEADER
#define SCI_IOFUNCHEADER
diff --git a/sci_gateway/cpp/sci_ipopt.cpp b/sci_gateway/cpp/sci_ipopt.cpp
index 7094615..cbb71df 100644
--- a/sci_gateway/cpp/sci_ipopt.cpp
+++ b/sci_gateway/cpp/sci_ipopt.cpp
@@ -1,11 +1,13 @@
-/*
- * Quadratic Programming Toolbox for Scilab using IPOPT library
- * Authors :
- Sai Kiran
- Keyur Joshi
- Iswarya
- Harpreet Singh
- */
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Harpreet Singh, Sai Kiran, Keyur Joshi, Iswarya
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
#include "sci_iofunc.hpp"
#include "IpIpoptApplication.hpp"
diff --git a/sci_gateway/cpp/sci_solver_status_query_functions.cpp b/sci_gateway/cpp/sci_solver_status_query_functions.cpp
index eb64bd1..2927717 100644
--- a/sci_gateway/cpp/sci_solver_status_query_functions.cpp
+++ b/sci_gateway/cpp/sci_solver_status_query_functions.cpp
@@ -1,9 +1,13 @@
-/*
- * Implementation of Symphony Tool Box for Scilab
- * solver_status_query_functions.cpp
- * contains Solver Status Query Functions (7 functions)
- * Author: Sai Kiran
- */
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Sai Kiran
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
#include <symphony.h>
#include <sci_iofunc.hpp>
diff --git a/sci_gateway/cpp/sci_sym_addrowcol.cpp b/sci_gateway/cpp/sci_sym_addrowcol.cpp
index 4e1d76e..7c852f9 100644
--- a/sci_gateway/cpp/sci_sym_addrowcol.cpp
+++ b/sci_gateway/cpp/sci_sym_addrowcol.cpp
@@ -1,8 +1,14 @@
-/*
- * Symphony Toolbox
- * Functions to add a new row or column
- * By Keyur Joshi
- */
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Keyur Joshi
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
#include "symphony.h"
#include "sci_iofunc.hpp"
diff --git a/sci_gateway/cpp/sci_sym_getinfinity.cpp b/sci_gateway/cpp/sci_sym_getinfinity.cpp
index c7fe243..20937d0 100644
--- a/sci_gateway/cpp/sci_sym_getinfinity.cpp
+++ b/sci_gateway/cpp/sci_sym_getinfinity.cpp
@@ -1,8 +1,14 @@
-/*
- * Symphony Toolbox
- * Provides the Symphony infinity value
- * By Keyur Joshi
- */
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Keyur Joshi
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
#include "symphony.h"
#include "sci_iofunc.hpp"
diff --git a/sci_gateway/cpp/sci_sym_getobjsense.cpp b/sci_gateway/cpp/sci_sym_getobjsense.cpp
index 3df325c..23b9291 100644
--- a/sci_gateway/cpp/sci_sym_getobjsense.cpp
+++ b/sci_gateway/cpp/sci_sym_getobjsense.cpp
@@ -1,8 +1,14 @@
-/*
- * Symphony Toolbox
- * <Description>
- * <Author(s)>
- */
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Sai Kiran, Keyur Joshi, Iswarya
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
#include "symphony.h"
#include "sci_iofunc.hpp"
diff --git a/sci_gateway/cpp/sci_sym_getrowact.cpp b/sci_gateway/cpp/sci_sym_getrowact.cpp
index ebfd9ff..63b9e15 100644
--- a/sci_gateway/cpp/sci_sym_getrowact.cpp
+++ b/sci_gateway/cpp/sci_sym_getrowact.cpp
@@ -1,8 +1,14 @@
-/*
- * Symphony Toolbox
- * Function to get the row activity after solving
- * By Keyur Joshi
- */
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Keyur Joshi
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
#include "symphony.h"
#include "sci_iofunc.hpp"
diff --git a/sci_gateway/cpp/sci_sym_isenvactive.cpp b/sci_gateway/cpp/sci_sym_isenvactive.cpp
index 96d5976..a0e3f55 100644
--- a/sci_gateway/cpp/sci_sym_isenvactive.cpp
+++ b/sci_gateway/cpp/sci_sym_isenvactive.cpp
@@ -1,8 +1,14 @@
-/*
- * Symphony Toolbox
- * Check if Symphony environment is active
- * Made by Keyur Joshi
- */
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Keyur Joshi
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
#include "symphony.h"
#include "sci_iofunc.hpp"
diff --git a/sci_gateway/cpp/sci_sym_load_mps.cpp b/sci_gateway/cpp/sci_sym_load_mps.cpp
index 7f000fb..7c87b8b 100644
--- a/sci_gateway/cpp/sci_sym_load_mps.cpp
+++ b/sci_gateway/cpp/sci_sym_load_mps.cpp
@@ -1,9 +1,14 @@
-/*
- * Implementation Symphony Tool Box for Scilab
- * template.cpp
- * contains function for loading .mps file to symphony
- * By Iswarya
- */
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Iswarya
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
#include <symphony.h>
#include "sci_iofunc.hpp"
diff --git a/sci_gateway/cpp/sci_sym_loadproblem.cpp b/sci_gateway/cpp/sci_sym_loadproblem.cpp
index b732eeb..5294082 100644
--- a/sci_gateway/cpp/sci_sym_loadproblem.cpp
+++ b/sci_gateway/cpp/sci_sym_loadproblem.cpp
@@ -1,8 +1,15 @@
-/*
- * Symphony Toolbox
- * Explicit problem loaders
- * Made by Keyur Joshi
- */
+
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Keyur Joshi
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
#include "symphony.h"
#include "sci_iofunc.hpp"
diff --git a/sci_gateway/cpp/sci_sym_openclose.cpp b/sci_gateway/cpp/sci_sym_openclose.cpp
index 4bab3e1..f77a98b 100644
--- a/sci_gateway/cpp/sci_sym_openclose.cpp
+++ b/sci_gateway/cpp/sci_sym_openclose.cpp
@@ -1,8 +1,14 @@
-/*
- * Symphony Tool Box for Scilab
- * contains functions that opens and closes the symphony environment
- * By Keyur Joshi, Iswarya
- */
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Keyur Joshi, Iswarya
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
#include <symphony.h>
#include "sci_iofunc.hpp"
diff --git a/sci_gateway/cpp/sci_sym_primalbound.cpp b/sci_gateway/cpp/sci_sym_primalbound.cpp
index 7e79d87..d5b4d3f 100644
--- a/sci_gateway/cpp/sci_sym_primalbound.cpp
+++ b/sci_gateway/cpp/sci_sym_primalbound.cpp
@@ -1,8 +1,14 @@
-/*
- * Symphony Toolbox
- * Functions for getting/setting the primal bound
- * By Keyur Joshi
- */
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Keyur Joshi
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
#include "symphony.h"
#include "sci_iofunc.hpp"
diff --git a/sci_gateway/cpp/sci_sym_remove.cpp b/sci_gateway/cpp/sci_sym_remove.cpp
index be9c72b..0289064 100644
--- a/sci_gateway/cpp/sci_sym_remove.cpp
+++ b/sci_gateway/cpp/sci_sym_remove.cpp
@@ -1,9 +1,14 @@
-/*
- * Implementation Symphony Tool Box for Scilab
- * set_sym_remove.cpp
- * contains function for removing columns and rows
- * By Iswarya
- */
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Iswarya
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
#include <symphony.h>
extern sym_environment* global_sym_env;//defined in globals.cpp
diff --git a/sci_gateway/cpp/sci_sym_rowmod.cpp b/sci_gateway/cpp/sci_sym_rowmod.cpp
index ec966d0..3819d4e 100644
--- a/sci_gateway/cpp/sci_sym_rowmod.cpp
+++ b/sci_gateway/cpp/sci_sym_rowmod.cpp
@@ -1,8 +1,14 @@
-/*
- * Symphony Toolbox
- * Functions for modifying constraints
- * By Keyur Joshi
- */
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Keyur Joshi
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
#include "symphony.h"
#include "sci_iofunc.hpp"
diff --git a/sci_gateway/cpp/sci_sym_set_indices.cpp b/sci_gateway/cpp/sci_sym_set_indices.cpp
index 6b8a35a..4e1577d 100644
--- a/sci_gateway/cpp/sci_sym_set_indices.cpp
+++ b/sci_gateway/cpp/sci_sym_set_indices.cpp
@@ -1,9 +1,14 @@
-/*
- * Implementation Symphony Tool Box for Scilab
- * sci_sym_set_indices.cpp
- * contains functions for setting index variables as continuous and integer values
- * By Iswarya
- */
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Iswarya
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
#include <symphony.h>
#include "sci_iofunc.hpp"
diff --git a/sci_gateway/cpp/sci_sym_set_variables.cpp b/sci_gateway/cpp/sci_sym_set_variables.cpp
index 384de6f..9368d69 100644
--- a/sci_gateway/cpp/sci_sym_set_variables.cpp
+++ b/sci_gateway/cpp/sci_sym_set_variables.cpp
@@ -1,9 +1,14 @@
-/*
- * Implementation Symphony Tool Box for Scilab
- * set_variables.cpp
- * contains function for setting environment variables to their default and userdefined values in symphony
- * By Iswarya
- */
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Iswarya
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
#include <symphony.h>
extern sym_environment* global_sym_env;//defined in globals.cpp
diff --git a/sci_gateway/cpp/sci_sym_setcolsoln.cpp b/sci_gateway/cpp/sci_sym_setcolsoln.cpp
index ca43779..aff6b4f 100644
--- a/sci_gateway/cpp/sci_sym_setcolsoln.cpp
+++ b/sci_gateway/cpp/sci_sym_setcolsoln.cpp
@@ -1,8 +1,14 @@
-/*
- * Symphony Toolbox
- * Function to set the solution to a known one
- * By Keyur Joshi
- */
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Keyur Joshi
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
#include "symphony.h"
#include "sci_iofunc.hpp"
diff --git a/sci_gateway/cpp/sci_sym_setobj.cpp b/sci_gateway/cpp/sci_sym_setobj.cpp
index 3a4691a..571f752 100644
--- a/sci_gateway/cpp/sci_sym_setobj.cpp
+++ b/sci_gateway/cpp/sci_sym_setobj.cpp
@@ -1,8 +1,13 @@
-/*
- * Symphony Toolbox
- * Functions for setting the coefficients of the objective and the sense (minimization/maximization)
- * By Keyur Joshi
- */
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Keyur Joshi
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
#include "symphony.h"
#include "sci_iofunc.hpp"
diff --git a/sci_gateway/cpp/sci_sym_solution.cpp b/sci_gateway/cpp/sci_sym_solution.cpp
index dff3b60..a918ac4 100644
--- a/sci_gateway/cpp/sci_sym_solution.cpp
+++ b/sci_gateway/cpp/sci_sym_solution.cpp
@@ -1,8 +1,14 @@
-/*
- * Symphony Toolbox
- * Provides the solution after the problem is solved
- * By Keyur Joshi
- */
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Keyur Joshi
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
#include "symphony.h"
#include "sci_iofunc.hpp"
diff --git a/sci_gateway/cpp/sci_sym_solve.cpp b/sci_gateway/cpp/sci_sym_solve.cpp
index 4abb268..a0af480 100644
--- a/sci_gateway/cpp/sci_sym_solve.cpp
+++ b/sci_gateway/cpp/sci_sym_solve.cpp
@@ -1,8 +1,13 @@
-/*
- * Implementation Symphony Tool Box for Scilab
- * Contains sym_solve function
- * Author : Sai Kiran
- */
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Sai Kiran
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
#include <symphony.h>
#include <sci_iofunc.hpp>
diff --git a/sci_gateway/cpp/sci_sym_varbounds.cpp b/sci_gateway/cpp/sci_sym_varbounds.cpp
index e0fa6ab..b650111 100644
--- a/sci_gateway/cpp/sci_sym_varbounds.cpp
+++ b/sci_gateway/cpp/sci_sym_varbounds.cpp
@@ -1,8 +1,14 @@
-/*
- * Symphony Toolbox
- * Functions for setting the upper and lower bounds of the variables
- * By Keyur Joshi
- */
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Keyur Joshi
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
#include "symphony.h"
#include "sci_iofunc.hpp"
diff --git a/sci_gateway/cpp/sci_vartype.cpp b/sci_gateway/cpp/sci_vartype.cpp
index e6656a7..cc75735 100644
--- a/sci_gateway/cpp/sci_vartype.cpp
+++ b/sci_gateway/cpp/sci_vartype.cpp
@@ -1,8 +1,14 @@
-/*
- * Symphony Toolbox
- * Provides information about variables: is it continuous/integer/boolean?
- * By Keyur Joshi
- */
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Keyur Joshi
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
#include "symphony.h"
#include "sci_iofunc.hpp"
diff --git a/sci_gateway/cpp/sym_data_query_functions.cpp b/sci_gateway/cpp/sym_data_query_functions.cpp
index 9f38094..ea9fe1b 100644
--- a/sci_gateway/cpp/sym_data_query_functions.cpp
+++ b/sci_gateway/cpp/sym_data_query_functions.cpp
@@ -1,9 +1,13 @@
-/*
- * Implementation Symphony Tool Box for Scilab
- * sym_data_query_functions.cpp
- * contains Data Query Functions( 13 functions)
- * Author: Sai Kiran
- */
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Sai Kiran
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
#include <symphony.h>
#include <sci_iofunc.hpp>
diff --git a/sci_gateway/cpp/template.cpp b/sci_gateway/cpp/template.cpp
deleted file mode 100644
index a835fc3..0000000
--- a/sci_gateway/cpp/template.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Symphony Toolbox
- * <Description>
- * <Author(s)>
- */
-#include "symphony.h"
-#include "sci_iofunc.hpp"
-
-extern sym_environment* global_sym_env; //defined in globals.cpp
-
-extern "C" {
-#include "api_scilab.h"
-#include "Scierror.h"
-#include "sciprint.h"
-#include "BOOL.h"
-#include <localization.h>
-
-int sci_template(char *fname){
-
- //error management variable
- SciErr sciErr;
- int iRet;
-
- //data declarations
-
- //ensure that environment is active
- if(global_sym_env==NULL){
- sciprint("Error: Symphony environment not initialized. Please run 'sym_open()' first.\n");
- return 1;
- }
-
- //code to check arguments and get them
- CheckInputArgument(pvApiCtx, , ) ;
- CheckOutputArgument(pvApiCtx, , ) ;
-
- //code to process input
-
- //code to give output
-
- return 0;
-}
-
-}
diff --git a/tests/general_tests/lsqlin/lsqlin_A1.sce b/tests/general_tests/lsqlin/lsqlin_A1.sce
index ba9b5be..1c2128b 100644
--- a/tests/general_tests/lsqlin/lsqlin_A1.sce
+++ b/tests/general_tests/lsqlin/lsqlin_A1.sce
@@ -1,23 +1,17 @@
// Check for elements in A
-C = [0.9501 0.7620 0.6153 0.4057
- 0.2311 0.4564 0.7919 0.9354
- 0.6068 0.0185 0.9218 0.9169
- 0.4859 0.8214 0.7382 0.4102
- 0.8912 0.4447 0.1762 0.8936];
-d = [0.0578
- 0.3528
- 0.8131
- 0.0098
- 0.1388];
-A = [0.2027 0.2721 0.7467 0.4659 0
- 0.1987 0.1988 0.4450 0.4186 0
- 0.6037 0.0152 0.9318 0.8462 0];
-b = [0.5251
- 0.2026
- 0.6721];
+C = [2 0;
+ -1 1;
+ 0 2]
+d = [1
+ 0
+ -1];
+A = [10 -2 0;
+ -2 10 0];
+b = [4
+ -4];
//Error
-//lsqlin: The number of columns in A must be the same as the number of elements of d
+//lsqlin: The number of columns in A must be the same as the number of columns in C
//at line 213 of function lsqlin called by :
//[xopt,resnorm,residual,exitflag,output,lambda] = lsqlin(C,d,A,b)
diff --git a/tests/general_tests/lsqlin/lsqlin_Aeq1.sce b/tests/general_tests/lsqlin/lsqlin_Aeq1.sce
index 458cbb0..f574e9d 100644
--- a/tests/general_tests/lsqlin/lsqlin_Aeq1.sce
+++ b/tests/general_tests/lsqlin/lsqlin_Aeq1.sce
@@ -1,23 +1,18 @@
// Check for elements in Aeq
-C = [0.9501 0.7620 0.6153 0.4057
- 0.2311 0.4564 0.7919 0.9354
- 0.6068 0.0185 0.9218 0.9169
- 0.4859 0.8214 0.7382 0.4102
- 0.8912 0.4447 0.1762 0.8936];
-d = [0.0578
- 0.3528
- 0.8131
- 0.0098
- 0.1388];
-Aeq = [0.2027 0.2721 0.7467 0.4659 0
- 0.1987 0.1988 0.4450 0.4186 0
- 0.6037 0.0152 0.9318 0.8462 0];
-beq = [0.5251
- 0.2026
- 0.6721];
+ C = [2 0;
+ -1 1;
+ 0 2]
+ d = [1
+ 0
+ -1];
+ Aeq = [10 -2 0;
+ -2 10 0];
+ beq = [4
+ -4];
+
//Error
-//lsqlin: The number of columns in Aeq must be the same as the number of elements of d
+//lsqlin: The number of columns in Aeq must be the same as the number of columns in C
//at line 219 of function lsqlin called by :
//[xopt,resnorm,residual,exitflag,output,lambda] = lsqlin(C,d,[],[],Aeq,beq)
diff --git a/tests/general_tests/lsqlin/lsqlin_C1.sce b/tests/general_tests/lsqlin/lsqlin_C1.sce
index 55fe976..6da1d49 100644
--- a/tests/general_tests/lsqlin/lsqlin_C1.sce
+++ b/tests/general_tests/lsqlin/lsqlin_C1.sce
@@ -1,21 +1,13 @@
// Check for elements in C and d
-C = [0.9501 0.7620 0.6153 0.4057
- 0.2311 0.4564 0.7919 0.9354
- 0.6068 0.0185 0.9218 0.9169
- 0.4859 0.8214 0.7382 0.4102
- 0.8912 0.4447 0.1762 0.8936];
-d = [0.0578
- 0.3528
- 0.8131
- 0.0098
- 0.1388
- 0.2536];
-A = [0.2027 0.2721 0.7467 0.4659
- 0.1987 0.1988 0.4450 0.4186
- 0.6037 0.0152 0.9318 0.8462];
-b = [0.5251
- 0.2026
- 0.6721];
+C = [2 0;
+ -1 1;
+ 0 2]
+d = [1
+ 0];
+A = [10 -2;
+ -2 10];
+b = [4
+ -4];
//Error
//lsqlin: The number of rows in C must be equal the number of elements of d
diff --git a/tests/general_tests/lsqlin/lsqlin_b1.sce b/tests/general_tests/lsqlin/lsqlin_b1.sce
index 49b6dec..fb01b79 100644
--- a/tests/general_tests/lsqlin/lsqlin_b1.sce
+++ b/tests/general_tests/lsqlin/lsqlin_b1.sce
@@ -1,18 +1,13 @@
// Check for elements in b
-C = [0.9501 0.7620 0.6153 0.4057
- 0.2311 0.4564 0.7919 0.9354
- 0.6068 0.0185 0.9218 0.9169
- 0.4859 0.8214 0.7382 0.4102
- 0.8912 0.4447 0.1762 0.8936];
-d = [0.0578
- 0.3528
- 0.8131
- 0.0098
- 0.1388];
-A = [0.2027 0.2721 0.7467 0.4659
- 0.1987 0.1988 0.4450 0.4186
- 0.6037 0.0152 0.9318 0.8462];
-b = [-%inf -%inf -%inf];
+C = [2 0;
+ -1 1;
+ 0 2]
+d = [1
+ 0
+ -1];
+A = [10 -2;
+ -2 10];
+b = [-%inf -%inf];
//Error
//lsqlin: Value of b can not be negative infinity
diff --git a/tests/general_tests/lsqlin/lsqlin_beq1.sce b/tests/general_tests/lsqlin/lsqlin_beq1.sce
index b71486e..38056c0 100644
--- a/tests/general_tests/lsqlin/lsqlin_beq1.sce
+++ b/tests/general_tests/lsqlin/lsqlin_beq1.sce
@@ -1,18 +1,13 @@
// Check for elements in beq
-C = [0.9501 0.7620 0.6153 0.4057
- 0.2311 0.4564 0.7919 0.9354
- 0.6068 0.0185 0.9218 0.9169
- 0.4859 0.8214 0.7382 0.4102
- 0.8912 0.4447 0.1762 0.8936];
-d = [0.0578
- 0.3528
- 0.8131
- 0.0098
- 0.1388];
-Aeq = [0.2027 0.2721 0.7467 0.4659
- 0.1987 0.1988 0.4450 0.4186
- 0.6037 0.0152 0.9318 0.8462];
-beq = [-%inf -%inf -%inf];
+C = [2 0;
+ -1 1;
+ 0 2]
+d = [1
+ 0
+ -1];
+Aeq = [10 -2;
+ -2 10];
+beq = [-%inf -%inf];
//Error
//lsqlin: Value of beq can not be negative infinity
diff --git a/tests/general_tests/lsqlin/lsqlin_infeasible1.sce b/tests/general_tests/lsqlin/lsqlin_infeasible1.sce
index a66dd0f..9509309 100644
--- a/tests/general_tests/lsqlin/lsqlin_infeasible1.sce
+++ b/tests/general_tests/lsqlin/lsqlin_infeasible1.sce
@@ -1,15 +1,11 @@
// Check for the infeasible problem
-C = [0.9501 0.7620 0.6153 0.4057
- 0.2311 0.4564 0.7919 0.9354
- 0.6068 0.0185 0.9218 0.9169
- 0.4859 0.8214 0.7382 0.4102
- 0.8912 0.4447 0.1762 0.8936];
-d = [0.0578
- 0.3528
- 0.8131
- 0.0098
- 0.1388];
-Aeq = [-1 0 0 0; 0 -1 0 0; 1 1 0 0 ];
+C = [2 0 0;
+ -1 1 0;
+ 0 2 0]
+d = [1
+ 0
+ -1];
+Aeq = [-1 0 0; 0 -1 0; 1 1 0 ];
beq = [-6 -6 11];
//Converged to a point of local infeasibility.
@@ -27,17 +23,14 @@ beq = [-6 -6 11];
// 5
// residual =
//
-// 0.0578
-// 0.3528
-// 0.8131
-// 0.0098
-// 0.1388
+// 1.
+// 0.
+// - 1.
// resnorm =
//
-// 0.8083018
+// 2.
// xopt =
//
// []
-
[xopt,resnorm,residual,exitflag,output,lambda] = lsqlin(C,d,[],[],Aeq,beq)
diff --git a/tests/general_tests/lsqlin/lsqlin_input1.sce b/tests/general_tests/lsqlin/lsqlin_input1.sce
index 7521f61..5b97670 100644
--- a/tests/general_tests/lsqlin/lsqlin_input1.sce
+++ b/tests/general_tests/lsqlin/lsqlin_input1.sce
@@ -1,21 +1,14 @@
// Check for the input arguments
-C = [0.9501 0.7620 0.6153 0.4057
- 0.2311 0.4564 0.7919 0.9354
- 0.6068 0.0185 0.9218 0.9169
- 0.4859 0.8214 0.7382 0.4102
- 0.8912 0.4447 0.1762 0.8936];
-d = [0.0578
- 0.3528
- 0.8131
- 0.0098
- 0.1388];
-A = [0.2027 0.2721 0.7467 0.4659
- 0.1987 0.1988 0.4450 0.4186
- 0.6037 0.0152 0.9318 0.8462];
-b = [0.5251
- 0.2026
- 0.6721];
-
+C = [2 0;
+ -1 1;
+ 0 2]
+d = [1
+ 0
+ -1];
+A = [10 -2;
+ -2 10];
+b = [4
+ -4];
//Error
//lsqlin: Unexpected number of input arguments : 2 provided while should be in the set of [4 6 8 9 10]
//at line 99 of function lsqlin called by :
diff --git a/tests/general_tests/lsqlin/lsqlin_input2.sce b/tests/general_tests/lsqlin/lsqlin_input2.sce
index 9826583..dbfe187 100644
--- a/tests/general_tests/lsqlin/lsqlin_input2.sce
+++ b/tests/general_tests/lsqlin/lsqlin_input2.sce
@@ -1,20 +1,14 @@
// Check for the input arguments
-C = [0.9501 0.7620 0.6153 0.4057
- 0.2311 0.4564 0.7919 0.9354
- 0.6068 0.0185 0.9218 0.9169
- 0.4859 0.8214 0.7382 0.4102
- 0.8912 0.4447 0.1762 0.8936];
-d = [0.0578
- 0.3528
- 0.8131
- 0.0098
- 0.1388];
-A = [0.2027 0.2721 0.7467 0.4659
- 0.1987 0.1988 0.4450 0.4186
- 0.6037 0.0152 0.9318 0.8462];
-b = [0.5251
- 0.2026
- 0.6721];
+C = [2 0;
+ -1 1;
+ 0 2]
+d = [1
+ 0
+ -1];
+A = [10 -2;
+ -2 10];
+b = [4
+ -4];
//Error
//lsqlin: Unexpected number of input arguments : 14 provided while should be in the set of [4 6 8 9 10]
diff --git a/tests/general_tests/lsqlin/lsqlin_logical1.sce b/tests/general_tests/lsqlin/lsqlin_logical1.sce
index bc0dc06..959cc7c 100644
--- a/tests/general_tests/lsqlin/lsqlin_logical1.sce
+++ b/tests/general_tests/lsqlin/lsqlin_logical1.sce
@@ -1,51 +1,41 @@
-// Check for elements in A
-C = [0.9501 0.7620 0.6153 0.4057
- 0.2311 0.4564 0.7919 0.9354
- 0.6068 0.0185 0.9218 0.9169
- 0.4859 0.8214 0.7382 0.4102
- 0.8912 0.4447 0.1762 0.8936];
-d = [0.0578
- 0.3528
- 0.8131
- 0.0098
- 0.1388];
-A = [0.2027 0.2721 0.7467 0.4659
- 0.1987 0.1988 0.4450 0.4186
- 0.6037 0.0152 0.9318 0.8462];
-b = [0.5251
- 0.2026
- 0.6721];
+// An example with inequality constraints
+C = [2 0;
+ -1 1;
+ 0 2]
+d = [1
+ 0
+ -1];
+A = [10 -2;
+ -2 10];
+b = [4
+ -4];
-// Output
+//Output
//Optimal Solution Found.
// lambda =
//
-// lower: [0,0,0,0]
-// upper: [0,0,0,0]
+// lower: [0,0]
+// upper: [0,0]
// eqlin: [0x0 constant]
-// ineqlin: [8.697D-11,0.0925859,0.1118582]
+// ineqlin: [0.0000422,0.0000089]
// output =
//
-// Iterations: 7
+// Iterations: 13
// exitflag =
//
// 0
// residual =
//
-// 0.0126031
-// 0.0208054
-// 0.1295085
-// 0.0057397
-// - 0.0137246
+// 0.3335021
+// 0.6666002
+// - 0.3332976
// resnorm =
//
-// 0.0175855
+// 0.6666667
// xopt =
//
-// 0.1298639
-// - 0.5756958
-// 0.4251033
-// 0.2438436
+// 0.3332490
+// - 0.3333512
[xopt,resnorm,residual,exitflag,output,lambda] = lsqlin(C,d,A,b)
diff --git a/tests/general_tests/lsqlin/lsqlin_maxiter.sce b/tests/general_tests/lsqlin/lsqlin_maxiter.sce
new file mode 100644
index 0000000..036cf39
--- /dev/null
+++ b/tests/general_tests/lsqlin/lsqlin_maxiter.sce
@@ -0,0 +1,42 @@
+// Check for maxiter
+C = [2 0;
+ -1 1;
+ 0 2]
+d = [1
+ 0
+ -1];
+A = [10 -2;
+ -2 10];
+b = [4
+ -4];
+options = list("MaxIter",1);
+// Output
+//Maximum Number of Iterations Exceeded. Output may not be optimal.
+// lambda =
+//
+// lower: [0x0 constant]
+// upper: [0x0 constant]
+// eqlin: [0x0 constant]
+// ineqlin: [0x0 constant]
+// output =
+//
+// Iterations: 1
+// exitflag =
+//
+// 1
+// residual =
+//
+// 1.0243179
+// 0.3941271
+// - 0.1874278
+// resnorm =
+//
+// 1.2396926
+// xopt =
+//
+// - 0.0121590
+// - 0.4062861
+
+[xopt,resnorm,residual,exitflag,output,lambda] = lsqlin(C,d,A,b,[],[],[],[],[],options)
+
+
diff --git a/tests/general_tests/lsqlin/lsqlin_param1.sce b/tests/general_tests/lsqlin/lsqlin_param1.sce
index a9d24bc..65aff86 100644
--- a/tests/general_tests/lsqlin/lsqlin_param1.sce
+++ b/tests/general_tests/lsqlin/lsqlin_param1.sce
@@ -1,20 +1,14 @@
// Check for the param to be a list
-C = [0.9501 0.7620 0.6153 0.4057
- 0.2311 0.4564 0.7919 0.9354
- 0.6068 0.0185 0.9218 0.9169
- 0.4859 0.8214 0.7382 0.4102
- 0.8912 0.4447 0.1762 0.8936];
-d = [0.0578
- 0.3528
- 0.8131
- 0.0098
- 0.1388];
-A = [0.2027 0.2721 0.7467 0.4659
- 0.1987 0.1988 0.4450 0.4186
- 0.6037 0.0152 0.9318 0.8462];
-b = [0.5251
- 0.2026
- 0.6721];
+C = [2 0;
+ -1 1;
+ 0 2]
+d = [1
+ 0
+ -1];
+A = [10 -2;
+ -2 10];
+b = [4
+ -4];
param = 0;
//Error
diff --git a/tests/general_tests/lsqlin/lsqlin_param2.sce b/tests/general_tests/lsqlin/lsqlin_param2.sce
index bb7cffa..f780759 100644
--- a/tests/general_tests/lsqlin/lsqlin_param2.sce
+++ b/tests/general_tests/lsqlin/lsqlin_param2.sce
@@ -1,20 +1,14 @@
// Check for the param to be even in number
-C = [0.9501 0.7620 0.6153 0.4057
- 0.2311 0.4564 0.7919 0.9354
- 0.6068 0.0185 0.9218 0.9169
- 0.4859 0.8214 0.7382 0.4102
- 0.8912 0.4447 0.1762 0.8936];
-d = [0.0578
- 0.3528
- 0.8131
- 0.0098
- 0.1388];
-A = [0.2027 0.2721 0.7467 0.4659
- 0.1987 0.1988 0.4450 0.4186
- 0.6037 0.0152 0.9318 0.8462];
-b = [0.5251
- 0.2026
- 0.6721];
+C = [2 0;
+ -1 1;
+ 0 2]
+d = [1
+ 0
+ -1];
+A = [10 -2;
+ -2 10];
+b = [4
+ -4];
param = list("MaxIter");
//Error
diff --git a/tests/general_tests/lsqlin/lsqlin_param3.sce b/tests/general_tests/lsqlin/lsqlin_param3.sce
index 60e960d..283c6e2 100644
--- a/tests/general_tests/lsqlin/lsqlin_param3.sce
+++ b/tests/general_tests/lsqlin/lsqlin_param3.sce
@@ -1,20 +1,14 @@
// Check for the param to be even in number
-C = [0.9501 0.7620 0.6153 0.4057
- 0.2311 0.4564 0.7919 0.9354
- 0.6068 0.0185 0.9218 0.9169
- 0.4859 0.8214 0.7382 0.4102
- 0.8912 0.4447 0.1762 0.8936];
-d = [0.0578
- 0.3528
- 0.8131
- 0.0098
- 0.1388];
-A = [0.2027 0.2721 0.7467 0.4659
- 0.1987 0.1988 0.4450 0.4186
- 0.6037 0.0152 0.9318 0.8462];
-b = [0.5251
- 0.2026
- 0.6721];
+C = [2 0;
+ -1 1;
+ 0 2]
+d = [1
+ 0
+ -1];
+A = [10 -2;
+ -2 10];
+b = [4
+ -4];
param = list("Iter",300);
//Error
diff --git a/tests/general_tests/lsqlin/lsqlin_x01.sce b/tests/general_tests/lsqlin/lsqlin_x01.sce
index 3b0f6f9..d014443 100644
--- a/tests/general_tests/lsqlin/lsqlin_x01.sce
+++ b/tests/general_tests/lsqlin/lsqlin_x01.sce
@@ -1,20 +1,14 @@
-// Check for elements in A
-C = [0.9501 0.7620 0.6153 0.4057
- 0.2311 0.4564 0.7919 0.9354
- 0.6068 0.0185 0.9218 0.9169
- 0.4859 0.8214 0.7382 0.4102
- 0.8912 0.4447 0.1762 0.8936];
-d = [0.0578
- 0.3528
- 0.8131
- 0.0098
- 0.1388];
-A = [0.2027 0.2721 0.7467 0.4659
- 0.1987 0.1988 0.4450 0.4186
- 0.6037 0.0152 0.9318 0.8462];
-b = [0.5251
- 0.2026
- 0.6721];
+// Test for intial guess
+C = [2 0;
+ -1 1;
+ 0 2]
+d = [1
+ 0
+ -1];
+A = [10 -2;
+ -2 10];
+b = [4
+ -4];
x0 = [0 0 0];
//WARNING: lsqlin: Ignoring initial guess of variables as it is not equal to the number of variables
@@ -22,32 +16,28 @@ x0 = [0 0 0];
//Optimal Solution Found.
// lambda =
//
-// lower: [0,0,0,0]
-// upper: [0,0,0,0]
+// lower: [0,0]
+// upper: [0,0]
// eqlin: [0x0 constant]
-// ineqlin: [8.697D-11,0.0925859,0.1118582]
+// ineqlin: [0.0000422,0.0000089]
// output =
//
-// Iterations: 7
+// Iterations: 13
// exitflag =
//
// 0
// residual =
//
-// 0.0126031
-// 0.0208054
-// 0.1295085
-// 0.0057397
-// - 0.0137246
+// 0.3335021
+// 0.6666002
+// - 0.3332976
// resnorm =
//
-// 0.0175855
+// 0.6666667
// xopt =
//
-// 0.1298639
-// - 0.5756958
-// 0.4251033
-// 0.2438436
+// 0.3332490
+// - 0.3333512
[xopt,resnorm,residual,exitflag,output,lambda] = lsqlin(C,d,A,b,[],[],[],[],x0)
diff --git a/tests/general_tests/lsqlin/lsqlin_zeros.sce b/tests/general_tests/lsqlin/lsqlin_zeros.sce
new file mode 100644
index 0000000..2695ff1
--- /dev/null
+++ b/tests/general_tests/lsqlin/lsqlin_zeros.sce
@@ -0,0 +1,32 @@
+// Check for all zeros
+C = [0];
+d = [0];
+A = [0];
+b = [0];
+// Output
+//Optimal Solution Found.
+// lambda =
+//
+// lower: 0
+// upper: 0
+// eqlin: [0x0 constant]
+// ineqlin: 0.999901
+// output =
+//
+// Iterations: 2
+// exitflag =
+//
+// 0
+// residual =
+//
+// 0.
+// resnorm =
+//
+// 0.
+// xopt =
+//
+// 0.
+
+[xopt,resnorm,residual,exitflag,output,lambda] = lsqlin(C,d,A,b)
+
+
diff --git a/tests/general_tests/lsqnonneg/lsqnonneg_C.sce b/tests/general_tests/lsqnonneg/lsqnonneg_C.sce
index f792559..90f5b43 100644
--- a/tests/general_tests/lsqnonneg/lsqnonneg_C.sce
+++ b/tests/general_tests/lsqnonneg/lsqnonneg_C.sce
@@ -1,15 +1,13 @@
// Check for the size of C and d
-C = [
- 0.0372 0.2869
- 0.6861 0.7071
- 0.6233 0.6245
- 0.6344 0.6170];
-d = [
- 0.8587
- 0.1781
- 0.0747
- 0.8405
- 0.2356];
+C = [1 1 1;
+ 1 1 0;
+ 0 1 1;
+ 1 0 0;
+ 0 0 1]
+d = [89;
+ 67;
+ 53;
+ 35]
// Error
//lsqlin: The number of rows in C must be equal the number of elements of d
diff --git a/tests/general_tests/lsqnonneg/lsqnonneg_input1.sce b/tests/general_tests/lsqnonneg/lsqnonneg_input1.sce
index eb0aafc..db1e461 100644
--- a/tests/general_tests/lsqnonneg/lsqnonneg_input1.sce
+++ b/tests/general_tests/lsqnonneg/lsqnonneg_input1.sce
@@ -1,14 +1,14 @@
// Check for the input arguments
-C = [
- 0.0372 0.2869
- 0.6861 0.7071
- 0.6233 0.6245
- 0.6344 0.6170];
-d = [
- 0.8587
- 0.1781
- 0.0747
- 0.8405];
+C = [1 1 1;
+ 1 1 0;
+ 0 1 1;
+ 1 0 0;
+ 0 0 1]
+d = [89;
+ 67;
+ 53;
+ 35;
+ 20]
// Error
//lsqlin: Unexpected number of input arguments : 1 provided while should be in the set of [2 3]
diff --git a/tests/general_tests/lsqnonneg/lsqnonneg_input2.sce b/tests/general_tests/lsqnonneg/lsqnonneg_input2.sce
index 2d2e557..9da3f66 100644
--- a/tests/general_tests/lsqnonneg/lsqnonneg_input2.sce
+++ b/tests/general_tests/lsqnonneg/lsqnonneg_input2.sce
@@ -1,14 +1,14 @@
// Check for the input arguments
-C = [
- 0.0372 0.2869
- 0.6861 0.7071
- 0.6233 0.6245
- 0.6344 0.6170];
-d = [
- 0.8587
- 0.1781
- 0.0747
- 0.8405];
+C = [1 1 1;
+ 1 1 0;
+ 0 1 1;
+ 1 0 0;
+ 0 0 1]
+d = [89;
+ 67;
+ 53;
+ 35;
+ 20]
param = list();
x0 = [0 0];
diff --git a/tests/general_tests/lsqnonneg/lsqnonneg_logical.sce b/tests/general_tests/lsqnonneg/lsqnonneg_logical.sce
index 15106f0..5f59f8c 100644
--- a/tests/general_tests/lsqnonneg/lsqnonneg_logical.sce
+++ b/tests/general_tests/lsqnonneg/lsqnonneg_logical.sce
@@ -1,40 +1,42 @@
// An example with C and d as input
-C = [
- 0.0372 0.2869
- 0.6861 0.7071
- 0.6233 0.6245
- 0.6344 0.6170];
-d = [
- 0.8587
- 0.1781
- 0.0747
- 0.8405];
+C = [1 1 1;
+ 1 1 0;
+ 0 1 1;
+ 1 0 0;
+ 0 0 1]
+d = [89;
+ 67;
+ 53;
+ 35;
+ 20]
//Output
//Optimal Solution Found.
// lambda =
//
-// lower: [0.1506118,1.441D-11]
-// upper: [0,0]
+// lower: [5.131D-09,5.546D-09,8.739D-09]
+// upper: [0,0,0]
// output =
//
-// Iterations: 5
+// Iterations: 7
// exitflag =
//
// 0
// residual =
//
-// 0.6598971
-// - 0.3118739
-// - 0.3580375
-// 0.4129595
+// 0.75
+// - 0.625
+// - 0.125
+// - 0.125
+// - 0.625
// resnorm =
//
-// 0.8314560
+// 1.375
// xopt =
//
-// 0.
-// 0.6929344
+// 35.125
+// 32.5
+// 20.625
[xopt,resnorm,residual,exitflag,output,lambda] = lsqnonneg(C,d)
diff --git a/tests/general_tests/lsqnonneg/lsqnonneg_maxiter.sce b/tests/general_tests/lsqnonneg/lsqnonneg_maxiter.sce
new file mode 100644
index 0000000..fa61c73
--- /dev/null
+++ b/tests/general_tests/lsqnonneg/lsqnonneg_maxiter.sce
@@ -0,0 +1,42 @@
+// Check for maxiter
+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",1)
+//Output
+//Maximum Number of Iterations Exceeded. Output may not be optimal.
+// lambda =
+//
+// lower: [0x0 constant]
+// upper: [0x0 constant]
+// output =
+//
+// Iterations: 1
+// exitflag =
+//
+// 1
+// residual =
+//
+// 83.449663
+// 63.182327
+// 49.319768
+// 33.129895
+// 18.267336
+// resnorm =
+//
+// 14819.578
+// xopt =
+//
+// 1.8701046
+// 1.9475681
+// 1.7326638
+
+[xopt,resnorm,residual,exitflag,output,lambda] = lsqnonneg(C,d,options)
+
diff --git a/tests/general_tests/lsqnonneg/lsqnonneg_param1.sce b/tests/general_tests/lsqnonneg/lsqnonneg_param1.sce
index d91f4b1..9809964 100644
--- a/tests/general_tests/lsqnonneg/lsqnonneg_param1.sce
+++ b/tests/general_tests/lsqnonneg/lsqnonneg_param1.sce
@@ -1,14 +1,14 @@
// Check for the parameters to be a list
-C = [
- 0.0372 0.2869
- 0.6861 0.7071
- 0.6233 0.6245
- 0.6344 0.6170];
-d = [
- 0.8587
- 0.1781
- 0.0747
- 0.8405];
+C = [1 1 1;
+ 1 1 0;
+ 0 1 1;
+ 1 0 0;
+ 0 0 1]
+d = [89;
+ 67;
+ 53;
+ 35;
+ 20]
param = 0;
diff --git a/tests/general_tests/lsqnonneg/lsqnonneg_param2.sce b/tests/general_tests/lsqnonneg/lsqnonneg_param2.sce
index 557a836..9cbaa72 100644
--- a/tests/general_tests/lsqnonneg/lsqnonneg_param2.sce
+++ b/tests/general_tests/lsqnonneg/lsqnonneg_param2.sce
@@ -1,14 +1,14 @@
// Check for the size of parameters
-C = [
- 0.0372 0.2869
- 0.6861 0.7071
- 0.6233 0.6245
- 0.6344 0.6170];
-d = [
- 0.8587
- 0.1781
- 0.0747
- 0.8405];
+C = [1 1 1;
+ 1 1 0;
+ 0 1 1;
+ 1 0 0;
+ 0 0 1]
+d = [89;
+ 67;
+ 53;
+ 35;
+ 20]
param = list("MaxIter");
diff --git a/tests/general_tests/lsqnonneg/lsqnonneg_zeros.sce b/tests/general_tests/lsqnonneg/lsqnonneg_zeros.sce
new file mode 100644
index 0000000..e454f42
--- /dev/null
+++ b/tests/general_tests/lsqnonneg/lsqnonneg_zeros.sce
@@ -0,0 +1,28 @@
+// Check for all zeros as input
+C = [0];
+d = [0];
+
+//Output
+//Optimal Solution Found.
+// lambda =
+//
+// lower: 6.400D-11
+// upper: 0
+// output =
+//
+// Iterations: 3
+// exitflag =
+//
+// 0
+// residual =
+//
+// 0.
+// resnorm =
+//
+// 0.
+// xopt =
+//
+// 0.9124275
+
+[xopt,resnorm,residual,exitflag,output,lambda] = lsqnonneg(C,d)
+
diff --git a/tests/general_tests/qpipopt/qpipopt_logical_2.sce b/tests/general_tests/qpipopt/qpipopt_logical_2.sce
index a61e416..7a75ebe 100644
--- a/tests/general_tests/qpipopt/qpipopt_logical_2.sce
+++ b/tests/general_tests/qpipopt/qpipopt_logical_2.sce
@@ -1,4 +1,3 @@
-
// A simple example without constraints
A= [];
conLB=[];
diff --git a/tests/general_tests/qpipopt/qpipopt_maxiter.sce b/tests/general_tests/qpipopt/qpipopt_maxiter.sce
new file mode 100644
index 0000000..5851630
--- /dev/null
+++ b/tests/general_tests/qpipopt/qpipopt_maxiter.sce
@@ -0,0 +1,46 @@
+//Find x in R^6 such that:
+// A simple example with constraints
+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", 1);
+
+//Output
+//Maximum Number of Iterations Exceeded. Output may not be optimal.
+// lambda =
+//
+// lower: [0x0 constant]
+// upper: [0x0 constant]
+// constraint: [0x0 constant]
+// output =
+//
+// Iterations: 1
+// exitflag =
+//
+// 1
+// fopt =
+//
+// - 9.9784864
+// xopt =
+//
+// 0.9103357
+// - 0.1104630
+// 0.0476471
+// - 2.0070896
+// 0.2116560
+// - 1.1624291
+
+[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB,x0,param)
+
+
diff --git a/tests/general_tests/qpipopt/qpipopt_zeros.sce b/tests/general_tests/qpipopt/qpipopt_zeros.sce
new file mode 100644
index 0000000..9604c4d
--- /dev/null
+++ b/tests/general_tests/qpipopt/qpipopt_zeros.sce
@@ -0,0 +1,42 @@
+
+// A simple example without constraints and all values to zero
+A= [];
+conLB=[];
+conUB = [];
+lb=[];
+ub=[];
+f=[0]';
+H =[0];
+nbVar = 1;
+nbCon = 0;
+
+
+//Output
+//
+//Optimal Solution Found.
+
+// lower: 0
+// upper: 0
+// constraint: [0x0 constant]
+//
+// lambda
+//
+// Iterations: 0
+//
+// output
+//
+// 0
+//
+// exitflag
+//
+// 0.
+//
+// fopt
+//
+// 0.
+//
+// xopt
+
+[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB)
+
+
diff --git a/tests/general_tests/qpipoptmat/qpipoptmat_logical2.sce b/tests/general_tests/qpipoptmat/qpipoptmat_logical2.sce
index 9f11d1d..e316253 100644
--- a/tests/general_tests/qpipoptmat/qpipoptmat_logical2.sce
+++ b/tests/general_tests/qpipoptmat/qpipoptmat_logical2.sce
@@ -11,7 +11,7 @@ b = [-1; 2.5];
lb=[-1000; -10000; 0; -1000; -1000; -1000];
ub=[10000; 100; 1.5; 100; 100; 1000];
param = list("MaxIter", 300, "CpuTime",100);
-//and minimize 0.5*x'*Q*x + p'*x with
+//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,[],param);
diff --git a/tests/general_tests/qpipoptmat/qpipoptmat_maxiter.sce b/tests/general_tests/qpipoptmat/qpipoptmat_maxiter.sce
new file mode 100644
index 0000000..5e4b0e5
--- /dev/null
+++ b/tests/general_tests/qpipoptmat/qpipoptmat_maxiter.sce
@@ -0,0 +1,44 @@
+//Find x in R^6 such that:
+// A simple example with constraints
+
+Aeq= [1,-1,1,0,3,1;
+-1,0,-3,-4,5,6;
+2,5,3,0,1,0];
+beq=[1; 2; 3];
+A= [0,1,0,1,2,-1;
+-1,0,2,1,1,0];
+b = [-1; 2.5];
+lb=[-1000; -10000; 0; -1000; -1000; -1000];
+ub=[10000; 100; 1.5; 100; 100; 1000];
+param = list("MaxIter", 1);
+//and minimize 0.5*x'*H*x + f'*x with
+f=[1; 2; 3; 4; 5; 6]; H=eye(6,6);
+
+//Output
+//
+//Maximum Number of Iterations Exceeded. Output may not be optimal.
+// lambda =
+//
+// lower: [0x0 constant]
+// upper: [0x0 constant]
+// eqlin: [0x0 constant]
+// ineqlin: [0x0 constant]
+// output =
+//
+// Iterations: 1
+// exitflag =
+//
+// 1
+// fopt =
+//
+// - 9.9784864
+// xopt =
+//
+// 0.9103357
+// - 0.1104630
+// 0.0476471
+// - 2.0070896
+// 0.2116560
+// - 1.1624291
+[xopt,fopt,exitflag,output,lambda]=qpipoptmat(H,f,A,b,Aeq,beq,lb,ub,[],param)
+
diff --git a/tests/general_tests/qpipoptmat/qpipoptmat_zeros.sce b/tests/general_tests/qpipoptmat/qpipoptmat_zeros.sce
new file mode 100644
index 0000000..ee9cfc9
--- /dev/null
+++ b/tests/general_tests/qpipoptmat/qpipoptmat_zeros.sce
@@ -0,0 +1,35 @@
+// A simple example without constraints
+
+f=[0]';
+H =[0];
+
+//Output
+//
+//Optimal Solution Found.
+//
+// lower: 0
+// upper: 0
+// eqlin: [0x0 constant]
+// ineqlin: [0x0 constant]
+//
+// lambda
+//
+// Iterations: 0
+//
+// output
+//
+// 0
+//
+// exitflag
+//
+// 0.
+//
+// fopt
+//
+// 0.
+//
+// xopt
+
+
+[xopt,fopt,exitflag,output,lambda]=qpipoptmat(H,f);
+
diff --git a/tests/general_tests/symphony/symphony_logical2.sce b/tests/general_tests/symphony/symphony_logical2.sce
index 5d0989f..9f34cc0 100644
--- a/tests/general_tests/symphony/symphony_logical2.sce
+++ b/tests/general_tests/symphony/symphony_logical2.sce
@@ -12,9 +12,9 @@ ub = repmat(%inf,3,1);
// Constraint Matrix
A = [3,2,5;
- 2,1,1;
- 1,1,3;
- 5,2,4]
+ 2,1,1;
+ 1,1,3;
+ 5,2,4]
// Lower Bound of constrains
conlb = repmat(-%inf,4,1)
diff --git a/tests/general_tests/symphony/symphony_zeros.sce b/tests/general_tests/symphony/symphony_zeros.sce
new file mode 100644
index 0000000..a6615f6
--- /dev/null
+++ b/tests/general_tests/symphony/symphony_zeros.sce
@@ -0,0 +1,46 @@
+// Check for size of Objective Coefficient
+// A basic case :
+
+// Objective function
+c = [0 0 0]';
+
+// Lower Bound of variable
+lb = [];
+
+// Upper Bound of variables
+ub = [];
+
+// Constraint Matrix
+A = []
+
+// Lower Bound of constrains
+conlb = []
+
+// Upper Bound of constrains
+conub = []
+
+// Row Matrix for telling symphony that the is integer or not
+isInt = [repmat(%f,1,3)];
+
+// Output
+//Problem loaded into environment.
+//Note: There is no limit on time.
+//An optimal solution has been found.
+// output =
+//
+// Iterations: 1
+// status =
+//
+// 227.
+// f =
+//
+// 0.
+// x =
+//
+// 0.
+// 0.
+// 0.
+
+// Calling Symphony
+[x,f,status,output] = symphony(3,0,c,isInt,lb,ub,A,conlb,conub,-1)
+
diff --git a/thirdparty/linux/include/coin/.IpIpoptCalculatedQuantities.hpp.swp b/thirdparty/linux/include/coin/.IpIpoptCalculatedQuantities.hpp.swp
new file mode 100644
index 0000000..3e69b30
--- /dev/null
+++ b/thirdparty/linux/include/coin/.IpIpoptCalculatedQuantities.hpp.swp
Binary files differ