Add simple API to set Pastix parameters

This commit is contained in:
Desire NUENTSA 2012-03-22 15:54:52 +01:00
parent f6cd3389a2
commit 0d52b965c8
2 changed files with 58 additions and 1 deletions

38
Eigen/PaStiXSupport Normal file
View File

@ -0,0 +1,38 @@
#ifndef EIGEN_PASTIXSUPPORT_MODULE_H
#define EIGEN_PASTIXSUPPORT_MODULE_H
#include "SparseCore"
#include "src/Core/util/DisableStupidWarnings.h"
#include <complex.h>
extern "C" {
#include <pastix_nompi.h>
#include <pastix.h>
}
#ifdef complex
#undef complex
#endif
namespace Eigen {
/** \ingroup Support_modules
* \defgroup PaStiXSupport_Module PaStiXSupport module
*
* \code
* #include <Eigen/PaStiXSupport>
* \endcode
*/
#include "src/misc/Solve.h"
#include "src/misc/SparseSolve.h"
#include "src/PaStiXSupport/PaStiXSupport.h"
} // namespace Eigen
#include "src/Core/util/ReenableStupidWarnings.h"
#endif // EIGEN_PASTIXSUPPORT_MODULE_H

View File

@ -246,6 +246,15 @@ class PastixBase
return m_iparm;
}
/** Return a reference to a particular index parameter of the IPARM vector
* \sa iparm()
*/
int& iparm(int idxparam)
{
return m_iparm(idxparam);
}
/** Returns a reference to the double vector DPARM of PaStiX parameters
* The statistics related to the different phases of factorization and solve are saved here as well
* \sa analyzePattern() factorize()
@ -255,6 +264,16 @@ class PastixBase
return m_dparm;
}
/** Return a reference to a particular index parameter of the DPARM vector
* \sa dparm()
*/
double& dparm(int idxparam)
{
return m_dparm(idxparam);
}
inline Index cols() const { return m_size; }
inline Index rows() const { return m_size; }
@ -304,7 +323,7 @@ class PastixBase
int m_analysisIsOk;
int m_factorizationIsOk;
bool m_isInitialized;
ComputationInfo m_info;
mutable ComputationInfo m_info;
mutable pastix_data_t *m_pastixdata; // Data structure for pastix
mutable SparseMatrix<Scalar, ColMajor> m_mat_null; // An input null matrix
mutable Matrix<Scalar, Dynamic,1> m_vec_null; // An input null vector