From 8f44eb9b4b66e32f66e7a3bca57fcd88816fabe5 Mon Sep 17 00:00:00 2001 From: Martin Reinecke <martin@mpa-garching.mpg.de> Date: Mon, 3 Jun 2019 13:38:42 +0200 Subject: [PATCH] bug fix --- nifty_gridder.cc | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/nifty_gridder.cc b/nifty_gridder.cc index f97e64f..48c51b6 100644 --- a/nifty_gridder.cc +++ b/nifty_gridder.cc @@ -711,7 +711,7 @@ template<typename T> pyarr_c<uint32_t> getIndices(const Baselines<T> &baselines, vector<uint32_t> acc(nbu*nbv+1, 0); vector<uint32_t> tmp(nrow*(chend-chbegin)); for (size_t irow=0, idx=0; irow<nrow; ++irow) - for (int ichan=chbegin; ichan<chend; ++ichan, ++idx) + for (int ichan=chbegin; ichan<chend; ++ichan) if (!flags[irow*nchan+ichan]) { auto uvw = baselines.effectiveCoord(irow, ichan); @@ -723,7 +723,7 @@ template<typename T> pyarr_c<uint32_t> getIndices(const Baselines<T> &baselines, iu0 = (iu0+nsafe)>>logsquare; iv0 = (iv0+nsafe)>>logsquare; ++acc[nbv*iu0 + iv0 + 1]; - tmp[idx] = nbv*iu0 + iv0; + tmp[idx++] = nbv*iu0 + iv0; } } @@ -732,9 +732,13 @@ template<typename T> pyarr_c<uint32_t> getIndices(const Baselines<T> &baselines, auto res = makearray<uint32_t>({acc.back()}); auto iout = res.mutable_data(); for (size_t irow=0, idx=0; irow<nrow; ++irow) - for (int ichan=chbegin; ichan<chend; ++ichan, ++idx) + for (int ichan=chbegin; ichan<chend; ++ichan) if (!flags[irow*nchan+ichan]) - iout[acc[tmp[idx]]++] = irow*nchan+ichan; + { + auto uvw = baselines.effectiveCoord(irow, ichan); + if ((uvw.w>=wmin) && (uvw.w<wmax)) + iout[acc[tmp[idx++]]++] = irow*nchan+ichan; + } return res; } -- GitLab