summaryrefslogtreecommitdiff
path: root/newstructure/macros/cbcmpsintlinprog.sci
diff options
context:
space:
mode:
Diffstat (limited to 'newstructure/macros/cbcmpsintlinprog.sci')
-rw-r--r--newstructure/macros/cbcmpsintlinprog.sci86
1 files changed, 0 insertions, 86 deletions
diff --git a/newstructure/macros/cbcmpsintlinprog.sci b/newstructure/macros/cbcmpsintlinprog.sci
deleted file mode 100644
index 1d46b5a..0000000
--- a/newstructure/macros/cbcmpsintlinprog.sci
+++ /dev/null
@@ -1,86 +0,0 @@
-// Copyright (C) 2016 - 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: Pranav Deshpande and Akshay Miterani
-// 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