aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen
diff options
context:
space:
mode:
authorGravatar Desire NUENTSA <desire.nuentsa_wakam@inria.fr>2012-03-22 15:54:52 +0100
committerGravatar Desire NUENTSA <desire.nuentsa_wakam@inria.fr>2012-03-22 15:54:52 +0100
commit0d52b965c88e3f19c4ab55c43663175bd536e3f2 (patch)
tree0849adb3abe5788029dcee95cde57d56c3353f87 /Eigen
parentf6cd3389a2d22fda112890e479a4bd09c82fc6bb (diff)
Add simple API to set Pastix parameters
Diffstat (limited to 'Eigen')
-rw-r--r--Eigen/PaStiXSupport38
-rw-r--r--Eigen/src/PaStiXSupport/PaStiXSupport.h21
2 files changed, 58 insertions, 1 deletions
diff --git a/Eigen/PaStiXSupport b/Eigen/PaStiXSupport
new file mode 100644
index 000000000..4ded8e5d0
--- /dev/null
+++ b/Eigen/PaStiXSupport
@@ -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
diff --git a/Eigen/src/PaStiXSupport/PaStiXSupport.h b/Eigen/src/PaStiXSupport/PaStiXSupport.h
index d715f1b79..57ce0f106 100644
--- a/Eigen/src/PaStiXSupport/PaStiXSupport.h
+++ b/Eigen/src/PaStiXSupport/PaStiXSupport.h
@@ -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