summaryrefslogtreecommitdiff
path: root/build/Bonmin/include/coin/BonTMINLP2Quad.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'build/Bonmin/include/coin/BonTMINLP2Quad.hpp')
-rw-r--r--build/Bonmin/include/coin/BonTMINLP2Quad.hpp191
1 files changed, 0 insertions, 191 deletions
diff --git a/build/Bonmin/include/coin/BonTMINLP2Quad.hpp b/build/Bonmin/include/coin/BonTMINLP2Quad.hpp
deleted file mode 100644
index 4d7f0c6..0000000
--- a/build/Bonmin/include/coin/BonTMINLP2Quad.hpp
+++ /dev/null
@@ -1,191 +0,0 @@
-// (C) Copyright International Business Machines Corporation 2007
-// All Rights Reserved.
-// This code is published under the Eclipse Public License.
-//
-// Authors :
-// Pierre Bonami, International Business Machines Corporation
-//
-// Date : 10/06/2007
-
-#ifndef __TMINLPQuad_HPP__
-#define __TMINLPQuad_HPP__
-
-#include "BonTMINLP2TNLP.hpp"
-#include "BonQuadRow.hpp"
-
-namespace Bonmin
-{
-
-
- /** This is a derived class fro TMINLP2TNLP to handle adding quadratic cuts.
- */
- class TMINLP2TNLPQuadCuts : public Bonmin::TMINLP2TNLP
- {
- public:
- /**@name Constructors/Destructors */
- //@{
- TMINLP2TNLPQuadCuts(const Ipopt::SmartPtr<Bonmin::TMINLP> tminlp
-#ifdef WARM_STARTER
- ,
- const OptionsList& options
-#endif
- );
-
-
- /** Copy Constructor
- * \warning source and copy point to the same tminlp_.
- */
- TMINLP2TNLPQuadCuts(const TMINLP2TNLPQuadCuts&);
-
- /** Virtual copy.*/
- virtual Bonmin::TMINLP2TNLP * clone() const{
- printf("Cloning TMINLP2TNLPQuadCuts.\n");
- return new TMINLP2TNLPQuadCuts(*this);}
-
- /** Destructor */
- virtual ~TMINLP2TNLPQuadCuts();
- //@}
- /**@name methods to gather information about the NLP */
- //@{
- /** This call is just passed onto parent class and add number of quadratic
- cuts*/
- virtual bool get_nlp_info(Ipopt::Index& n, Ipopt::Index& m, Ipopt::Index& nnz_jac_g,
- Ipopt::Index& nnz_h_lag,
- Ipopt::TNLP::IndexStyleEnum& index_style);
-
- /** This call is just passed onto parent class and add bounds of quadratic
- cuts*/
- virtual bool get_bounds_info(Ipopt::Index n, Ipopt::Number* x_l, Ipopt::Number* x_u,
- Ipopt::Index m, Ipopt::Number* g_l, Ipopt::Number* g_u);
-
- virtual bool get_constraints_linearity(Ipopt::Index m, Ipopt::TNLP::LinearityType* const_types);
-
- /** This call is just passed onto parent class and add
- lambda for quadratic cuts*/
- virtual bool get_starting_point(Ipopt::Index n, bool init_x, Ipopt::Number* x,
- bool init_z, Ipopt::Number* z_L, Ipopt::Number* z_U,
- Ipopt::Index m, bool init_lambda,
- Ipopt::Number* lambda);
-
- /** Method that returns scaling parameters (passed to parent all quadratic
- not scaled).
- */
- virtual bool get_scaling_parameters(Ipopt::Number& obj_scaling,
- bool& use_x_scaling, Ipopt::Index n,
- Ipopt::Number* x_scaling,
- bool& use_g_scaling, Ipopt::Index m,
- Ipopt::Number* g_scaling);
-
-
- /** Returns the value of the objective function in x*/
- virtual bool eval_f(Ipopt::Index n, const Ipopt::Number* x, bool new_x,
- Ipopt::Number& obj_value);
-
- /** Returns the vector of the gradient of
- * the objective w.r.t. x */
- virtual bool eval_grad_f(Ipopt::Index n, const Ipopt::Number* x, bool new_x,
- Ipopt::Number* grad_f);
-
- /** Returns the vector of constraint values in x (appends constraint values for quadratics).*/
- virtual bool eval_g(Ipopt::Index n, const Ipopt::Number* x, bool new_x,
- Ipopt::Index m, Ipopt::Number* g);
-
- /** Returns the jacobian of the
- * constraints. The vectors iRow and jCol only need to be set
- * once. The first call is used to set the structure only (iRow
- * and jCol will be non-NULL, and values will be NULL) For
- * subsequent calls, iRow and jCol will be NULL. */
- virtual bool eval_jac_g(Ipopt::Index n, const Ipopt::Number* x, bool new_x,
- Ipopt::Index m, Ipopt::Index nele_jac, Ipopt::Index* iRow,
- Ipopt::Index *jCol, Ipopt::Number* values);
- /** compute the value of a single constraint */
- virtual bool eval_gi(Ipopt::Index n, const Ipopt::Number* x, bool new_x,
- Ipopt::Index i, Ipopt::Number& gi);
- /** compute the structure or values of the gradient for one
- constraint */
- virtual bool eval_grad_gi(Ipopt::Index n, const Ipopt::Number* x, bool new_x,
- Ipopt::Index i, Ipopt::Index& nele_grad_gi, Ipopt::Index* jCol,
- Ipopt::Number* values);
- /** Return the hessian of the
- * lagrangian. The vectors iRow and jCol only need to be set once
- * (during the first call). The first call is used to set the
- * structure only (iRow and jCol will be non-NULL, and values
- * will be NULL) For subsequent calls, iRow and jCol will be
- * NULL. This matrix is symmetric - specify the lower diagonal
- * only */
- virtual bool eval_h(Ipopt::Index n, const Ipopt::Number* x, bool new_x,
- Ipopt::Number obj_factor, Ipopt::Index m, const Ipopt::Number* lambda,
- bool new_lambda, Ipopt::Index nele_hess,
- Ipopt::Index* iRow, Ipopt::Index* jCol, Ipopt::Number* values);
- //@}
-
-
- /** \name Cuts management. */
- //@{
-
-
- /** Add some linear or quadratic cuts to the problem formulation
- if some of the OsiRowCuts are quadratic they will be well understood as long as safe is true.*/
- void addCuts(const Cuts& cuts, bool safe);
-
-
- /** Add some cuts to the problem formulaiton (handles Quadratics).*/
- void addCuts(const OsiCuts &cuts);
-
- /** Add some linear cuts to the problem formulation.*/
- virtual void addCuts(unsigned int numberCuts, const OsiRowCut ** cuts);
-
-
- /** Remove some cuts from the formulation */
- void removeCuts(unsigned int number ,const int * toRemove);
-
- //@}
- //
- /** Change objective to a linear one whith given objective function.*/
- void set_linear_objective(int n_var, const double * obj, double c_0);
-
- /** Reset objective to original one */
- void reset_objective(){
- obj_.clear();
- }
-
- protected:
- /** Add some cuts to the problem formulaiton (handles Quadratics).*/
- void addRowCuts(const OsiCuts &cuts, bool safe);
- /**@name Default Compiler Generated Methods
- * (Hidden to avoid implicit creation/calling).
- * These methods are not implemented and
- * we do not want the compiler to implement
- * them for us, so we declare them private
- * and do not define them. This ensures that
- * they will not be implicitly created/called. */
- //@{
- /** Default Constructor */
- TMINLP2TNLPQuadCuts();
-
- /** Overloaded Equals Operator */
- TMINLP2TNLPQuadCuts& operator=(const TMINLP2TNLP&);
- //@}
-
- private:
- /** Some storage for quadratic cuts.*/
- vector<QuadRow *> quadRows_;
-
- /** Storage for the original hessian of the problem.*/
- AdjustableMat H_;
-
- /** print H_ for debug.*/
- void printH();
- /** Current umber of entries in the jacobian.*/
- int curr_nnz_jac_;
-
- /** Store user passed linear objective.*/
- vector<double> obj_;
- /** constant term in objective function.*/
- double c_;
- };
-
-} // namespace Ipopt
-
-#endif
-