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;}
std::vector< expression * > varIndices_
if used in sdp cuts, contains indices of x_i used in X_ij = x_i * x_j
CouenneExprMatrix & operator=(const CouenneExprMatrix &rhs)
void add_element(int row, int column, expression *elem)
CouenneSparseVector & operator*(const CouenneSparseVector &factor) const
matrix * vector
std::set< std::pair< int, CouenneSparseVector * >, compare_pair_ind > col_
col major
CouenneExprMatrix(const CouenneExprMatrix &rhs)
const std::set< std::pair< int, CouenneSparseVector * >, compare_pair_ind > & getCols() const
std::set< std::pair< int, CouenneSparseVector * >, compare_pair_ind > row_
row major
std::vector< expression * > & varIndices()
const std::set< std::pair< int, CouenneSparseVector * >, compare_pair_ind > & getRows() const
CouenneExprMatrix * clone()
CouenneScalar(const CouenneScalar &rhs)
CouenneScalar(int index, expression *elem)
expression * getElem() const
friend bool operator<(const CouenneScalar &first, const CouenneScalar &second)
int index_
index of element in vector
CouenneScalar & operator=(const CouenneScalar &rhs)
expression * elem_
element
const std::set< CouenneScalar *, compare_scalars > & getElements()
returns elements of vector as (ordered) set
CouenneSparseVector(const CouenneSparseVector &rhs)
void add_element(int index, expression *elem)
CouenneSparseVector * clone()
double multiply_thres(const CouenneSparseVector &v2, double thres) const
stops multiplication if above threshold
double operator*(const CouenneSparseVector &factor) const
vector * vector (dot product)
CouenneSparseVector & operator=(const CouenneSparseVector &rhs)
std::set< CouenneScalar *, compare_scalars > elem_
expression clone (points to another expression)
general include file for different compilers
bool operator<(const CouenneScalar &first, const CouenneScalar &second)
bool operator()(register const std::pair< int, CouenneSparseVector * > &a, register const std::pair< int, CouenneSparseVector * > &b) const
bool operator()(register CouenneScalar *const &a, register CouenneScalar *const &b) const