Date: Wed, 5 Oct 2016 04:28:06 +0000 (UTC) From: Jan Beich <jbeich@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r423317 - in head/math/eigen3: . files Message-ID: <201610050428.u954S6e6024816@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201610050428.u954S6e6024816>