Skip to content

Commit d36ef02

Browse files
authored
Merge pull request #742 from jszuppe/fix_strided_iter_tag
Fix strided_iterator tag
2 parents d498149 + fe23b07 commit d36ef02

File tree

4 files changed

+46
-10
lines changed

4 files changed

+46
-10
lines changed

.travis.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ matrix:
7373
- LINUX_DIST=trusty
7474
- OPENCL_LIB=pocl
7575
- OPENCL_HEADERS_VER="21"
76-
- ENV_CXX_FLAGS="-DBOOST_COMPUTE_MAX_CL_VERSION=100"
76+
- ENV_CXX_FLAGS="-Wno-unused-local-typedef -DBOOST_COMPUTE_MAX_CL_VERSION=100"
7777
- ENV_CMAKE_OPTIONS="-DOpenCL_LIBRARY=${OPENCL_ROOT}/pocl/lib/libOpenCL.so -DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include"
7878
- os: linux
7979
dist: trusty
@@ -87,7 +87,7 @@ matrix:
8787
- LINUX_DIST=trusty
8888
- OPENCL_LIB=pocl
8989
- OPENCL_HEADERS_VER="21"
90-
- ENV_CXX_FLAGS="-DBOOST_COMPUTE_MAX_CL_VERSION=100"
90+
- ENV_CXX_FLAGS="-Wno-unused-local-typedef -DBOOST_COMPUTE_MAX_CL_VERSION=100"
9191
- ENV_CMAKE_OPTIONS="-DOpenCL_LIBRARY=${OPENCL_ROOT}/pocl/lib/libOpenCL.so -DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include"
9292
# Trusty, OpenCL 1.1
9393
- os: linux
@@ -102,7 +102,7 @@ matrix:
102102
- LINUX_DIST=trusty
103103
- OPENCL_LIB=pocl
104104
- OPENCL_HEADERS_VER="21"
105-
- ENV_CXX_FLAGS="-DBOOST_COMPUTE_MAX_CL_VERSION=101"
105+
- ENV_CXX_FLAGS="-Wno-unused-local-typedef -DBOOST_COMPUTE_MAX_CL_VERSION=101"
106106
- ENV_CMAKE_OPTIONS="-DOpenCL_LIBRARY=${OPENCL_ROOT}/pocl/lib/libOpenCL.so -DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include"
107107
- os: linux
108108
dist: trusty
@@ -300,7 +300,7 @@ matrix:
300300
- ENV_CMAKE_OPTIONS="-DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include -DBOOST_COMPUTE_ENABLE_COVERAGE=ON -DBOOST_COMPUTE_USE_CPP11=ON"
301301
- COVERAGE=true
302302

303-
# Latest Boost library builds (currently 1.64)
303+
# Latest Boost library builds (currently 1.65.1)
304304
# Precise, AMD APP SDK v2.9.1, Travis CI container-based infrastructure
305305
- os: linux
306306
sudo: false
@@ -323,8 +323,8 @@ matrix:
323323
- OPENCL_LIB=amdappsdk
324324
- OPENCL_HEADERS_VER="21"
325325
- AMDAPPSDK_VERSION=291 # OpenCL 1.2
326-
- BOOST_VERSION="1_64_0" # Boost 1.64
327-
- BOOST_URL="http://sourceforge.net/projects/boost/files/boost/1.64.0/boost_1_64_0.tar.gz"
326+
- BOOST_VERSION="1_65_1" # Boost 1.65.1
327+
- BOOST_URL="http://sourceforge.net/projects/boost/files/boost/1.65.1/boost_1_65_1.tar.gz"
328328
- ENV_CXX_FLAGS="-DBOOST_COMPUTE_MAX_CL_VERSION=102"
329329
- ENV_CMAKE_OPTIONS="-DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include -DBOOST_COMPUTE_USE_CPP11=ON"
330330
- os: linux
@@ -342,8 +342,8 @@ matrix:
342342
- OPENCL_LIB=amdappsdk
343343
- OPENCL_HEADERS_VER="21"
344344
- AMDAPPSDK_VERSION=291 # OpenCL 1.2
345-
- BOOST_VERSION="1_64_0" # Boost 1.64
346-
- BOOST_URL="http://sourceforge.net/projects/boost/files/boost/1.64.0/boost_1_64_0.tar.gz"
345+
- BOOST_VERSION="1_65_1" # Boost 1.65.1
346+
- BOOST_URL="http://sourceforge.net/projects/boost/files/boost/1.65.1/boost_1_65_1.tar.gz"
347347
- ENV_CXX_FLAGS="-DBOOST_COMPUTE_MAX_CL_VERSION=102"
348348
- ENV_CMAKE_OPTIONS="-DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include -DBOOST_COMPUTE_USE_CPP11=ON"
349349

