X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=libctsim%2Fbackprojectors.cpp;h=ef1ef12e655738f3b1e1b06bd13fbba148f38b28;hb=82a12d49ecd2c09c301e6513b549c358f715e764;hp=d38b7189f6b6c878b09ec0549dca5daf242ce24e;hpb=e46615378520c3e801074560ebdc36be9558c6dd;p=ctsim.git diff --git a/libctsim/backprojectors.cpp b/libctsim/backprojectors.cpp index d38b718..ef1ef12 100644 --- a/libctsim/backprojectors.cpp +++ b/libctsim/backprojectors.cpp @@ -588,7 +588,7 @@ BackprojectIntDiff::BackprojectView (const double* const filteredProj, const dou #elif SIZEOF_LONG == 8 static const int scaleShift = 32; #endif - static const long scale = (1 << scaleShift); + static const long scale = (1L << scaleShift); static const long scaleBitmask = scale - 1; static const long halfScale = scale / 2; static const double dInvScale = 1. / scale; @@ -631,10 +631,10 @@ BackprojectIntDiff::BackprojectView (const double* const filteredProj, const dou } else if (interpType == Backprojector::INTERP_LINEAR) { for (int iy = 0; iy < ny; iy++, curDetPos += det_dy) { const long iDetPos = curDetPos >> scaleShift; - const long detRemainder = curDetPos & scaleBitmask; - if (iDetPos >= 0 && iDetPos <= iLastDet) - *pImCol++ += filteredProj[iDetPos] + (detRemainder * deltaFilteredProj[iDetPos]); - + if (iDetPos >= 0 && iDetPos <= iLastDet) { + const long detRemainder = curDetPos & scaleBitmask; + *pImCol++ += filteredProj[iDetPos] + (detRemainder * deltaFilteredProj[iDetPos]); + } } // end for iy } else if (interpType == Backprojector::INTERP_CUBIC) { for (int iy = 0; iy < ny; iy++, curDetPos += det_dy) {