Commit 0693e027 authored by David Bommes's avatar David Bommes
parents c19fd197 54a27374
Pipeline #6005 canceled with stages
in 4 minutes and 48 seconds
......@@ -18,6 +18,9 @@ CoMISo-VS2013-Qt-5.5.1-x64:
BUILD_PLATFORM: "VS2013"
ARCHITECTURE: "x64"
QT_VERSION: "Qt5.5.1"
GIT_SUBMODULE_STRATEGY: recursive
COMPILER: "VS2013"
script: "CI\\Windows.bat"
tags:
- VS2013
......
Subproject commit 8362710dbc1dede78935f171ed5185f0fa54efc8
Subproject commit 588861acd0768d78b0590b48b44fa048094ab821
git submodule init
git submodule update --remote
:: set up Libraty Paths
set LIBPATH_BASE=E:/libs/%COMPILER%
set CMAKE_WINDOWS_LIBS_DIR=E:/libs
mkdir rel
cd rel
......@@ -25,7 +31,7 @@ IF "%QT_VERSION%" == "Qt5.5.1" (
IF "%BUILD_PLATFORM%" == "VS2013" (
set LIBPATH=C:/libs/VS2013
set LIBPATH=E:/libs/VS2013
set GTESTVERSION=gtest-1.6.0
set GENERATOR=Visual Studio 12%ARCH_VS%
set VS_PATH="C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.com"
......@@ -41,7 +47,7 @@ IF "%BUILD_PLATFORM%" == "VS2013" (
)
IF "%BUILD_PLATFORM%" == "VS2015" (
set LIBPATH=C:/libs/VS2015
set LIBPATH=E:/libs/VS2015
set GTESTVERSION=gtest-1.7.0
set GENERATOR=Visual Studio 14%ARCH_VS%
set VS_PATH="C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.com"
......@@ -50,7 +56,7 @@ IF "%BUILD_PLATFORM%" == "VS2015" (
set CMAKE_CONFIGURATION=%QT_BASE_CONFIG% -DGLUT_INCLUDE_DIR="%LIBPATH%\%ARCHITECTURE%\freeglut-2.8.1\include" -DGLUT_glut_LIBRARY="%LIBPATH%\%ARCHITECTURE%\freeglut-2.8.1\lib\freeglut.lib" -DGLEW_INCLUDE_DIR="%LIBPATH%\%ARCHITECTURE%\glew-1.10.0\include" -DGLEW_LIBRARY="%LIBPATH%\%ARCHITECTURE%\glew-1.10.0\lib\glew32.lib" -DBOOST_ROOT="%LIBPATH%/%ARCHITECTURE%/boost_1_59_0" -DBOOST_LIBRARYDIR="%LIBPATH%/%ARCHITECTURE%/boost_1_59_0/lib64-msvc-12.0" -DCGAL_INCLUDE_DIR="%LIBPATH%/%ARCHITECTURE%/CGAL-4.7/include" -DCGAL_LIBRARY_DIR="%LIBPATH%/%ARCHITECTURE%/CGAL-4.7/lib" -DCGAL_BIN_DIR="%LIBPATH%/%ARCHITECTURE%/CGAL-4.7/bin" -DMUMPS_INCLUDE_DIR="%LIBPATH%/%ARCHITECTURE%/Ipopt-3.11.9/Ipopt/MSVisualStudio/v8-ifort/installed/include" -DMUMPS_LIBRARY="%LIBPATH%/%ARCHITECTURE%/Ipopt-3.11.9/Ipopt/MSVisualStudio/v8-ifort/installed/lib/CoinMumpsC.lib"
"C:\Program Files (x86)\CMake\bin\cmake.exe" -DGTEST_PREFIX="%LIBPATH%\%ARCHITECTURE%\%GTESTVERSION%" -G "%GENERATOR%" -DCMAKE_BUILD_TYPE=Release -DOPENFLIPPER_BUILD_UNIT_TESTS=TRUE %CMAKE_CONFIGURATION% ..
"C:\Program Files (x86)\CMake\bin\cmake.exe" -DGTEST_PREFIX="%LIBPATH%\%ARCHITECTURE%\%GTESTVERSION%" -G "%GENERATOR%" -DCMAKE_BUILD_TYPE=Release -DOPENFLIPPER_BUILD_UNIT_TESTS=TRUE -DCMAKE_WINDOWS_LIBS_DIR=%CMAKE_WINDOWS_LIBS_DIR% %CMAKE_CONFIGURATION% ..
IF %errorlevel% NEQ 0 exit /b %errorlevel%
......
......@@ -352,7 +352,10 @@ link_directories (
)
# enable debug stuff
add_definitions(-DDEB_ON)
set (COMISO_ENABLE_DEBUG_OUTPUT TRUE CACHE BOOL "Enable CoMISo Debug Output")
if (COMISO_ENABLE_DEBUG_OUTPUT)
add_definitions(-DDEB_ON)
endif ()
# source code directories
set (directories
......
......@@ -42,17 +42,9 @@ namespace COMISO {
class COMISODLLEXPORT ArpackSolver
{
public:
// sparse matrix type
typedef EigenArpackMatrixT<double,Eigen::SparseMatrix<double,Eigen::ColMajor> > Matrix;
/// Constructor
ArpackSolver() {}
/// Destructor
~ArpackSolver() {}
// solve eigenproblem
// number of desired eigenvalues -> _n_eigenvalues
// which eigenvalues -> one of {LA (largest algebraic), SA (smalles algebraic), LM (largest magnitude), SM(smallest magnitued), BE(both ends)}
......@@ -77,9 +69,6 @@ public:
// check resulting eigenvalues/eigenvectors
template<class MatrixT,class MatrixT2>
void check_result(const MatrixT& _A, std::vector<double>& _eigenvalues, MatrixT2& _eigenvectors);
private:
};
......
......@@ -74,9 +74,6 @@ public:
}
}
/// Destructor
~EigenArpackMatrixT() {}
// get reference on matrix
Matrix& matrix() { return mat_; }
......
......@@ -45,9 +45,6 @@ public:
AcceleratedQuadraticProxy(const double _eps = 1e-6, const int _max_iters = 1000, const double _accelerate = 100.0, const double _alpha_ls=0.2, const double _beta_ls = 0.6)
: eps_(_eps), max_iters_(_max_iters), accelerate_(_accelerate), alpha_ls_(_alpha_ls), beta_ls_(_beta_ls) {}
/// Destructor
~AcceleratedQuadraticProxy() {}
// solve without linear constraints
int solve(NProblemInterface* _quadratic_problem, NProblemInterface* _nonlinear_problem, bool _update_factorization = true)
{
......
......@@ -30,14 +30,6 @@ BoundConstraint(const unsigned int _var_idx, // index of variable for bound c
}
//-----------------------------------------------------------------------------
BoundConstraint::
~BoundConstraint()
{
}
//-----------------------------------------------------------------------------
......
......@@ -47,10 +47,6 @@ public:
const unsigned int _n = 0, // number of unknowns in problem
const ConstraintType _type = NC_LESS_EQUAL); // type of bound upper, lower or both (equal)
/// Destructor
virtual ~BoundConstraint();
virtual int n_unknowns ( );
virtual double eval_constraint ( const double* _x );
virtual void eval_gradient ( const double* _x, SVectorNC& _g );
......
......@@ -39,12 +39,6 @@ namespace COMISO {
class COMISODLLEXPORT CBCSolver
{
public:
/// Default constructor
CBCSolver() {}
/// Destructor
~CBCSolver() {}
// ********** SOLVE **************** //
//! \throws Outcome
bool solve(
......
......@@ -44,12 +44,6 @@ public:
typedef std::pair<unsigned int, VariableType> PairUiV;
/// Default constructor
COMISOSolver() {}
/// Destructor
~COMISOSolver() {}
// ********** SOLVE **************** //
void solve(NProblemInterface* _problem, // problem instance
std::vector<NConstraintInterface*>& _constraints, // linear constraints
......
......@@ -1300,14 +1300,6 @@ add_constraint_to_model( NConstraintInterface* _constraint, std::vector<IloNumVa
}
CPLEXSolver::
CPLEXSolver()
{
}
//-----------------------------------------------------------------------------
......
......@@ -45,12 +45,6 @@ class COMISODLLEXPORT CPLEXSolver
{
public:
/// Default constructor
CPLEXSolver();
/// Destructor
~CPLEXSolver() { /*env_.end();*/}
// ********** SOLVE **************** //
// this function has to be inline due to static linking issues
bool solve(NProblemInterface* _problem, // problem instance
......
......@@ -5,22 +5,20 @@
//== INCLUDES =================================================================
#include "CombinedProblem.hh"
#include <Base/Debug/DebOut.hh>
namespace COMISO {
CombinedProblem::CombinedProblem (NProblemInterface* _p1, NProblemInterface* _p2, const double _c1, const double _c2)
: p1_(_p1) , p2_(_p2), c1_(_c1), c2_(_c2)
{
if(p1_->n_unknowns() != p2_->n_unknowns())
std::cerr << "Warning: CombinedProblem received two problems with different #unknowns!!!" << std::endl;
DEB_enter_func;
DEB_warning_if(p1_->n_unknowns() != p2_->n_unknowns(), 1,
"CombinedProblem received two problems with different unknowns #");
g_temp_.resize(p1_->n_unknowns());
}
CombinedProblem::~CombinedProblem()
{
}
int CombinedProblem::n_unknowns()
{
return p1_->n_unknowns();
......
......@@ -48,9 +48,6 @@ public:
/// Default constructor
CombinedProblem (NProblemInterface* _p1, NProblemInterface* _p2, const double _c1 = 1.0, const double _c2 = 1.0);
/// Destructor
virtual ~CombinedProblem();
// problem definition
virtual int n_unknowns();
......
......@@ -39,9 +39,6 @@ ConeConstraint::ConeConstraint(const double _c, const int _i, const SMatrixNC& _
{
}
/// Destructor
ConeConstraint::~ConeConstraint() {}
int ConeConstraint::n_unknowns()
{
return Q_.cols();
......
......@@ -39,9 +39,6 @@ public:
// cone constraint of the form -> 0.5*(c_ * x(i_)^2 - x^T Q_ x) >= 0
ConeConstraint(const double _c, const int _i, const SMatrixNC& _Q);
/// Destructor
virtual ~ConeConstraint();
virtual int n_unknowns();
// resize coefficient vector = #unknowns
......
......@@ -13,17 +13,6 @@
namespace COMISO {
ConstraintTools::ConstraintTools()
{
}
//-----------------------------------------------------------------------------
ConstraintTools::~ConstraintTools()
{
}
//-----------------------------------------------------------------------------
void
......
......@@ -47,12 +47,6 @@ public:
typedef gmm::row_matrix< SVectorGMM > RMatrixGMM;
typedef gmm::col_matrix< SVectorGMM > CMatrixGMM;
/// Default constructor
ConstraintTools();
/// Destructor
~ConstraintTools();
// remove all linear dependent linear equality constraints. the remaining constraints are a subset of the original ones
// nonlinear or equality constraints are preserved.
static void remove_dependent_linear_constraints(std::vector<NConstraintInterface*>& _constraints, const double _eps = 1e-8);
......
......@@ -242,8 +242,6 @@ private:
Job::~Job()
{
DEB_enter_func;
delete stts_;
if (url_.empty()) // not setup
......
......@@ -13,11 +13,6 @@ FiniteElementProblem::FiniteElementProblem(const unsigned int _n)
{
}
/// Destructor
FiniteElementProblem::~FiniteElementProblem()
{
}
void FiniteElementProblem::add_set(FiniteElementSetBase* _fe_set)
{
fe_sets_.push_back(_fe_set);
......
......@@ -237,9 +237,6 @@ public:
/// Default constructor
FiniteElementProblem(const unsigned int _n);
/// Destructor
virtual ~FiniteElementProblem();
void add_set(FiniteElementSetBase* _fe_set);
void clear_sets();
......
......@@ -59,13 +59,6 @@ void add_constraint_to_model(COMISO::NConstraintInterface* _constraint,
//-----------------------------------------------------------------------------
GUROBISolver::
GUROBISolver()
{
}
//-----------------------------------------------------------------------------
static void process_gurobi_exception(const GRBException& _exc)
{
DEB_enter_func;
......@@ -90,8 +83,8 @@ static void process_gurobi_exception(const GRBException& _exc)
bool
GUROBISolver::
solve(NProblemInterface* _problem,
std::vector<NConstraintInterface*>& _constraints,
std::vector<PairIndexVtype>& _discrete_constraints,
const std::vector<NConstraintInterface *> &_constraints,
const std::vector<PairIndexVtype> &_discrete_constraints,
const double _time_limit)
{
DEB_enter_func;
......@@ -280,8 +273,8 @@ solve(NProblemInterface* _problem,
bool
GUROBISolver::
solve_two_phase(NProblemInterface* _problem, // problem instance
std::vector<NConstraintInterface*>& _constraints, // linear constraints
std::vector<PairIndexVtype>& _discrete_constraints, // discrete constraints
const std::vector<NConstraintInterface*>& _constraints, // linear constraints
const std::vector<PairIndexVtype>& _discrete_constraints, // discrete constraints
const double _time_limit0, // time limit phase 1 in seconds
const double _gap0, // MIP gap phase 1
const double _time_limit1, // time limit phase 2 in seconds
......@@ -295,8 +288,8 @@ solve_two_phase(NProblemInterface* _problem, //
bool
GUROBISolver::
solve_two_phase(NProblemInterface* _problem, // problem instance
std::vector<NConstraintInterface*>& _constraints, // linear constraints
std::vector<PairIndexVtype>& _discrete_constraints, // discrete constraints
const std::vector<NConstraintInterface *> &_constraints, // linear constraints
const std::vector<PairIndexVtype> &_discrete_constraints, // discrete constraints
const double _time_limit0, // time limit phase 1 in seconds
const double _gap0, // MIP gap phase 1
const double _time_limit1, // time limit phase 2 in seconds
......
......@@ -42,22 +42,15 @@ namespace COMISO {
class COMISODLLEXPORT GUROBISolver
{
public:
/// Default constructor
GUROBISolver();
/// Destructor
~GUROBISolver() {}
// ********** SOLVE **************** //
bool solve(NProblemInterface* _problem, // problem instance
std::vector<NConstraintInterface*>& _constraints, // linear constraints
std::vector<PairIndexVtype>& _discrete_constraints, // discrete constraints
const double _time_limit = 60 ); // time limit in seconds
bool solve(NProblemInterface* _problem, // problem instance
const std::vector<NConstraintInterface*>& _constraints, // linear constraints
const std::vector<PairIndexVtype>& _discrete_constraints, // discrete constraints
const double _time_limit = 60 ); // time limit in seconds
bool solve(NProblemInterface* _problem, // problem instance
std::vector<NConstraintInterface*>& _constraints, // linear constraints
const double _time_limit = 60 ) // time limit in seconds
const std::vector<NConstraintInterface*>& _constraints, // linear constraints
const double _time_limit = 60 ) // time limit in seconds
{
std::vector<PairIndexVtype> dc;
return solve(_problem, _constraints, dc, _time_limit);
......@@ -69,16 +62,16 @@ public:
// phase 2) starts only if in phase 1 no solution with a MIP gap lower than _gap1 was found and
// uses _gap1 and _time_limit2 as parameters
bool solve_two_phase(NProblemInterface* _problem, // problem instance
std::vector<NConstraintInterface*>& _constraints, // linear constraints
std::vector<PairIndexVtype>& _discrete_constraints, // discrete constraints
const std::vector<NConstraintInterface*>& _constraints, // linear constraints
const std::vector<PairIndexVtype>& _discrete_constraints, // discrete constraints
const double _time_limit0 = 60, // time limit phase 1 in seconds
const double _gap0 = 0.001, // MIP gap phase 1
const double _time_limit1 = 120, // time limit phase 2 in seconds
const double _gap1 = 0.2 ); // MIP gap phase 2
bool solve_two_phase(NProblemInterface* _problem, // problem instance
std::vector<NConstraintInterface*>& _constraints, // linear constraints
std::vector<PairIndexVtype>& _discrete_constraints, // discrete constraints
const std::vector<NConstraintInterface*>& _constraints, // linear constraints
const std::vector<PairIndexVtype>& _discrete_constraints, // discrete constraints
const double _time_limit0, // time limit phase 1 in seconds
const double _gap0 , // MIP gap phase 1
const double _time_limit1, // time limit phase 2 in seconds
......
......@@ -52,9 +52,6 @@ public:
/// Default constructor -> set up IpOptApplication
IPOPTSolver();
/// Destructor
~IPOPTSolver() {}
// ********** SOLVE **************** //
// solve -> returns ipopt status code
//------------------------------------------------------
......
......@@ -171,12 +171,16 @@ static void throw_ipopt_solve_failure(Ipopt::ApplicationReturnStatus const statu
// Internal_Error=-199
// };
//------------------------------------------------------
switch(status) {
switch (status)
{
case Ipopt::Maximum_Iterations_Exceeded:
COMISO_THROW(IPOPT_MAXIMUM_ITERATIONS_EXCEEDED);
case Ipopt::NonIpopt_Exception_Thrown:
// this could be due to a thrown PROGRESS_ABORTED exception, ...
PROGRESS_RESUME_ABORT; // ... so check if we need to resume it
default:
COMISO_THROW(IPOPT_OPTIMIZATION_FAILED);
} // endswicth
}
}
static void check_ipopt_status(Ipopt::ApplicationReturnStatus const _stat)
......@@ -185,7 +189,6 @@ static void check_ipopt_status(Ipopt::ApplicationReturnStatus const _stat)
throw_ipopt_solve_failure(_stat);
}
void IPOPTSolverLean::solve(NProblemInterface* _problem,
const std::vector<NConstraintInterface*>& _constraints)
{
......@@ -320,7 +323,10 @@ void IPOPTSolverLean::solve(
//----------------------------------------------------------------------------
// 3. solve problem
//----------------------------------------------------------------------------
status = impl_->app_->OptimizeTNLP(np);
{
DEB_time_session_def("IPOPT App OptimizeTNLP(np)");
status = impl_->app_->OptimizeTNLP(np);
}
check_ipopt_status(status);
......
......@@ -41,10 +41,6 @@ public:
/// Default constructor
LeastSquaresProblem(const int _n_unknowns = 0) :n_(_n_unknowns), x_(_n_unknowns, 0.0) {}
/// Destructor
~LeastSquaresProblem() {}
void add_term(NConstraintInterface* _term);
void clear_terms() {terms_.clear();}
......
......@@ -35,9 +35,6 @@ LinearConstraint::LinearConstraint(const SVectorNC& _coeffs, const double _b, co
b_ = _b;
}
/// Destructor
LinearConstraint::~LinearConstraint() {}
int LinearConstraint::n_unknowns()
{
return coeffs_.innerSize();
......
......@@ -48,9 +48,6 @@ public:
// linear equation of the form -> coeffs_^T *x + b_=_type= 0
LinearConstraint(const SVectorNC& _coeffs, const double _b, const ConstraintType _type = NC_EQUAL);
/// Destructor
virtual ~LinearConstraint();
virtual int n_unknowns();
// resize coefficient vector = #unknowns
......
......@@ -52,10 +52,6 @@ public:
LinearConstraintHandlerElimination( const MatrixT& _C, const VectorT& _c)
{initialize(_C, _c); }
/// Destructor
~LinearConstraintHandlerElimination() {}
// number of variables
int n() {return n_;}
// number of reduced variables (after elimination)
......
......@@ -20,13 +20,6 @@ namespace COMISO {
/// Constructor
LinearConstraintHandlerPenalty::LinearConstraintHandlerPenalty() : penalty_(10000) {}
//-----------------------------------------------------------------------------
/// Destructor
LinearConstraintHandlerPenalty::~LinearConstraintHandlerPenalty()
{}
//-----------------------------------------------------------------------------
// penalty weight
......
......@@ -51,9 +51,6 @@ public:
template<class MatrixT, class VectorT>
LinearConstraintHandlerPenalty( const MatrixT& _C, const VectorT& _c);
/// Destructor
~LinearConstraintHandlerPenalty();
// penalty weight
double& penalty();
......
......@@ -15,10 +15,6 @@ namespace COMISO {
x_.resize(_dimension, 0.0);
}
LinearProblem::~LinearProblem()
{
}
int LinearProblem::n_unknowns()
{
return static_cast<int>(coeffs_.size());
......
......@@ -45,9 +45,6 @@ public:
/// Default constructor
LinearProblem (std::size_t _dimension = 0);
/// Destructor
virtual ~LinearProblem();
// problem definition
virtual int n_unknowns();
......
......@@ -2,10 +2,4 @@
namespace COMISO {
NPDerivativeChecker::NPDerivativeChecker()
{}
NPDerivativeChecker::~NPDerivativeChecker()
{}
}
......@@ -60,12 +60,6 @@ public:
double relativeEps;
};
/// Default constructor
NPDerivativeChecker();
/// Destructor
~NPDerivativeChecker();
template<class ProblemInterface>
bool check_all(ProblemInterface* _np, double _dx, double _eps)
{
......
......@@ -31,9 +31,6 @@ NPLinearConstraintsElimination::NPLinearConstraintsElimination(NProblemGmmInterf
this->initialize_identity(base_->n_unknowns());
}
/// Destructor
NPLinearConstraintsElimination::~NPLinearConstraintsElimination() {}
// NSolverInterface
int NPLinearConstraintsElimination::n_unknowns ()
{ return this->n_reduced(); }
......@@ -126,10 +123,6 @@ double* NPLinearConstraintsElimination::P(const std::vector<double>& _v)
NPLinearConstraintsPenalty::NPLinearConstraintsPenalty( NProblemGmmInterface* _np) : base_(_np)
{ if( !base_) std::cerr << "Warning: initialized NPLinearConstraints with zero pointer...\n"; }
/// Destructor
NPLinearConstraintsPenalty::~NPLinearConstraintsPenalty()
{}
// NSolverInterface
int NPLinearConstraintsPenalty::n_unknowns ()
{ return base_->n_unknowns(); }
......
......@@ -47,9 +47,6 @@ public:
/// Default constructor having a pointer to the main problem
NPLinearConstraintsElimination( NProblemGmmInterface* _np);
/// Destructor
~NPLinearConstraintsElimination();
// initialize constraints
template<class MatrixT, class VectorT>
void initialize_constraints( const MatrixT& _C, const VectorT& _c);
......@@ -100,9 +97,6 @@ public:
/// Default constructor having a pointer to the main problem
NPLinearConstraintsPenalty( NProblemGmmInterface* _np);
/// Destructor
~NPLinearConstraintsPenalty();
// initialize constraints
template<class MatrixT, class VectorT>
void initialize_constraints( const MatrixT& _C, const VectorT& _c);
......
......@@ -23,10 +23,7 @@ namespace COMISO {
/// Default constructor
NPTiming::NPTiming(NProblemInterface* _base) : base_(_base) {start_timing();}
/// Destructor
NPTiming::~NPTiming() {}
int NPTiming::n_unknowns ()
int NPTiming::n_unknowns()
{
return base_->n_unknowns();
}
......
......@@ -39,9 +39,6 @@ public:
/// Default constructor
NPTiming(NProblemInterface* _base);
/// Destructor
~NPTiming();
virtual int n_unknowns ();
virtual void initial_x( double* _x );
......
......@@ -14,6 +14,7 @@
#include <gmm/gmm.h>
#include <CoMISo/Config/CoMISoDefines.hh>
#include <Base/Debug/DebOut.hh>
//== FORWARDDECLARATIONS ======================================================
......@@ -42,11 +43,11 @@ public:
/// Default constructor
NProblemGmmInterface()
{std::cerr << "Warning: NProblemGmmInterface is deprecated -> use NProblemInterface instead!!!" << std::endl;}
{
DEB_error(
"NProblemGmmInterface is deprecated -> use NProblemInterface instead");
}
/// Destructor
~NProblemGmmInterface() {}
virtual int n_unknowns ( ) = 0;
virtual void initial_x ( double* _x ) = 0;
virtual double eval_f ( const double* _x ) = 0;
......
......@@ -72,9 +72,6 @@ public:
analyze_special_properties(_problem, _constraints);
}
/** default destructor */
virtual ~NProblemIPOPT() {};
/**@name Overloaded from TNLP */
//@{
/** Method to return some info about the nlp */
......@@ -130,6 +127,21 @@ public:
IpoptCalculatedQuantities* ip_cq);
//@}
/** Intermediate Callback method for the user. Providing dummy
* default implementation. For details see IntermediateCallBack
* in IpNLP.hpp. */
virtual bool intermediate_callback(
Ipopt::AlgorithmMode mode,
Index iter, Number obj_value,
Number inf_pr, Number inf_du,
Number mu, Number d_norm,
Number regularization_size,
Number alpha_du, Number alpha_pr,
Index ls_trials,
const IpoptData* ip_data,
IpoptCalculatedQuantities* ip_cq
) override;
// special properties of problem
bool hessian_constant() const;
bool jac_c_constant() const;
......@@ -218,9 +230,6 @@ public:
: problem_(_problem), constraints_(_constraints), nnz_jac_g_(0), nnz_h_lag_(0)
{}
/** default destructor */
virtual ~NProblemGmmIPOPT() {};
/**@name Overloaded from TNLP */
//@{
/** Method to return some info about the nlp */
......@@ -276,6 +285,22 @@ public:
IpoptCalculatedQuantities* ip_cq);
//@}
/** Intermediate Callback method for the user. Providing dummy
* default implementation. For details see IntermediateCallBack