.travis/amd_sdk.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# Original script from https://github.com/gregvw/amd_sdk/
44

55
# Location from which get nonce and file name from
6-
URL="http://developer.amd.com/tools-and-sdks/opencl-zone/opencl-tools-sdks/amd-accelerated-parallel-processing-app-sdk/"
6+
URL="http://developer.amd.com/amd-accelerated-parallel-processing-app-sdk/"
77
URLDOWN="http://developer.amd.com/amd-license-agreement-appsdk/"
88

99
NONCE1_STRING='name="amd_developer_central_downloads_page_nonce"'

include/boost/compute/iterator/strided_iterator.hpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,9 @@ class strided_iterator_base
4242
public:
4343
typedef ::boost::iterator_adaptor<
4444
::boost::compute::strided_iterator<Iterator>,
45-
Iterator
45+
Iterator,
46+
typename std::iterator_traits<Iterator>::value_type,
47+
typename std::iterator_traits<Iterator>::iterator_category
4648
> type;
4749
};
4850

test/test_strided_iterator.cpp

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,14 @@
1818

1919
#include <boost/compute/algorithm/copy.hpp>
2020
#include <boost/compute/container/vector.hpp>
21+
#include <boost/compute/iterator/buffer_iterator.hpp>
2122
#include <boost/compute/iterator/strided_iterator.hpp>
2223

2324
#include "check_macros.hpp"
2425
#include "context_setup.hpp"
2526

27+
namespace bc = boost::compute;
28+
2629
BOOST_AUTO_TEST_CASE(value_type)
2730
{
2831
BOOST_STATIC_ASSERT((
@@ -157,4 +160,35 @@ BOOST_AUTO_TEST_CASE(make_strided_iterator_end)
157160
CHECK_RANGE_EQUAL(boost::compute::int_, 4, result, (2, 4, 6, 8));
158161
}
159162

163+
BOOST_AUTO_TEST_CASE(iterator_tag)
164+
{
165+
typedef bc::buffer_iterator<bc::float_> i_type;
166+
167+
BOOST_STATIC_ASSERT((
168+
boost::is_same<
169+
std::iterator_traits<
170+
i_type
171+
>::iterator_category,
172+
std::iterator_traits<
173+
bc::strided_iterator<i_type>
174+
>::iterator_category
175+
>::value
176+
));
177+
}
178+
179+
BOOST_AUTO_TEST_CASE(std_distance)
180+
{
181+
bc::vector<bc::float_> vec(
182+
size_t(300),
183+
bc::float_(1.1f),
184+
queue
185+
);
186+
187+
bc::strided_iterator<bc::buffer_iterator<bc::float_> > begin(vec.begin(), 1);
188+
bc::strided_iterator<bc::buffer_iterator<bc::float_> > end(vec.end(), 1);
189+
190+
BOOST_CHECK_EQUAL(std::distance(begin, end), 300);
191+
BOOST_CHECK_EQUAL(std::distance(end, begin), -300);
192+
}
193+
160194
BOOST_AUTO_TEST_SUITE_END()

0 commit comments

Comments
 (0)