From e23e5c4ee95d683e5b701037ade19ee97076793b Mon Sep 17 00:00:00 2001 From: Tammo Jan Dijkema <dijkema@astron.nl> Date: Wed, 13 Jan 2016 15:47:22 +0000 Subject: [PATCH] Task #8973: fix compile errors with c++11 --- .../BBSKernel/include/BBSKernel/EstimateUtil.h | 4 +++- CEP/DP3/AOFlagger/src/msio/image2d.cpp | 5 +++-- .../src/strategy/algorithms/highpassfilter.cpp | 7 ++++--- CEP/PyBDSM/src/c++/MGFunction1.cc | 10 +++++----- CEP/PyBDSM/src/c++/MGFunction2.cc | 4 ++-- CEP/PyBDSM/src/c++/stat.cc | 4 ++-- 6 files changed, 19 insertions(+), 15 deletions(-) diff --git a/CEP/Calibration/BBSKernel/include/BBSKernel/EstimateUtil.h b/CEP/Calibration/BBSKernel/include/BBSKernel/EstimateUtil.h index 3b7860f8131..f1b1e0bf33a 100644 --- a/CEP/Calibration/BBSKernel/include/BBSKernel/EstimateUtil.h +++ b/CEP/Calibration/BBSKernel/include/BBSKernel/EstimateUtil.h @@ -35,6 +35,8 @@ #include <Common/lofar_vector.h> #include <Common/Timer.h> +#include <cmath> + #include <scimath/Fitting/LSQFit.h> //# For the definition of SolverOptions... @@ -467,7 +469,7 @@ T storeCoeff(const Location &cell, const ParmGroup &solvables, T first) template <typename T> inline bool isfinite(T x) { - return !isnan(x) && !isinf(x); + return !std::isnan(x) && !std::isinf(x); } // @} diff --git a/CEP/DP3/AOFlagger/src/msio/image2d.cpp b/CEP/DP3/AOFlagger/src/msio/image2d.cpp index 45078dafb74..b7f8c8ca296 100644 --- a/CEP/DP3/AOFlagger/src/msio/image2d.cpp +++ b/CEP/DP3/AOFlagger/src/msio/image2d.cpp @@ -22,6 +22,7 @@ #include <AOFlagger/msio/fitsfile.h> #include <algorithm> +#include <cmath> #include <limits> #include <iostream> @@ -182,7 +183,7 @@ num_t Image2D::GetMaximumFinite() const { for(size_t y=0;y<_height;++y) { for(size_t x=0;x<_width;++x) { - if(isfinite(_dataPtr[y][x]) && _dataPtr[y][x] > max) { + if (std::isfinite(_dataPtr[y][x]) && _dataPtr[y][x] > max) { max = _dataPtr[y][x]; } } @@ -195,7 +196,7 @@ num_t Image2D::GetMinimumFinite() const { for(size_t y=0;y<_height;++y) { for(size_t x=0;x<_width;++x) { - if(isfinite(_dataPtr[y][x]) && _dataPtr[y][x] < min) { + if(std::isfinite(_dataPtr[y][x]) && _dataPtr[y][x] < min) { min = _dataPtr[y][x]; } } diff --git a/CEP/DP3/AOFlagger/src/strategy/algorithms/highpassfilter.cpp b/CEP/DP3/AOFlagger/src/strategy/algorithms/highpassfilter.cpp index 301d8a76945..02a09ac9367 100644 --- a/CEP/DP3/AOFlagger/src/strategy/algorithms/highpassfilter.cpp +++ b/CEP/DP3/AOFlagger/src/strategy/algorithms/highpassfilter.cpp @@ -3,6 +3,7 @@ #include <AOFlagger/strategy/algorithms/highpassfilter.h> #include <AOFlagger/util/rng.h> +#include <cmath> HighPassFilter::~HighPassFilter() { @@ -162,7 +163,7 @@ void HighPassFilter::setFlaggedValuesToZeroAndMakeWeights(const Image2DCPtr &inp { for(size_t x=0;x<width;++x) { - if(inputMask->Value(x, y) || !isfinite(inputImage->Value(x, y))) + if(inputMask->Value(x, y) || !std::isfinite(inputImage->Value(x, y))) { outputImage->SetValue(x, y, 0.0); weightsOutput->SetValue(x, y, 0.0); @@ -193,8 +194,8 @@ void HighPassFilter::setFlaggedValuesToZeroAndMakeWeightsSSE(const Image2DCPtr & // Assign each integer to one bool in the mask // Convert false to 0xFFFFFFFF and true to 0 __m128 conditionMask = _mm_castsi128_ps( - _mm_cmpeq_epi32(_mm_set_epi32(rowPtr[3] || !isfinite(inputPtr[3]), rowPtr[2] || !isfinite(inputPtr[2]), - rowPtr[1] || !isfinite(inputPtr[1]), rowPtr[0] || !isfinite(inputPtr[0])), + _mm_cmpeq_epi32(_mm_set_epi32(rowPtr[3] || !std::isfinite(inputPtr[3]), rowPtr[2] || !std::isfinite(inputPtr[2]), + rowPtr[1] || !std::isfinite(inputPtr[1]), rowPtr[0] || !std::isfinite(inputPtr[0])), zero4i)); _mm_store_ps(weightsPtr, _mm_or_ps( diff --git a/CEP/PyBDSM/src/c++/MGFunction1.cc b/CEP/PyBDSM/src/c++/MGFunction1.cc index bdfab91b1e8..b37c5a41018 100644 --- a/CEP/PyBDSM/src/c++/MGFunction1.cc +++ b/CEP/PyBDSM/src/c++/MGFunction1.cc @@ -106,7 +106,7 @@ void MGFunction::py_remove_gaussian(int idx) // // Get gaussian parameters by index // -tuple MGFunction::py_get_gaussian(int idx) +boost::python::tuple MGFunction::py_get_gaussian(int idx) { if (idx < 0) idx += m_gaul.size(); @@ -116,7 +116,7 @@ tuple MGFunction::py_get_gaussian(int idx) vector<double> &p = m_parameters[idx]; - return make_tuple(p[0], p[1], p[2], p[3], p[4], p[5]); + return boost::python::make_tuple(p[0], p[1], p[2], p[3], p[4], p[5]); } // @@ -171,7 +171,7 @@ list MGFunction::py_get_errors() for (unsigned i = 0; i < m_gaul.size(); ++i) { vector<double> &e = m_errors[i]; - res.append(make_tuple(e[0], e[1], e[2], e[3], e[4], e[5])); + res.append(boost::python::make_tuple(e[0], e[1], e[2], e[3], e[4], e[5])); } return res; @@ -180,7 +180,7 @@ list MGFunction::py_get_errors() // // Find highest peak in the data-MGFunction residual // -tuple MGFunction::py_find_peak() +boost::python::tuple MGFunction::py_find_peak() { vector<double> buf(data_size()); fcn_diff(&buf.front()); @@ -197,7 +197,7 @@ tuple MGFunction::py_find_peak() int x1 = mm_data[pidx].x1; int x2 = mm_data[pidx].x2; - return make_tuple(peak, make_tuple(x1, x2)); + return boost::python::make_tuple(peak, make_tuple(x1, x2)); } diff --git a/CEP/PyBDSM/src/c++/MGFunction2.cc b/CEP/PyBDSM/src/c++/MGFunction2.cc index aff1746c201..4417d0a0bb5 100644 --- a/CEP/PyBDSM/src/c++/MGFunction2.cc +++ b/CEP/PyBDSM/src/c++/MGFunction2.cc @@ -35,13 +35,13 @@ and parameters under exponents (NL_ij) are non-linear. #include "boost_python.h" #include "MGFunction.h" -#if defined(__GLIBCXX__) +#if defined(__GLIBCXX__) and __cplusplus <= 199711L #include <ext/algorithm> #endif #include <num_util/num_util.h> #include <cfloat> -#if not(defined(_LIBCPP_VERSION)) +#if not(defined(_LIBCPP_VERSION)) and __cplusplus <= 199711L using namespace __gnu_cxx; #endif using namespace std; diff --git a/CEP/PyBDSM/src/c++/stat.cc b/CEP/PyBDSM/src/c++/stat.cc index 15ef128032e..1220a250ed9 100644 --- a/CEP/PyBDSM/src/c++/stat.cc +++ b/CEP/PyBDSM/src/c++/stat.cc @@ -229,7 +229,7 @@ static object _bstat(numeric::array arr, object mask, double kappa) /* py_assert(res.second == dev.back(), PyExc_RuntimeError, "clipped rRMS calculation does not converge"); */ - return make_tuple(mean[1], dev[1], mean.back(), dev.back(), cnt); + return boost::python::make_tuple(mean[1], dev[1], mean.back(), dev.back(), cnt); } object bstat(numeric::array arr, object mask, double kappa) @@ -264,5 +264,5 @@ object bstat(numeric::array arr, object mask, double kappa) fail: py_assert(false, PyExc_RuntimeError, "bstat dispatch failed: not implemented for this datatype/layout"); - return tuple(); // this is fake return-statement to silence the compiler + return boost::python::tuple(); // this is fake return-statement to silence the compiler } -- GitLab