compbio
|
Iterator to browse matrices from a specified folder. More...
#include <MatrixMarketIterator.h>
Public Types | |
typedef Matrix< Scalar, Dynamic, 1 > | VectorType |
typedef SparseMatrix< Scalar, ColMajor > | MatrixType |
Public Member Functions | |
MatrixMarketIterator (const std::string &folder) | |
MatrixMarketIterator & | operator++ () |
operator bool () const | |
MatrixType & | matrix () |
Return the sparse matrix corresponding to the current file. | |
VectorType & | rhs () |
Return the right hand side corresponding to the current matrix. More... | |
VectorType & | refX () |
Return a reference solution If it is not provided and if the right hand side is not available then refX is randomly generated such that A*refX = b where A and b are the matrix and the rhs. More... | |
std::string & | matname () |
int | sym () |
bool | hasRhs () |
bool | hasrefX () |
bool | isFolderValid () |
Protected Member Functions | |
bool | Fileexists (std::string file) |
void | Getnextvalidmatrix () |
Protected Attributes | |
int | m_sym |
MatrixType | m_mat |
VectorType | m_rhs |
VectorType | m_refX |
std::string | m_matname |
bool | m_isvalid |
bool | m_matIsLoaded |
bool | m_hasRhs |
bool | m_hasrefX |
std::string | m_folder |
DIR * | m_folder_id |
struct dirent * | m_curs_id |
Iterator to browse matrices from a specified folder.
This is used to load all the matrices from a folder. The matrices should be in Matrix Market format It is assumed that the matrices are named as matname.mtx and matname_SPD.mtx if the matrix is Symmetric and positive definite (or Hermitian) The right hand side vectors are loaded as well, if they exist. They should be named as matname_b.mtx. Note that the right hand side for a SPD matrix is named as matname_SPD_b.mtx
Sometimes a reference solution is available. In this case, it should be named as matname_x.mtx
Sample code
Scalar | The scalar type |
|
inline |
Return a reference solution If it is not provided and if the right hand side is not available then refX is randomly generated such that A*refX = b where A and b are the matrix and the rhs.
Note that when a rhs is provided, refX is not available
|
inline |
Return the right hand side corresponding to the current matrix.
If the rhs file is not provided, a random rhs is generated