aboutsummaryrefslogtreecommitdiff
path: root/math/eigen3
diff options
context:
space:
mode:
authorJan Beich <jbeich@FreeBSD.org>2016-10-05 04:28:06 +0000
committerJan Beich <jbeich@FreeBSD.org>2016-10-05 04:28:06 +0000
commit3a043572add119316860c067ac2fe075ffd6f8dd (patch)
tree3400f14322bf24c71e85550099c0e7015601b7c3 /math/eigen3
parentd49155975b4d59fb9ea140a5ce7ef05681666ee0 (diff)
downloadports-3a043572add119316860c067ac2fe075ffd6f8dd.tar.gz
ports-3a043572add119316860c067ac2fe075ffd6f8dd.zip
math/eigen3: unbreak consumers on 9.x after r421231
In file included from /usr/local/include/eigen3/unsupported/Eigen/MatrixFunctions:58, from modules/contrib/src/rgbdodometry.cpp:65: /usr/local/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h: In member function 'void Eigen::MatrixExponential<MatrixType>::computeUV(float)': /usr/local/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h:296: error: call of overloaded 'pow(int, int&)' is ambiguous /usr/include/math.h:210: note: candidates are: double pow(double, double) /usr/include/c++/4.2/cmath:357: note: float std::pow(float, float) /usr/include/c++/4.2/cmath:361: note: long double std::pow(long double, long double) /usr/include/c++/4.2/cmath:365: note: double std::pow(double, int) /usr/include/c++/4.2/cmath:369: note: float std::pow(float, int) /usr/include/c++/4.2/cmath:373: note: long double std::pow(long double, int) Reported by: pkg-fallout
Notes
Notes: svn path=/head/; revision=423317
Diffstat (limited to 'math/eigen3')
-rw-r--r--math/eigen3/Makefile1
-rw-r--r--math/eigen3/files/patch-unsupported_Eigen_src_MatrixFunctions_MatrixExponential.h63
2 files changed, 64 insertions, 0 deletions
diff --git a/math/eigen3/Makefile b/math/eigen3/Makefile
index 02bba79daa12..e37f325eb3de 100644
--- a/math/eigen3/Makefile
+++ b/math/eigen3/Makefile
@@ -2,6 +2,7 @@
PORTNAME= eigen
PORTVERSION= 3.2.9
+PORTREVISION= 1
CATEGORIES= math
MASTER_SITES= https://bitbucket.org/${PORTNAME}/${PORTNAME}/get/
DISTNAME= ${PORTVERSION}
diff --git a/math/eigen3/files/patch-unsupported_Eigen_src_MatrixFunctions_MatrixExponential.h b/math/eigen3/files/patch-unsupported_Eigen_src_MatrixFunctions_MatrixExponential.h
new file mode 100644
index 000000000000..3df78258b4fd
--- /dev/null
+++ b/math/eigen3/files/patch-unsupported_Eigen_src_MatrixFunctions_MatrixExponential.h
@@ -0,0 +1,63 @@
+Back out 8125108ba3e8 to unbreak consumers on libstdc++ 4.2
+
+ In file included from /usr/local/include/eigen3/unsupported/Eigen/MatrixFunctions:58,
+ from modules/contrib/src/rgbdodometry.cpp:65:
+ /usr/local/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h: In member function 'void Eigen::MatrixExponential<MatrixType>::computeUV(float)':
+ /usr/local/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h:296: error: call of overloaded 'pow(int, int&)' is ambiguous
+ /usr/include/math.h:210: note: candidates are: double pow(double, double)
+ /usr/include/c++/4.2/cmath:357: note: float std::pow(float, float)
+ /usr/include/c++/4.2/cmath:361: note: long double std::pow(long double, long double)
+ /usr/include/c++/4.2/cmath:365: note: double std::pow(double, int)
+ /usr/include/c++/4.2/cmath:369: note: float std::pow(float, int)
+ /usr/include/c++/4.2/cmath:373: note: long double std::pow(long double, int)
+
+--- unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h.orig 2016-07-18 14:28:24 UTC
++++ unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h
+@@ -293,7 +293,11 @@
+ const float maxnorm = 3.925724783138660f;
+ frexp(m_l1norm / maxnorm, &m_squarings);
+ if (m_squarings < 0) m_squarings = 0;
++#if !defined(__GLIBCXX__) || __GLIBCXX__ > 20070831
+ MatrixType A = m_M / Scalar(pow(2, m_squarings));
++#else
++ MatrixType A = m_M / pow(Scalar(2), m_squarings);
++#endif
+ pade7(A);
+ }
+ }
+@@ -315,7 +315,11 @@
+ const double maxnorm = 5.371920351148152;
+ frexp(m_l1norm / maxnorm, &m_squarings);
+ if (m_squarings < 0) m_squarings = 0;
++#if !defined(__GLIBCXX__) || __GLIBCXX__ > 20070831
+ MatrixType A = m_M / Scalar(pow(2, m_squarings));
++#else
++ MatrixType A = m_M / pow(Scalar(2), m_squarings);
++#endif
+ pade13(A);
+ }
+ }
+@@ -340,7 +340,11 @@
+ const long double maxnorm = 4.0246098906697353063L;
+ frexp(m_l1norm / maxnorm, &m_squarings);
+ if (m_squarings < 0) m_squarings = 0;
++#if !defined(__GLIBCXX__) || __GLIBCXX__ > 20070831
+ MatrixType A = m_M / Scalar(pow(2, m_squarings));
++#else
++ MatrixType A = m_M / pow(Scalar(2), m_squarings);
++#endif
+ pade13(A);
+ }
+ #elif LDBL_MANT_DIG <= 106 // double-double
+@@ -376,7 +376,11 @@
+ const long double maxnorm = 2.884233277829519311757165057717815L;
+ frexp(m_l1norm / maxnorm, &m_squarings);
+ if (m_squarings < 0) m_squarings = 0;
++#if !defined(__GLIBCXX__) || __GLIBCXX__ > 20070831
+ MatrixType A = m_M / Scalar(pow(2, m_squarings));
++#else
++ MatrixType A = m_M / pow(Scalar(2), m_squarings);
++#endif
+ pade17(A);
+ }
+ #else