// 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 #include #include #include #include extern "C"{ #include #include #include #include #include #if defined(_MSC_VER) #include "config_ipopt.h" #else #include "IpoptConfig.h" #endif using namespace Ipopt; QuadNLP::~QuadNLP() { if(finalX_) delete[] finalX_; if(finalZl_) delete[] finalZl_; if(finalZu_) delete[] finalZu_; if(finalLambda_) delete[] finalLambda_; } //get NLP info such as number of variables,constraints,no.of elements in jacobian and hessian to allocate memory bool QuadNLP::get_nlp_info(Index& n, Index& m, Index& nnz_jac_g, Index& nnz_h_lag, IndexStyleEnum& index_style){ n=numVars_; // Number of variables m=numConstr_; // Number of constraints nnz_jac_g = n*m; // No. of elements in Jacobian of constraints nnz_h_lag = n*(n+1)/2; // No. of elements in lower traingle of Hessian of the Lagrangian. index_style=C_STYLE; // Index style of matrices return true; } //get variable and constraint bound info bool QuadNLP::get_bounds_info(Index n, Number* x_l, Number* x_u, Index m, Number* g_l, Number* g_u){ unsigned int i; for(i=0;i