diff -rauN arrayfire-full-3.6.3/src/api/c/homography.cpp arrayfire-full-3.6.3-dim-cast/src/api/c/homography.cpp --- arrayfire-full-3.6.3/src/api/c/homography.cpp 2019-04-22 19:43:11.000000000 +0200 +++ arrayfire-full-3.6.3-dim-cast/src/api/c/homography.cpp 2019-05-10 10:56:16.706666685 +0200 @@ -30,7 +30,7 @@ Array bestH = createEmptyArray(af::dim4(3, 3)); af_array initial; unsigned d = (iterations + 256 - 1) / 256; - dim_t rdims[] = {4, d * 256}; + dim_t rdims[] = {4, static_cast(d) * 256}; AF_CHECK(af_randu(&initial, 2, rdims, f32)); inliers = homography(bestH, getArray(x_src), getArray(y_src), diff -rauN arrayfire-full-3.6.3/src/backend/opencl/kernel/ireduce.hpp arrayfire-full-3.6.3-dim-cast/src/backend/opencl/kernel/ireduce.hpp --- arrayfire-full-3.6.3/src/backend/opencl/kernel/ireduce.hpp 2019-04-22 19:43:11.000000000 +0200 +++ arrayfire-full-3.6.3-dim-cast/src/backend/opencl/kernel/ireduce.hpp 2019-05-10 10:57:31.576666685 +0200 @@ -308,7 +308,7 @@ uint groups_x = divup(in.info.dims[0], threads_x * REPEAT); uint groups_y = divup(in.info.dims[1], threads_y); Array tmp = createEmptyArray( - {groups_x, in.info.dims[1], in.info.dims[2], in.info.dims[3]}); + {static_cast(groups_x), in.info.dims[1], in.info.dims[2], in.info.dims[3]}); int tmp_elements = tmp.elements(); cl::Buffer *tidx = bufferAlloc(tmp_elements * sizeof(uint)); diff -rauN arrayfire-full-3.6.3/src/backend/opencl/kernel/reduce.hpp arrayfire-full-3.6.3-dim-cast/src/backend/opencl/kernel/reduce.hpp --- arrayfire-full-3.6.3/src/backend/opencl/kernel/reduce.hpp 2019-04-22 19:43:11.000000000 +0200 +++ arrayfire-full-3.6.3-dim-cast/src/backend/opencl/kernel/reduce.hpp 2019-05-10 10:58:02.416666685 +0200 @@ -263,7 +263,7 @@ uint groups_x = divup(in.info.dims[0], threads_x * REPEAT); uint groups_y = divup(in.info.dims[1], threads_y); Array tmp = createEmptyArray( - {groups_x, in.info.dims[1], in.info.dims[2], in.info.dims[3]}); + {{static_cast(groups_x), in.info.dims[1], in.info.dims[2], in.info.dims[3]}); int tmp_elements = tmp.elements();