10 #ifndef CouenneMatrix_hpp
11 #define CouenneMatrix_hpp
21 class CouenneExprMatrix;
73 {
return a -> getIndex () < b -> getIndex ();}
78 std::set <CouenneScalar *, compare_scalars>
elem_;
109 inline bool operator() (
register const std::pair <int, CouenneSparseVector *> &a,
110 register const std::pair <int, CouenneSparseVector *> &b)
const
111 {
return a. first < b. first;}
138 long unsigned int size ();
const std::set< CouenneScalar *, compare_scalars > & getElements()
returns elements of vector as (ordered) set
const std::set< std::pair< int, CouenneSparseVector * >, compare_pair_ind > & getCols() const
CouenneSparseVector & operator=(const CouenneSparseVector &rhs)
bool operator()(register CouenneScalar *const &a, register CouenneScalar *const &b)
CouenneScalar(int index, expression *elem)
void add_element(int index, expression *elem)
std::vector< expression * > varIndices_
if used in sdp cuts, contains indices of x_i used in X_ij = x_i * x_j
std::set< CouenneScalar *, compare_scalars > elem_
CouenneExprMatrix * clone()
CouenneSparseVector & operator*(const CouenneSparseVector &factor) const
matrix * vector
double operator*(const CouenneSparseVector &factor) const
vector * vector (dot product)
CouenneScalar(const CouenneScalar &rhs)
expression clone (points to another expression)
std::set< std::pair< int, CouenneSparseVector * >, compare_pair_ind > row_
row major
CouenneExprMatrix & operator=(const CouenneExprMatrix &rhs)
std::vector< expression * > & varIndices()
CouenneScalar & operator=(const CouenneScalar &rhs)
bool operator()(register const std::pair< int, CouenneSparseVector * > &a, register const std::pair< int, CouenneSparseVector * > &b) const
CouenneSparseVector * clone()
const std::set< std::pair< int, CouenneSparseVector * >, compare_pair_ind > & getRows() const
void add_element(int row, int column, expression *elem)
expression * elem_
element
int index_
index of element in vector
bool operator<(const CouenneScalar &rhs) const
expression * getElem() const
bool operator<(const CouenneScalar &first, const CouenneScalar &second)
double multiply_thres(const CouenneSparseVector &v2, double thres) const
stops multiplication if above threshold
std::set< std::pair< int, CouenneSparseVector * >, compare_pair_ind > col_
col major