From a0d9443af147e949c1e6a01ac24749d12593ec5b Mon Sep 17 00:00:00 2001 From: Harpreet Date: Sat, 3 Sep 2016 00:36:51 +0530 Subject: cbcintlinprog added --- .../thirdparty/linux/include/coin/BonQuadRow.hpp | 122 --------------------- 1 file changed, 122 deletions(-) delete mode 100644 newstructure/thirdparty/linux/include/coin/BonQuadRow.hpp (limited to 'newstructure/thirdparty/linux/include/coin/BonQuadRow.hpp') diff --git a/newstructure/thirdparty/linux/include/coin/BonQuadRow.hpp b/newstructure/thirdparty/linux/include/coin/BonQuadRow.hpp deleted file mode 100644 index 2508abd..0000000 --- a/newstructure/thirdparty/linux/include/coin/BonQuadRow.hpp +++ /dev/null @@ -1,122 +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 BonQuadRow_H -#define BonQuadRow_H - -#include "CoinPackedVector.hpp" -#include "BonTMatrix.hpp" -#include "BonQuadCut.hpp" - -namespace Bonmin{ - - /** Store column and row of the entry.*/ - typedef std::pair matEntry; - /** Store the number of times entry is used and its index in the matrix.*/ - typedef std::pair matIdx; -#if HAS_HASH_MAP - typedef std::has_map > AdjustableMat; -#else - typedef std::map AdjustableMat; -#endif - -/** Stores a quadratic row of the form l < c + ax + x^T Q x < u. - Does computation usefull for nlp-solver. - It can only be initialized from a QuadCut.*/ -class QuadRow { - public: - /** Default constructor.*/ - QuadRow(); - - /** Copy constructor.*/ - QuadRow(const QuadRow & other); - - /** Assignment operator.*/ - QuadRow& operator=(const QuadRow& rhs); - - /** Constructor from a quadratic cut.*/ - QuadRow(const QuadCut &cut); - - /** Assignment form a quadrattic &cut.*/ - QuadRow& operator=(const QuadCut & rhs); - - /** Constructor from a linear cut.*/ - QuadRow(const OsiRowCut &cut); - - /** Assignment form a linear &cut.*/ - QuadRow& operator=(const OsiRowCut & rhs); - - /** Evaluate quadratic form.*/ - double eval_f(const double *x, bool new_x); - - /** Get number of non-zeroes in the gradiant.*/ - int nnz_grad(); - /** Get structure of gradiant */ - void gradiant_struct(const int nnz, int * indices, bool offset); - /** Evaluate gradiant of quadratic form.*/ - void eval_grad(const int nnz, const double * x, bool new_x, double * values); - - /** number of non-zeroes in hessian. */ - int nnz_hessian(){ - return Q_.nnz_;} - - /** Says if the constraint is linear.*/ - bool isLinear(){ - return Q_.nnz_ == 0;} - - /** Return hessian value (i.e. Q_).*/ - void eval_hessian(double lambda, double * values); - - /** Add row to a bigger hessian.*/ - void add_to_hessian(AdjustableMat &H, bool offset); - - /** Remove row from a bigger hessian.*/ - void remove_from_hessian(AdjustableMat &H); -/** Print quadratic constraint.*/ -void print(); - - private: - /** Initialize once quadratic form is know.*/ - void initialize(); - - /** Does internal work to evaluate gradiant of this in x.*/ - void internal_eval_grad(const double *x); - - /** lower bound.*/ - double lb_; - /** upper bound.*/ - double ub_; - /** Constant term.*/ - double c_; - /** linear term in sparse storage.*/ - CoinPackedVector a_; - /** Quadratic term.*/ - TMat Q_; - - -#if HAS_HASH_MAP - typedef std::has_map, std::hash > gStore; -#else - typedef std::map > gStore; -#endif - - gStore g_; - /** To have fast access to gradiant entries for a_.*/ - std::vector a_grad_idx_; - /** To have fast access to gradient entries for rows Q_*/ - std::vector Q_row_grad_idx_; - /** To have fast access to gradient entries for cols Q_*/ - std::vector Q_col_grad_idx_; - /** To have fast access to entries in full hessian of Q_*/ - std::vector Q_hessian_idx_; - /** Flag indicating if gradiant has been evaluated.*/ - bool grad_evaled_; -}; -}//End Bonmin namespace -#endif -- cgit