[arrayfire] 18/26: Fixing bug in linear interpolation functions

Ghislain Vaillant ghisvail-guest at moszumanska.debian.org
Tue Jul 7 13:59:24 UTC 2015


This is an automated email from the git hooks/post-receive script.

ghisvail-guest pushed a commit to branch master
in repository arrayfire.

commit 4dbc1c81ea958bf753f4e8e092c3381a67baf5d1
Author: Shehzan Mohammed <shehzan at arrayfire.com>
Date:   Wed Jun 24 14:32:36 2015 -0400

    Fixing bug in linear interpolation functions
---
 src/backend/cpu/approx.cpp                    | 4 ++--
 src/backend/cpu/transform_interp.hpp          | 2 +-
 src/backend/cuda/kernel/approx.hpp            | 4 ++--
 src/backend/cuda/kernel/transform_interp.hpp  | 6 +++---
 src/backend/opencl/kernel/approx1.cl          | 2 +-
 src/backend/opencl/kernel/approx2.cl          | 2 +-
 src/backend/opencl/kernel/transform_interp.cl | 2 +-
 7 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/src/backend/cpu/approx.cpp b/src/backend/cpu/approx.cpp
index 050b3e1..69b943a 100644
--- a/src/backend/cpu/approx.cpp
+++ b/src/backend/cpu/approx.cpp
@@ -85,7 +85,7 @@ namespace cpu
                 gFlag = true;
             }
 
-            const Tp grid_x = floor(x);  // nearest grid
+            const int grid_x = floor(x);  // nearest grid
             const Tp off_x = x - grid_x; // fractional offset
 
             for(dim_t idw = 0; idw < odims[3]; idw++) {
@@ -231,7 +231,7 @@ namespace cpu
                 gFlag = true;
             }
 
-            const Tp grid_x = floor(x),   grid_y = floor(y);   // nearest grid
+            const int grid_x = floor(x),   grid_y = floor(y);   // nearest grid
             const Tp off_x  = x - grid_x, off_y  = y - grid_y; // fractional offset
 
             // Check if pVal and pVal + 1 are both valid indices
diff --git a/src/backend/cpu/transform_interp.hpp b/src/backend/cpu/transform_interp.hpp
index 8ae8eb9..23df154 100644
--- a/src/backend/cpu/transform_interp.hpp
+++ b/src/backend/cpu/transform_interp.hpp
@@ -85,7 +85,7 @@ namespace cpu
         typedef wtype_t<BT> WT;
         typedef vtype_t<T> VT;
 
-        const WT grd_x = floor(xi),  grd_y = floor(yi);
+        const dim_t grd_x = floor(xi),  grd_y = floor(yi);
         const WT off_x = xi - grd_x, off_y = yi - grd_y;
 
         dim_t loci = grd_y * istrides[1] + grd_x;
diff --git a/src/backend/cuda/kernel/approx.hpp b/src/backend/cuda/kernel/approx.hpp
index b3dfc96..1ad7061 100644
--- a/src/backend/cuda/kernel/approx.hpp
+++ b/src/backend/cuda/kernel/approx.hpp
@@ -92,7 +92,7 @@ namespace cuda
                 return;
             }
 
-            const Tp grid_x = floor(pVal);  // nearest grid
+            const int grid_x = floor(pVal);  // nearest grid
             const Tp off_x = pVal - grid_x; // fractional offset
 
             int ioff = idw * in.strides[3] + idz * in.strides[2] + idy * in.strides[1] + grid_x;
@@ -126,7 +126,7 @@ namespace cuda
                 return;
             }
 
-            const Tp grid_x = floor(x),   grid_y = floor(y);   // nearest grid
+            const int grid_x = floor(x),   grid_y = floor(y);   // nearest grid
             const Tp off_x  = x - grid_x, off_y  = y - grid_y; // fractional offset
 
             int ioff = idw * in.strides[3] + idz * in.strides[2] + grid_y * in.strides[1] + grid_x;
diff --git a/src/backend/cuda/kernel/transform_interp.hpp b/src/backend/cuda/kernel/transform_interp.hpp
index e917508..5448bff 100644
--- a/src/backend/cuda/kernel/transform_interp.hpp
+++ b/src/backend/cuda/kernel/transform_interp.hpp
@@ -98,12 +98,12 @@ namespace cuda
             typedef typename itype_t<T>::wtype WT;
             typedef typename itype_t<T>::vtype VT;
 
-            const WT grd_x = floor(xidi),  grd_y = floor(yidi);
+            const int grd_x = floor(xidi),  grd_y = floor(yidi);
             const WT off_x = xidi - grd_x, off_y = yidi - grd_y;
 
             // Check if pVal and pVal + 1 are both valid indices
-            const bool condY = (yidi < in.dims[1] - 1);
-            const bool condX = (xidi < in.dims[0] - 1);
+            const bool condY = (yidi < (in.dims[1] - 1));
+            const bool condX = (xidi < (in.dims[0] - 1));
 
             // Compute weights used
             const WT wt00 = (1.0 - off_x) * (1.0 - off_y);
diff --git a/src/backend/opencl/kernel/approx1.cl b/src/backend/opencl/kernel/approx1.cl
index bae2722..b39d803 100644
--- a/src/backend/opencl/kernel/approx1.cl
+++ b/src/backend/opencl/kernel/approx1.cl
@@ -75,7 +75,7 @@ void core_linear1(const int idx, const int idy, const int idz, const int idw,
         return;
     }
 
-    const Tp grid_x = floor(pVal);  // nearest grid
+    const int grid_x = floor(pVal);  // nearest grid
     const Tp off_x = pVal - grid_x; // fractional offset
 
     int ioff = idw * in.strides[3] + idz * in.strides[2] + idy * in.strides[1] + grid_x;
diff --git a/src/backend/opencl/kernel/approx2.cl b/src/backend/opencl/kernel/approx2.cl
index 2d2d7e8..13d71af 100644
--- a/src/backend/opencl/kernel/approx2.cl
+++ b/src/backend/opencl/kernel/approx2.cl
@@ -80,7 +80,7 @@ void core_linear2(const int idx, const int idy, const int idz, const int idw,
         return;
     }
 
-    const Tp grid_x = floor(x),   grid_y = floor(y);   // nearest grid
+    const int grid_x = floor(x),   grid_y = floor(y);   // nearest grid
     const Tp off_x  = x - grid_x, off_y  = y - grid_y; // fractional offset
 
     int ioff = idw * in.strides[3] + idz * in.strides[2] + grid_y * in.strides[1] + grid_x;
diff --git a/src/backend/opencl/kernel/transform_interp.cl b/src/backend/opencl/kernel/transform_interp.cl
index 9bd7443..e7db270 100644
--- a/src/backend/opencl/kernel/transform_interp.cl
+++ b/src/backend/opencl/kernel/transform_interp.cl
@@ -69,7 +69,7 @@ void transform_b(__global T *d_out, const KParam out, __global const T *d_in, co
         return;
     }
 
-    const WT grd_x = floor(xid),  grd_y = floor(yid);
+    const int grd_x = floor(xid),  grd_y = floor(yid);
     const WT off_x = xid - grd_x, off_y = yid - grd_y;
 
     // Check if pVal and pVal + 1 are both valid indices

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/arrayfire.git



More information about the debian-science-commits mailing list