summaryrefslogtreecommitdiff
path: root/newstructure/sci_gateway/cpp/cpp_intfmincon.cpp
diff options
context:
space:
mode:
authorHarpreet2016-09-03 00:36:51 +0530
committerHarpreet2016-09-03 00:36:51 +0530
commita0d9443af147e949c1e6a01ac24749d12593ec5b (patch)
tree1a1955c5482ae608fd7f618b06f4ecc6a0d39a23 /newstructure/sci_gateway/cpp/cpp_intfmincon.cpp
parent4b64cf486f5c999fd8167758cae27839f3b50848 (diff)
downloadFOSSEE-Optim-toolbox-development-a0d9443af147e949c1e6a01ac24749d12593ec5b.tar.gz
FOSSEE-Optim-toolbox-development-a0d9443af147e949c1e6a01ac24749d12593ec5b.tar.bz2
FOSSEE-Optim-toolbox-development-a0d9443af147e949c1e6a01ac24749d12593ec5b.zip
cbcintlinprog added
Diffstat (limited to 'newstructure/sci_gateway/cpp/cpp_intfmincon.cpp')
-rw-r--r--newstructure/sci_gateway/cpp/cpp_intfmincon.cpp189
1 files changed, 0 insertions, 189 deletions
diff --git a/newstructure/sci_gateway/cpp/cpp_intfmincon.cpp b/newstructure/sci_gateway/cpp/cpp_intfmincon.cpp
deleted file mode 100644
index d921128..0000000
--- a/newstructure/sci_gateway/cpp/cpp_intfmincon.cpp
+++ /dev/null
@@ -1,189 +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: Harpreet Singh
-// Organization: FOSSEE, IIT Bombay
-// Email: toolbox@scilab.in
-
-#include "CoinPragma.hpp"
-#include "CoinTime.hpp"
-#include "CoinError.hpp"
-
-#include "BonOsiTMINLPInterface.hpp"
-#include "BonIpoptSolver.hpp"
-#include "minconTMINLP.hpp"
-#include "BonCbc.hpp"
-#include "BonBonminSetup.hpp"
-
-#include "BonOACutGenerator2.hpp"
-#include "BonEcpCuts.hpp"
-#include "BonOaNlpOptim.hpp"
-
-#include "sci_iofunc.hpp"
-extern "C"
-{
-#include "call_scilab.h"
-#include <api_scilab.h>
-#include <Scierror.h>
-#include <BOOL.h>
-#include <localization.h>
-#include <sciprint.h>
-
-int cpp_intfmincon(char *fname)
-{
- using namespace Ipopt;
- using namespace Bonmin;
-
- CheckInputArgument(pvApiCtx, 13, 13);
- CheckOutputArgument(pvApiCtx, 3, 3);
-
- // Input arguments
- Number *integertolerance=NULL, *maxnodes=NULL, *allowablegap=NULL, *cputime=NULL,*max_iter=NULL;
- Number *x0 = NULL, *lb = NULL, *ub = NULL,*conLb = NULL, *conUb = NULL,*LC = NULL;
- static unsigned int nVars = 0,nCons = 0;
- unsigned int temp1 = 0,temp2 = 0, iret = 0;
- int x0_rows, x0_cols,intconSize;
- Number *intcon = NULL,*options=NULL, *ifval=NULL;
-
- // Output arguments
- Number *fX = NULL, ObjVal=0,iteration=0,cpuTime=0,fobj_eval=0;
- Number dual_inf, constr_viol, complementarity, kkt_error;
- int rstatus = 0;
-
- if(getDoubleMatrixFromScilab(6, &nVars, &x0_cols, &x0))
- {
- return 1;
- }
-
- if(getDoubleMatrixFromScilab(7, &x0_rows, &x0_cols, &lb))
- {
- return 1;
- }
-
- if(getDoubleMatrixFromScilab(8, &x0_rows, &x0_cols, &ub))
- {
- return 1;
- }
-
- if(getDoubleMatrixFromScilab(9, &nCons, &x0_cols, &conLb))
- {
- return 1;
- }
-
- if(getDoubleMatrixFromScilab(10, &x0_rows, &x0_cols, &conUb))
- {
- return 1;
- }
-
- // Getting intcon
- if (getDoubleMatrixFromScilab(11,&intconSize,&temp2,&intcon))
- {
- return 1;
- }
-
- if (getDoubleMatrixFromScilab(13,&temp1,&temp2,&LC))
- {
- return 1;
- }
-
- //Initialization of parameters
- temp1 = 1;
- temp2 = 1;
-
- //Getting parameters
- if (getFixedSizeDoubleMatrixInList(12,2,temp1,temp2,&integertolerance))
- {
- return 1;
- }
- if (getFixedSizeDoubleMatrixInList(12,4,temp1,temp2,&maxnodes))
- {
- return 1;
- }
- if (getFixedSizeDoubleMatrixInList(12,6,temp1,temp2,&cputime))
- {
- return 1;
- }
- if (getFixedSizeDoubleMatrixInList(12,8,temp1,temp2,&allowablegap))
- {
- return 1;
- }
- if (getFixedSizeDoubleMatrixInList(12,10,temp1,temp2,&max_iter))
- {
- return 1;
- }
-
- SmartPtr<minconTMINLP> tminlp = new minconTMINLP(nVars,x0,lb,ub,(unsigned int)LC,nCons,conLb,conUb,intconSize,intcon);
-
- BonminSetup bonmin;
- bonmin.initializeOptionsAndJournalist();
- bonmin.options()->SetStringValue("mu_oracle","loqo");
- bonmin.options()->SetIntegerValue("bonmin.print_level",5);
- bonmin.options()->SetNumericValue("bonmin.integer_tolerance", *integertolerance);
- bonmin.options()->SetIntegerValue("bonmin.node_limit", (int)*maxnodes);
- bonmin.options()->SetNumericValue("bonmin.time_limit", *cputime);
- bonmin.options()->SetNumericValue("bonmin.allowable_gap", *allowablegap);
- bonmin.options()->SetIntegerValue("bonmin.iteration_limit", (int)*max_iter);
-
- //Now initialize from tminlp
- bonmin.initialize(GetRawPtr(tminlp));
-
- //Set up done, now let's branch and bound
- try {
- Bab bb;
- bb(bonmin);//process parameter file using Ipopt and do branch and bound using Cbc
- }
- catch(TNLPSolver::UnsolvedError *E) {
- }
- catch(OsiTMINLPInterface::SimpleError &E) {
- }
- catch(CoinError &E) {
- }
- rstatus=tminlp->returnStatus();
-
- if(rstatus==0 ||rstatus== 3)
- {
- fX = tminlp->getX();
- ObjVal = tminlp->getObjVal();
- if (returnDoubleMatrixToScilab(1, nVars, 1, fX))
- {
- return 1;
- }
-
- if (returnDoubleMatrixToScilab(2, 1, 1, &ObjVal))
- {
- return 1;
- }
-
- if (returnIntegerMatrixToScilab(3, 1, 1, &rstatus))
- {
- return 1;
- }
-
- }
- else
- {
- if (returnDoubleMatrixToScilab(1, 0, 0, fX))
- {
- return 1;
- }
-
- if (returnDoubleMatrixToScilab(2, 1, 1, &ObjVal))
- {
- return 1;
- }
-
- if (returnIntegerMatrixToScilab(3, 1, 1, &rstatus))
- {
- return 1;
- }
-
- }
-
- return 0;
- }
-}
-