30 #ifndef __MatrixEigenSparse_H
31 #define __MatrixEigenSparse_H 1
35 #include <boost/version.hpp>
36 #if (BOOST_VERSION >= 103400)
37 #include <boost/none.hpp>
39 #include <boost/none_t.hpp>
43 #include <Eigen/SparseCore>
51 template<
typename T,
typename Storage>
class VectorUblas;
83 typedef typename type_traits<value_type>::real_type real_type;
84 typedef Eigen::SparseMatrix<T> matrix_type;
86 typedef typename super::graph_ptrtype graph_ptrtype;
87 typedef Eigen::Triplet<T> triplet;
150 return M_mat.rows()*M_mat.cols();
176 return M_is_initialized;
199 matrix_type
const&
mat ()
const
247 graph_ptrtype
const&
graph );
284 const value_type& value )
286 M_tripletList.push_back(triplet(i, j, value) );
299 const value_type& value )
301 FEELPP_ASSERT( 0 ).error(
"nor supported" );
311 void printMatlab(
const std::string name=
"NULL" )
const;
346 void addMatrix(
const ublas::matrix<T, ublas::row_major>&,
347 const std::vector<size_type>&,
348 const std::vector<size_type>& ) {}
354 void addMatrix(
const boost::numeric::ublas::matrix<T, ublas::row_major>&,
const std::vector<size_type>& ) {}
370 int* cols,
int ncols,
373 void scale(
const T a );
392 return real_type( 0 );
407 return real_type( 0 );
423 bool M_is_initialized;
424 mutable bool M_is_closed;
429 mutable matrix_type M_mat;
430 mutable std::vector<triplet> M_tripletList;
size_type rowStart() const
Definition: matrixeigensparse.hpp:157
real_type linftyNorm() const
Definition: matrixeigensparse.hpp:405
void zeroRows(std::vector< int > const &rows, Vector< value_type > const &values, Vector< value_type > &rhs, Context const &on_context)
Definition: matrixeigensparse.cpp:216
Definition: solverlinear.hpp:33
void add(const size_type i, const size_type j, const value_type &value)
Definition: matrixeigensparse.hpp:282
void addMatrix(const ublas::matrix< T, ublas::row_major > &, const std::vector< size_type > &, const std::vector< size_type > &)
Definition: matrixeigensparse.hpp:346
boost::shared_ptr< MatrixSparse< T > > transpose() const
Definition: matrixsparse.hpp:543
real_type l1Norm() const
Definition: matrixeigensparse.hpp:390
interface to eigen sparse matrix
Definition: matrixeigensparse.hpp:72
void addMatrix(const boost::numeric::ublas::matrix< T, ublas::row_major > &, const std::vector< size_type > &)
Definition: matrixeigensparse.hpp:354
void close() const
Definition: matrixeigensparse.cpp:135
size_type nnz() const
Definition: matrixeigensparse.hpp:148
size_type rowStop() const
Definition: matrixeigensparse.hpp:166
size_type size1() const
Definition: matrixeigensparse.hpp:131
void printMatlab(const std::string name="NULL") const
Definition: matrixeigensparse.cpp:260
graph_ptrtype const & graph() const
Definition: matrixsparse.hpp:262
value_type operator()(size_type i, size_type j) const
Definition: matrixeigensparse.hpp:115
void zero()
Definition: matrixeigensparse.hpp:265
void diagonal(Vector< T > &dest) const
Definition: matrixeigensparse.cpp:157
size_type size2() const
Definition: matrixeigensparse.hpp:140
void clear()
Definition: matrixeigensparse.hpp:255
size_t size_type
Indices (starting from 0)
Definition: feelcore/feel.hpp:319
Definition: matrixsparse.hpp:76
void updateBlockMat(boost::shared_ptr< MatrixSparse< value_type > > m, std::vector< size_type > start_i, std::vector< size_type > start_j)
Definition: matrixeigensparse.cpp:207
matrix_type & mat()
Definition: matrixeigensparse.hpp:207
matrix_type const & mat() const
Definition: matrixeigensparse.hpp:199
real_type energy(Vector< value_type > const &__v, Vector< value_type > const &__u, bool transpose=false) const
Definition: matrixeigensparse.cpp:166
Context class.
Definition: feelcore/context.hpp:63
void set(const size_type i, const size_type j, const value_type &value)
Definition: matrixeigensparse.hpp:297
bool closed() const
Definition: matrixeigensparse.hpp:190
void zero(size_type start1, size_type stop1, size_type start2, size_type stop2)
Definition: matrixeigensparse.hpp:270
Graph representation of the Compressed Sparse Row format.
Definition: graphcsr.hpp:57
bool isInitialized() const
Definition: matrixeigensparse.hpp:174