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
CouenneSparseVector & operator=(const CouenneSparseVector &rhs)
const std::set< std::pair< int, CouenneSparseVector * >, compare_pair_ind > & getCols() const
bool operator()(register CouenneScalar *const &a, register CouenneScalar *const &b)
CouenneScalar(int index, expression *elem)
CouenneSparseVector & operator*(const CouenneSparseVector &factor) const
matrix * vector
std::vector< expression * > varIndices_
if used in sdp cuts, contains indices of x_i used in X_ij = x_i * x_j
void fint fint fint real * a
void add_element(int row, int column, expression *elem)
Insertion into matrix.
std::set< CouenneScalar *, compare_scalars > elem_
void add_element(int index, expression *elem)
Insertion into vector.
double multiply_thres(const CouenneSparseVector &v2, double thres) const
stops multiplication if above threshold
CouenneExprMatrix * clone()
~CouenneSparseVector()
Destructor.
CouenneScalar(const CouenneScalar &rhs)
expression clone (points to another expression)
double operator*(const CouenneSparseVector &factor) const
vector * vector (dot product)
long unsigned int size()
return size of (square sub-) matrix
~CouenneExprMatrix()
Destructor.
void print() const
Pretty print.
std::set< std::pair< int, CouenneSparseVector * >, compare_pair_ind > row_
row major
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
expression * elem_
element
int index_
index of element in vector
bool operator<(const CouenneScalar &rhs) const
expression * getElem() const
CouenneExprMatrix & operator=(const CouenneExprMatrix &rhs)
Assignment operator.
bool operator<(const CouenneScalar &first, const CouenneScalar &second)
std::set< std::pair< int, CouenneSparseVector * >, compare_pair_ind > col_
col major
void print() const
Pretty print.