svn commit: r423317 - in head/math/eigen3: . files
Jan Beich
jbeich at FreeBSD.org
Wed Oct 5 04:28:07 UTC 2016
Author: jbeich
Date: Wed Oct 5 04:28:06 2016
New Revision: 423317
URL: https://svnweb.freebsd.org/changeset/ports/423317
Log:
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
Added:
head/math/eigen3/files/
head/math/eigen3/files/patch-unsupported_Eigen_src_MatrixFunctions_MatrixExponential.h (contents, props changed)
Modified:
head/math/eigen3/Makefile (contents, props changed)
Modified: head/math/eigen3/Makefile
==============================================================================
--- head/math/eigen3/Makefile Wed Oct 5 04:27:47 2016 (r423316)
+++ head/math/eigen3/Makefile Wed Oct 5 04:28:06 2016 (r423317)
@@ -2,6 +2,7 @@
PORTNAME= eigen
PORTVERSION= 3.2.9
+PORTREVISION= 1
CATEGORIES= math
MASTER_SITES= https://bitbucket.org/${PORTNAME}/${PORTNAME}/get/
DISTNAME= ${PORTVERSION}
Added: head/math/eigen3/files/patch-unsupported_Eigen_src_MatrixFunctions_MatrixExponential.h
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/math/eigen3/files/patch-unsupported_Eigen_src_MatrixFunctions_MatrixExponential.h Wed Oct 5 04:28:06 2016 (r423317)
@@ -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
More information about the svn-ports-head
mailing list