diff options
author | Harpreet | 2016-09-03 00:34:27 +0530 |
---|---|---|
committer | Harpreet | 2016-09-03 00:34:27 +0530 |
commit | 4b64cf486f5c999fd8167758cae27839f3b50848 (patch) | |
tree | d9d06639fb7fa61aef59be0363655e4747105ec7 /newstructure/demos/mps_cbcintlinprog.sci | |
parent | d19794fb80a271a4c885ed90f97cfc12baa012f2 (diff) | |
download | FOSSEE-Optim-toolbox-development-4b64cf486f5c999fd8167758cae27839f3b50848.tar.gz FOSSEE-Optim-toolbox-development-4b64cf486f5c999fd8167758cae27839f3b50848.tar.bz2 FOSSEE-Optim-toolbox-development-4b64cf486f5c999fd8167758cae27839f3b50848.zip |
Structure updated and intqpipopt files added
Diffstat (limited to 'newstructure/demos/mps_cbcintlinprog.sci')
-rw-r--r-- | newstructure/demos/mps_cbcintlinprog.sci | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/newstructure/demos/mps_cbcintlinprog.sci b/newstructure/demos/mps_cbcintlinprog.sci new file mode 100644 index 0000000..eef8b68 --- /dev/null +++ b/newstructure/demos/mps_cbcintlinprog.sci @@ -0,0 +1,79 @@ +// Code Authors: Akshay Miterani and Pranav Deshpande +// Organization: FOSSEE, IIT Bombay +// Email: toolbox@scilab.in + +function [xopt,fopt,status,output] = cbcmpsintlinprog(varargin) + // Sci File Wrapper for the mps_cbcintlinprog.cpp file + + // Number of input and output arguments + [nOutput, nInput] = argn(); + + // To check the number of arguments given by the user + if (nInput<1 | nInput>2) then + error(999, 'Check the number of input arguments!'); + end + + mpsFile = varargin(1); + optval = [0,0,0,0]; + if(nInput==2) then + options=varargin(2); + if length(options) == 0 then + optval = [0 0 0 0]; + else + optval = [0 0 0 0]; + for i=1:2:length(options) + select options(i) + case 'IntegerTolerance' then + optval(1) = options(i+1); + case 'MaxNodes' then + optval(2) = options(i+1); + case 'MaxTime' then + optval(3) = options(i+1); + case 'AllowableGap' then + optval(4) = options(i+1); + else + error(999, 'Unknown string argument passed.'); + end + end + end + end + + [xopt,fopt,status,nodes,nfpoints,L,U,niter] = sci_mps_intlinprog(mpsFile, optval) + + output = struct("relativegap" , [],.. + "absolutegap" , [],.. + "numnodes" , [],.. + "numfeaspoints" , [],.. + "numiterations" , [],.. + "message" , ''); + + output.numnodes = [nodes]; + output.numfeaspoints = [nfpoints]; + output.numiterations = [niter]; + output.relativegap = (U-L)/(abs(U)+1); + output.absolutegap = (U-L); + + select status + + case 0 then + output.message="Optimal Solution" + case 1 then + output.message="Primal Infeasible" + case 2 then + output.message="Solution Limit is reached" + case 3 then + output.message="Node Limit is reached" + case 4 then + output.message="Numerical Difficulties" + case 5 then + output.message="Time Limit Reached" + case 6 then + output.message="Continuous Solution Unbounded" + case 7 then + output.message="Dual Infeasible" + else + output.message="Invalid status returned. Notify the Toolbox authors" + break; + end + +endfunction |