00001 /* $Id: CouennePSDcon.hpp 933 2012-12-29 13:23:40Z pbelotti $ 00002 * 00003 * Name: CouennePSDcon.hpp 00004 * Author: Pietro Belotti 00005 * Purpose: define the class of positive semidefinite constraints 00006 * 00007 * This file is licensed under the Eclipse Public License (EPL) 00008 */ 00009 00010 #ifndef CouennePSDcon_hpp 00011 #define CouennePSDcon_hpp 00012 00013 #include "CouenneProblemElem.hpp" 00014 #include <iostream> 00015 00016 namespace Couenne { 00017 00018 class CouenneExprMatrix; 00019 class CouenneProblem; 00020 class Domain; 00021 00023 00024 class CouennePSDcon: public CouenneConstraint { 00025 00026 protected: 00027 00028 CouenneExprMatrix *X_; 00029 00030 public: 00031 00033 CouennePSDcon (CouenneExprMatrix *X): 00034 CouenneConstraint (), 00035 X_ (X) {} 00036 00038 ~CouennePSDcon (); 00039 00041 CouennePSDcon (const CouennePSDcon &c, Domain *d = NULL); 00042 00044 CouennePSDcon &operator= (const CouennePSDcon &c); 00045 00047 inline CouenneConstraint *clone (Domain *d = NULL) const 00048 {return new CouennePSDcon (*this, d);} 00049 00051 CouenneExprMatrix *getX () const {return X_;} 00052 00054 exprAux *standardize (CouenneProblem *); 00055 00057 void print (std::ostream & = std::cout); 00058 }; 00059 } 00060 00061 #endif