summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-cpp/eigen/files/eigen-3.2.7-pastix-5.2-backport.patch')
-rw-r--r--dev-cpp/eigen/files/eigen-3.2.7-pastix-5.2-backport.patch42
1 files changed, 42 insertions, 0 deletions
diff --git a/dev-cpp/eigen/files/eigen-3.2.7-pastix-5.2-backport.patch b/dev-cpp/eigen/files/eigen-3.2.7-pastix-5.2-backport.patch
new file mode 100644
index 000000000000..fafaf3a68629
--- /dev/null
+++ b/dev-cpp/eigen/files/eigen-3.2.7-pastix-5.2-backport.patch
@@ -0,0 +1,42 @@
+# HG changeset patch
+# User Gael Guennebaud <g.gael@free.fr>
+# Date 1393589499 -3600
+# Node ID b88efb384b160880131ad17e39bb690719112bfa
+# Parent 576120ad694efe29b70999576964d3816288fb4e
+Fix PaStiX support for Pastix 5.2
+
+diff --git a/Eigen/src/PaStiXSupport/PaStiXSupport.h b/Eigen/src/PaStiXSupport/PaStiXSupport.h
+--- a/Eigen/src/PaStiXSupport/PaStiXSupport.h
++++ b/Eigen/src/PaStiXSupport/PaStiXSupport.h
+@@ -12,6 +12,14 @@
+
+ namespace Eigen {
+
++#if defined(DCOMPLEX)
++ #define PASTIX_COMPLEX COMPLEX
++ #define PASTIX_DCOMPLEX DCOMPLEX
++#else
++ #define PASTIX_COMPLEX std::complex<float>
++ #define PASTIX_DCOMPLEX std::complex<double>
++#endif
++
+ /** \ingroup PaStiXSupport_Module
+ * \brief Interface to the PaStix solver
+ *
+@@ -74,14 +82,14 @@
+ {
+ if (n == 0) { ptr = NULL; idx = NULL; vals = NULL; }
+ if (nbrhs == 0) {x = NULL; nbrhs=1;}
+- c_pastix(pastix_data, pastix_comm, n, ptr, idx, reinterpret_cast<COMPLEX*>(vals), perm, invp, reinterpret_cast<COMPLEX*>(x), nbrhs, iparm, dparm);
++ c_pastix(pastix_data, pastix_comm, n, ptr, idx, reinterpret_cast<PASTIX_COMPLEX*>(vals), perm, invp, reinterpret_cast<PASTIX_COMPLEX*>(x), nbrhs, iparm, dparm);
+ }
+
+ void eigen_pastix(pastix_data_t **pastix_data, int pastix_comm, int n, int *ptr, int *idx, std::complex<double> *vals, int *perm, int * invp, std::complex<double> *x, int nbrhs, int *iparm, double *dparm)
+ {
+ if (n == 0) { ptr = NULL; idx = NULL; vals = NULL; }
+ if (nbrhs == 0) {x = NULL; nbrhs=1;}
+- z_pastix(pastix_data, pastix_comm, n, ptr, idx, reinterpret_cast<DCOMPLEX*>(vals), perm, invp, reinterpret_cast<DCOMPLEX*>(x), nbrhs, iparm, dparm);
++ z_pastix(pastix_data, pastix_comm, n, ptr, idx, reinterpret_cast<PASTIX_DCOMPLEX*>(vals), perm, invp, reinterpret_cast<PASTIX_DCOMPLEX*>(x), nbrhs, iparm, dparm);
+ }
+
+ // Convert the matrix to Fortran-style Numbering