Commit Graph

530 Commits

Author SHA1 Message Date
Anees Haider
b565232b8e Merge remote-tracking branch 'compute/develop' 2015-04-06 09:33:52 +05:00
Junaid Muzammil
31342d7e53 Threefry generate signature modification 2015-04-05 21:27:31 +05:00
Muhammad Junaid Muzammil
61e16c8963 Overloaded Method for default Key Values 2015-04-02 00:26:06 +05:00
Kyle Lutz
f9136ed842 Add transform_if() algorithm 2015-03-31 19:45:58 -07:00
Junaid Muzammil
1c41612c9a Unit Test Fixed and Comments Added 2015-03-29 00:57:56 +05:00
Junaid Muzammil
1c75d5752d Necessary Changes Made to Threefry Engine as recommended 2015-03-28 18:06:01 +05:00
Muhammad Junaid Muzammil
37e060d0ca Threefry Random 123 Support Added 2015-03-22 16:53:47 +05:00
Jakub Szuppe
f95b1ee682 Separate kernel for reverse_copy()
Separate kernel for reverse_copy() algorithm improves its performance,
new tests for reverse_copy_int
2015-03-10 22:25:38 +01:00
Kyle Lutz
a1e3366ade Add Boost.Build support 2015-03-01 09:36:59 -08:00
Kyle Lutz
a71a4e9853 Add begin() and end() methods to extents<N> 2015-02-25 11:06:45 -07:00
Kyle Lutz
de76e66dd1 Merge pull request #426 from jmr1/msvc2013
MSVC 2013 build fixes
2015-02-22 19:02:45 -07:00
jmr1
bf233d833c Missing using declaration 2015-02-22 17:21:36 +01:00
Kyle Lutz
ca0bc4b7d3 Refactor image classes 2015-02-08 16:26:34 -08:00
Kyle Lutz
6e38dafbd5 Merge pull request #423 from kylelutz/buffer-clone-flags
Preserve memory flags in buffer::clone()
2015-02-08 15:06:57 -08:00
Kyle Lutz
a34aaf0456 Merge pull request #422 from kylelutz/no-device-found-exception
Add no_device_found exception
2015-02-08 15:06:43 -08:00
Kyle Lutz
8b2788f026 Add no_device_found exception 2015-02-07 12:47:11 -08:00
Kyle Lutz
3c56ea4cbe Preserve memory flags in buffer::clone() 2015-02-07 12:27:24 -08:00
Kyle Lutz
155ec4b8b9 Disable default context error handler 2015-02-07 10:56:34 -08:00
Bastian Köcher
1e711e0330 - Rebased with develop branch
- Moved include into the test

Conflicts:
	test/test_buffer.cpp
2015-01-20 10:19:37 +01:00
Kyle Lutz
f4bf942a31 Merge pull request #412 from bastiankoe/createsubbuffer
CreateSubbuffer support
2015-01-16 18:40:01 -08:00
Kyle Lutz
316109abd4 Merge pull request #410 from kylelutz/wait-guard
Add wait_guard class
2015-01-16 18:39:18 -08:00
Bastian Köcher
09d3c44cd7 - Added templated register_destructor_callback function and a test for this new functionality 2015-01-16 16:38:25 +01:00
Bastian Köcher
7eba538c55 Merge branch 'develop' into createsubbuffer 2015-01-16 15:59:24 +01:00
Bastian Köcher
78ce892705 - Added testcase for subbuffer creation
- Added documentation and asserts for buffer.create_subbuffer function
2015-01-16 15:57:28 +01:00
Kyle Lutz
79aa6758f2 Add wait_guard class 2015-01-07 20:19:05 -08:00
Kyle Lutz
8b27e22b2f Add test for vector::resize() exception-safety 2015-01-07 20:17:26 -08:00
Kyle Lutz
01643e7f9a Add test for equality with std::accumulate() 2014-12-30 16:12:55 -08:00
Kyle Lutz
6609a54c00 Merge pull request #399 from kylelutz/rename-misc-tests
Rename miscellaneous tests
2014-12-30 15:26:09 -08:00
Kyle Lutz
7f962e6078 Rename miscellaneous tests 2014-12-30 14:50:47 -08:00
Kyle Lutz
c48c4dd086 Fix local_buffer test when checking local memory size
This fixes a test failure for implementations which don't
properly report dynamically set local memory buffer sizes.
2014-12-30 14:42:52 -08:00
Kyle Lutz
c74c2abc4f Add four-iterator versions of equal() and mismatch() 2014-12-30 13:44:24 -08:00
Kyle Lutz
cfdb10c808 Move is_device_iterator to the public API 2014-12-30 10:06:47 -08:00
Kyle Lutz
c31195ec7d Add local_buffer class 2014-12-24 14:06:18 -08:00
Kyle Lutz
417cb03670 Fixes for Mac OS X 2014-12-24 09:25:55 -08:00
Kyle Lutz
e3bbce456b Merge pull request #352 from kylelutz/rename-types-builtin
Rename types/builtin.hpp to types/fundamental.hpp
2014-12-21 09:15:29 -08:00
Kyle Lutz
c97c83a562 Rename types/builtin.hpp to types/fundamental.hpp 2014-12-20 13:39:50 -08:00
Kyle Lutz
73b246603b Add for_each_n() algorithm 2014-12-20 13:30:36 -08:00
Kyle Lutz
885a2ad135 Improve documentation 2014-12-20 10:39:38 -08:00
sschaet
ea7e0a0993 fixing CHECK_RANGE_EQUAL
if the container passed to CHECK_RANGE_EQUAL is larger than the
expected range, the copy writes over the the boundaries of the
created buffer _actual.
2014-12-17 21:13:01 +01:00
Kyle Lutz
c4d49cef20 Merge pull request #341 from kylelutz/device-platform
Add device::platform() method
2014-12-14 10:58:38 -08:00
Kyle Lutz
2bab2c5ee7 Add device::platform() method 2014-12-13 11:25:11 -08:00
Kyle Lutz
a4a6614895 Add program_cache to the public API 2014-12-13 10:38:56 -08:00
Kyle Lutz
1a591e277b Add result_of<F(Args...)> meta-function 2014-12-10 22:58:54 -08:00
Kyle Lutz
8883a85fec Merge pull request #330 from Mageswaran1989/histogram_example
added histogram example based on opencv
2014-12-10 20:12:11 -08:00
Mageswaran.D
010753db26 added histogram example based on opencv 2014-12-10 22:43:23 +05:30
Kyle Lutz
848d95601e Merge pull request #335 from kylelutz/flat-map-custom-kernel
Add test for flat_map with custom kernel
2014-12-07 13:50:34 -08:00
Kyle Lutz
d62c214ddd Add test for flat_map with custom kernel 2014-12-07 13:38:26 -08:00
Kyle Lutz
425a9c006f Add utility directory
This adds a new utility directory and moves some of the utility
functions and classes (e.g. dim(), extents, wait_list) there.
2014-12-06 12:51:25 -08:00
Kyle Lutz
4185694366 Add extents<N> class
This adds an extents<N> class which stores an array of n-dimensional
extent values. This can be used to represent an ND-range for launching
an OpenCL kernel or for storing the size/shape of a 2D/3D image.

Also adds a variadic dim() function which provides a concise syntax
for creating extents<N> objects.
2014-12-02 22:42:24 -08:00
Kyle Lutz
fa75a66253 Merge pull request #318 from kylelutz/identity-function
Add identity<T>() function
2014-11-29 10:28:26 -08:00
Kyle Lutz
16fdb15395 Add identity<T>() function 2014-11-29 10:19:53 -08:00
Kyle Lutz
3e3f46d144 Define BOOST_COMPUTE_DEBUG_KERNEL_COMPILATION for tests 2014-11-28 13:20:21 -08:00
Kyle Lutz
85e03f7e69 Merge pull request #315 from kylelutz/copy-to-vector-bool
Fix issue with copy() and std::vector<bool>
2014-11-28 12:34:46 -08:00
Mageswaran.D
9d813a2309 oveloaded find() for string and char pointer 2014-11-27 11:31:43 +05:30
Kyle Lutz
a6bdf21b31 Fix issue with copy() and std::vector<bool> 2014-11-26 08:46:39 -08:00
Kyle Lutz
1e0505d79c Merge pull request #311 from f-koehler/pr229
Reimplemented unit tests for unsupported extension and context error
2014-11-24 08:02:36 -08:00
f-koehler
d57fa9ffb0 reimplemented unit tests for unsupported extension and context error 2014-11-24 16:13:58 +01:00
Kyle Lutz
16834b9fb4 Improve documentation 2014-11-19 23:29:28 -08:00
Kyle Lutz
7ffd2224e8 Merge pull request #307 from Mageswaran1989/lexicographical_compare
added lexicographical_compare algorithm & test cases
2014-11-19 10:44:10 -08:00
Mageswaran.D
af7e38d2ce added lexicographical_compare algorithm & test cases 2014-11-19 23:49:10 +05:30
Kyle Lutz
3183effcb0 Merge pull request #306 from shehzan10/test-event-nvidia-fix
Adding OpenCL 1.2 required for NVIDIA when build with C++11
2014-11-11 21:57:30 -08:00
Shehzan Mohammed
ed94d4176a Adding OpenCL 1.2 required for NVIDIA when build with C++11 2014-11-11 14:00:24 -05:00
Kyle Lutz
53a869a7a1 Merge pull request #305 from kylelutz/stable-sort-radix-sort
Use radix_sort() for stable_sort() when possible
2014-11-10 21:24:14 -08:00
Kyle Lutz
88d19723e3 Use radix_sort() for stable_sort() when possible 2014-11-09 11:06:47 -08:00
Kyle Lutz
5c1aac441c Fix bug when calling radix_sort() with partial ranges 2014-11-09 10:53:23 -08:00
Mageswaran.D
4b50a5c1dc added support for output stream(cout<<) for compute::string : updated 2014-11-09 03:07:51 +05:30
Kyle Lutz
52eab193e7 Merge pull request #301 from Mageswaran1989/swap_api_string_class
added swap api for string class
2014-11-07 12:03:08 -08:00
Mageswaran.D
119e201c94 added swap api for string class 2014-11-07 23:51:00 +05:30
Kyle Lutz
a11fda7aa3 Merge pull request #295 from Mageswaran1989/String_find-issue288
String find issue288
2014-11-05 07:56:58 -08:00
Kyle Lutz
f1c61c796e Add version check to kernel::get_arg_info() test 2014-11-04 20:08:45 -08:00
Mageswaran.D
bdc6d79e4d String::find() signed char fix with test case 2014-11-04 13:06:11 +05:30
Kyle Lutz
ad33665b89 Add type_definition<T>() function 2014-09-30 22:24:31 -07:00
Kyle Lutz
e7578b697f Merge pull request #272 from kylelutz/improve-test-coverage
Improve test coverage
2014-09-29 21:26:21 -07:00
Kyle Lutz
eef75bf1fa Merge pull request #269 from kylelutz/thread-safe
Use thread-local storage for global program cache
2014-09-29 20:41:54 -07:00
Kyle Lutz
f300370366 Add test for platform class 2014-09-29 20:30:39 -07:00
Kyle Lutz
872dea05ef Add test for fill() with empty range 2014-09-29 20:01:21 -07:00
Kyle Lutz
8022923dbf Add test case for count_if_with_reduce() function 2014-09-29 19:51:08 -07:00
Kyle Lutz
4da55a4f94 Add test for sort3() function 2014-09-29 19:45:39 -07:00
Kyle Lutz
05afa5f707 Use thread-local storage for global program cache 2014-09-28 12:37:48 -07:00
Kyle Lutz
10d79c6689 Fix bug when using bind() with adapted structs 2014-09-27 11:42:29 -07:00
Kyle Lutz
0b0cbd399e Merge pull request #265 from roshanr95/uniform_int_distribution
Uniform int distribution
2014-09-21 11:06:08 -07:00
Kyle Lutz
7e05c0f9a5 Merge pull request #262 from kylelutz/opencl-2.0
Add OpenCL 2.0 support
2014-09-21 11:05:15 -07:00
roshanr
d2c25ef582 Add test to reflect issue #159 2014-09-20 12:30:17 +05:30
Kyle Lutz
cdcd4c5a32 Refactor get_info() functions 2014-09-13 18:42:43 -07:00
Kyle Lutz
ec254c04bb Add OpenCL 2.0 support 2014-09-13 12:29:03 -07:00
Kyle Lutz
60f0709bc1 Merge pull request #259 from kylelutz/dynamic-bitset
Add dynamic_bitset class
2014-09-07 11:37:50 -07:00
Kyle Lutz
8310e8e729 Add dynamic_bitset class 2014-09-07 11:21:46 -07:00
Kyle Lutz
49fc80d204 Fix bug when using popcount() with ulong 2014-09-07 11:00:46 -07:00
Kyle Lutz
94d182d47d Rearrange allocator headers
This moves the allocator headers from 'container' to a new
top-level 'allocator' directory.

Also renames allocator<T> to buffer_allocator<T>.
2014-09-06 09:51:46 -07:00
Kyle Lutz
891aff215d Fix bug when calling reduce() with empty ranges 2014-09-04 20:42:37 -07:00
Kyle Lutz
744359715f Implement is_sorted() with adjacent_find() 2014-08-21 22:43:46 -07:00
Kyle Lutz
c69ea170fb Remove adjacent_transform_iterator class 2014-08-21 07:00:13 -07:00
Kyle Lutz
b3ea818248 Rewrite unique() algorithm 2014-08-21 07:00:10 -07:00
Kyle Lutz
b533df6a5c Rewrite adjacent_find() algorithm 2014-08-20 22:46:51 -07:00
Kyle Lutz
45c5ec3281 Rewrite adjacent_difference() algorithm 2014-08-20 22:43:27 -07:00
Kyle Lutz
8c7efd24fd Add support for multi-device contexts 2014-08-13 20:28:34 -07:00
Kyle Lutz
bd427b8a1b Merge pull request #224 from kylelutz/capture-containers-with-closure
Capture containers with closure
2014-08-09 09:00:43 -07:00
Kyle Lutz
1c746a9c6e Merge pull request #227 from ddemidov/issue-218
The test_closure does not require any OpenCL 1.2 features
2014-08-09 08:58:05 -07:00
Denis Demidov
a6467c9ec4 The test_closure does not require any OpenCL 1.2 features
see #218
2014-08-09 15:40:40 +04:00
Kyle Lutz
fd8c8f934b Support capturing containers with BOOST_COMPUTE_CLOSURE() 2014-08-07 22:20:16 -07:00
Kyle Lutz
95c331fa84 Capture references with BOOST_COMPUTE_CLOSURE() 2014-08-07 20:57:34 -07:00
Kyle Lutz
71a2787713 Merge pull request #213 from f-koehler/issue119
test for program::source()
2014-08-06 19:20:54 -07:00
fkoehler
dfd5724308 test for program::source() 2014-08-06 13:24:38 +02:00
Kyle Lutz
4703488c45 Merge pull request #212 from roshanr95/nth-element
Nth element
2014-08-05 19:00:30 -07:00
roshanr
30082abd59 Improve nth_element performance and unit testing 2014-08-05 22:12:45 +05:30
f-koehler
15f9793bd8 choose qt4 or qt5 2014-08-05 16:36:46 +02:00
Kyle Lutz
2f948a9903 Add test for count_if() with custom function 2014-07-31 20:26:47 -07:00
Kyle Lutz
8a11a320d3 Merge pull request #203 from f-koehler/master
explicitly look for Qt4 and not for Qt in general
2014-07-29 18:30:16 -07:00
fkoehler
b70df00ce4 explicitly look for Qt4 and not for Qt in general 2014-07-29 13:23:43 +02:00
Kyle Lutz
f21abdff7e Add bind() function 2014-07-27 10:33:59 -07:00
Denis Demidov
201f85a038 Skip tests requiring OpenCL 1.2 on usupported devices 2014-07-12 22:54:16 +04:00
Kyle Lutz
86199873b7 Fix partition_by_counts test for Intel CPUs
This fixes a test failure in partition_by_counts for Intel CPU
devices. The clCreateSubDevices() function is not guaranteed to
return the sub-devices in the same order as they were specified
in the compute unit counts argument.

Now the test sorts the returned sub-devices by number of compute
units and checks that each specified count is present.

See issue #185.
2014-07-12 08:52:26 -07:00
Kyle Lutz
9dc87712e9 Improve documentation 2014-07-11 23:25:41 -07:00
Kyle Lutz
a4ae254adc Rename mersenne_twister_engine header
This renames the mersenne_twister_engine header from
"mersenne_twister.hpp" to "mersenne_twister_engine.hpp".
2014-07-11 22:27:16 -07:00
Kyle Lutz
94306ce2e8 Merge pull request #179 from kylelutz/deprecate-device-ptr
Move device_ptr to the detail namespace
2014-07-10 20:02:39 -07:00
Kyle Lutz
9106222e61 Merge pull request #178 from kylelutz/equality-operators
Add equality operators for all wrapper classes
2014-07-09 22:10:36 -07:00
Kyle Lutz
e0535d7233 Move device_ptr to the detail namespace
This deprecates the device_ptr class and moves it to the detail
namespace. The buffer_iterator class should be used instead of
device_ptr for referencing a memory location on the device.
2014-07-08 21:04:23 -07:00
Kyle Lutz
7d377989ee Add equality operators for all wrapper classes 2014-07-08 20:33:02 -07:00
Kyle Lutz
4a1b3edf48 Fix resize bug with vector::assign()
This fixes a bug in which vector::assign() would not resize
itself to accommodate the assigned values. Now the behavior
matches that of std::vector.
2014-07-07 21:56:39 -07:00
Kyle Lutz
cae813ec3c Add get_info<Info>() specializations 2014-07-07 19:14:14 -07:00
Kyle Lutz
c156ca7198 Merge pull request #169 from kylelutz/hash-function
Add hash() function
2014-07-07 08:02:09 -07:00
Kyle Lutz
6af32b3d8f Add hash() function 2014-07-02 23:24:18 -07:00
Kyle Lutz
90217d055b Add compile() and link() methods to program 2014-07-02 22:32:58 -07:00
Kyle Lutz
2fa478a11f Merge pull request #158 from roshanr95/search-algorithms
Search algorithms
2014-06-25 18:37:56 -07:00
roshanr
f3d20639f7 Change function signature of search algorithms to match STL versions 2014-06-26 01:27:21 +05:30
Kyle Lutz
9f74b5290e Enable OpenCV on Travis-CI 2014-06-24 20:54:02 -07:00
roshanr
fd2506b161 Add quick and dirty linear congruential engine 2014-06-18 02:47:00 +05:30
Kyle Lutz
3ac85e3fbc Merge pull request #141 from roshanr95/discrete_distribution
Add discrete_distribution
2014-06-16 18:39:59 -07:00
roshanr
a0a7a85d0d Add discrete_distribution 2014-06-16 03:01:36 +05:30
roshanr
79063d4fb4 Add uniform_int_distribution 2014-06-15 02:28:59 +05:30
Kyle Lutz
3bf34f368b Fix test for copy_async() 2014-06-08 23:51:08 -07:00
Kyle Lutz
6ea122adb7 Add support for specifying wait-lists in command_queue 2014-06-08 22:23:59 -07:00
Kyle Lutz
57470c48c2 Add device::get() method 2014-06-08 14:03:27 -07:00
Kyle Lutz
a639e408b8 Cleanup move-semantics for all core types 2014-06-08 13:40:27 -07:00
Kyle Lutz
c2c1346f19 Rename event::get_status() to event::status() 2014-06-08 10:45:35 -07:00
Kyle Lutz
69e483696b Use reduce() for accumulate() with min()/max() 2014-06-08 10:35:49 -07:00
Kyle Lutz
5c5e813b04 Fix typo in mapped_view test 2014-06-08 09:04:51 -07:00
Kyle Lutz
60aca4401b Simplify the program::create_kernel() implementation 2014-06-07 19:58:36 -07:00
Kyle Lutz
732ab539f3 Improve documentation 2014-06-07 15:03:56 -07:00
Kyle Lutz
b228de76a7 Add memory_object::set_destructor_callback() method 2014-06-07 11:13:52 -07:00
Kyle Lutz
d30dcfb564 Use clEnqueueWriteBuffer() for writing single values with fill() 2014-06-06 23:10:27 -07:00
Kyle Lutz
2ca2c16839 Swap allocators in vector::swap() 2014-06-06 08:29:45 -07:00
Kyle Lutz
36681a6ad5 Merge pull request #131 from roshanr95/bernoulli-distribution
Add bernoulli distribution
2014-06-04 18:41:37 -07:00
roshanr
1777b7e5bf Add bernoulli distribution 2014-06-04 03:41:19 +05:30
roshanr
b772ae4849 Add algorithm and test for is_permutation 2014-06-01 06:01:38 +05:30
roshanr
5e08e1b0b6 Add algorithm and test for prev_permutation 2014-06-01 06:01:31 +05:30
Kyle Lutz
ff11312fd5 Merge pull request #126 from roshanr95/next_permutation
Add algorithm and test for next_permutation
2014-05-29 23:16:31 -07:00
roshanr
e4f0783ecd Add algorithm and test for next_permutation 2014-05-29 22:31:11 +05:30
roshanr
c8d4836a6f Add partition_point algorithm and test 2014-05-26 03:43:19 +05:30
Kyle Lutz
52886775f8 Support conversion of lambda expressions to function objects 2014-05-24 13:42:43 -07:00
Kyle Lutz
0a0fa4c25b Merge pull request #117 from roshanr95/stable_partition
Add algorithm and test for stable_partition
2014-05-23 18:34:31 -07:00
roshanr
4d3d114285 Add algorithm and test for stable_partition
Added algorithm and test for stable_partition.
Changed partition to use it for now till a
better implementation is found
2014-05-23 14:19:17 +05:30
Kyle Lutz
4a507cb368 Remove test for variadic wait_list::insert() 2014-05-22 22:40:04 -07:00
Kyle Lutz
85af9d2630 Add variadic wait_for_all() function 2014-05-18 19:47:19 -07:00
Kyle Lutz
13bc000117 Add image2d::clone() method 2014-05-18 19:34:24 -07:00
Kyle Lutz
b49a8e52f8 Add test for find_if() with distance() 2014-05-18 16:15:57 -07:00
Kyle Lutz
376713f1b4 Simplify lambda wrappers for binary geometric functions 2014-05-18 16:13:47 -07:00
roshanr
8dbc2b658d Add algorithm and test for includes 2014-05-19 01:42:16 +05:30
roshanr
de9b2ef6ff Add algorithm and test for set_symmetric_difference 2014-05-19 01:08:41 +05:30
roshanr
acbabfeeff Add algorithm and test for set_difference 2014-05-18 22:50:00 +05:30
roshanr
5f7cd290cf Add algorithm and test for set_union 2014-05-18 22:49:54 +05:30
roshanr
c522d9a337 Add algorithm and test for set_intersection 2014-05-16 19:14:48 +05:30
Kyle Lutz
b41ec2b1cb Fix bug when invoking binary closures 2014-05-14 10:44:52 -07:00
Kyle Lutz
a107b9239f Fix tests for event::set_callback() on Intel GPUs
Intel GPUs don't fire the callbacks registered with set_callback()
until the underlying OpenCL event object is destroyed. This changes
the test so that the events go out of scope or are explicitly reset
before checking that the callback has been executed.
2014-05-10 18:04:42 -07:00
Kyle Lutz
b89c886462 Refactor exception classes
This refactors and improves the exception classes. Additional
documentation as well as testing has been added. This also adds
a new static method to opencl_error which converts OpenCL error
codes to human-readable strings.
2014-05-10 14:59:33 -07:00
Kyle Lutz
b1eef72ec2 Add device vendor predicate functions
This adds a couple new functions for checking the vendor of a
compute device. This is useful for algorithms which specialize
based on the type of the underlying hardware.
2014-05-10 10:33:24 -07:00
Kyle Lutz
4bb78de369 Merge pull request #110 from roshanr95/search_n
Search_n
2014-05-10 10:09:16 -07:00
roshanr
d3b3881d9e Add algorithm and test for search_n 2014-05-09 22:48:40 +05:30
roshanr
09760b4372 Add algorithm and test for find_end 2014-05-09 05:16:04 +05:30
Kyle Lutz
6b7d83b40e Merge pull request #103 from roshanr95/search_algorithms
Search algorithm
2014-05-07 21:04:40 -07:00
roshanr
79d5353a4e Minor fixes
Change documentation style, add test for search(), remove unused
variable, remove trailing whitespaces
2014-05-07 15:53:03 +05:30
Kyle Lutz
88b6a8b3d4 Only call clRetainDevice()/clReleaseDevice() for sub-devices 2014-05-06 19:56:11 -07:00
roshanr
747fe2d41f Search algorithm
Add algorithm and test for search()
2014-05-04 23:41:43 +05:30
Kyle Lutz
00f782355e Add example and test for AMD's static C++ kernel language 2014-04-28 21:53:36 -07:00
Kyle Lutz
37a00f5c4e Add normal_distribution class 2014-04-27 15:27:15 -07:00
Kyle Lutz
02fc4fa170 Add define() method to function<> and closure<> 2014-04-27 15:02:48 -07:00
Kyle Lutz
6b00246e09 Simplify function/closure macro implementations 2014-04-27 12:56:14 -07:00
Kyle Lutz
f6bd9de8bd Reorganize tests for issues/bugs 2014-04-27 12:42:45 -07:00
Kyle Lutz
9343b99085 Improve documentation 2014-04-24 19:51:45 -07:00
Kyle Lutz
4b67907023 Change BOOST_COMPUTE_FUNCTION() to use custom argument names
This changes the BOOST_COMPUTE_FUNCTION() macro (and the related
BOOST_COMPUTE_CLOSURE() macro) to use custom, user-provided argument
names instead of auto-generating them based on their index.

This is an API-breaking change. Users should now provide argument
names when using the BOOST_COMPUTE_FUNCTION() macro. The examples
and documentation have been updated to reflect the new API.
2014-04-20 19:13:48 -07:00
Kyle Lutz
2511bdb436 Merge pull request #97 from roshanr95/unique
Fix errors in unique
2014-04-20 16:42:56 -07:00
roshanr
59efaa0eeb Add tests and benchmarks for unique_copy 2014-04-21 02:00:02 +05:30
Kyle Lutz
6ac757887c Support generic function callbacks for event 2014-04-19 11:38:10 -07:00
Kyle Lutz
2fb2c08806 Fix unused variable warning in test_user_event.cpp 2014-04-17 23:10:24 -07:00
Kyle Lutz
21d81fcd76 Add user_event class 2014-04-16 21:11:47 -07:00
Kyle Lutz
6336b81911 Rename mersenne_twister_engine::fill() to generate() 2014-04-13 14:13:53 -07:00
Kyle Lutz
2ebb04caac Add discard() method to mersenne_twister_engine 2014-04-13 13:57:12 -07:00
Kyle Lutz
dd0b1fcb7b Add discard_iterator class 2014-04-13 13:45:01 -07:00
Kyle Lutz
b7c4f0ce18 Change mersenne_twister::seed() to take a command_queue 2014-04-12 11:14:44 -07:00
Kyle Lutz
7966768c80 Remove read/write buffer convenience overloads in command_queue 2014-04-12 09:40:37 -07:00
Kyle Lutz
6499e30c66 Add test creating a std::future for an event object 2014-04-11 20:24:12 -07:00
Kyle Lutz
bae2bb6c7f Add get_nvidia_compute_capability() function 2014-04-02 21:30:22 -07:00
Kyle Lutz
6334d67720 Merge pull request #75 from roshanr95/unique
Unique algorithm
2014-03-23 21:24:05 -07:00
roshanr
1e81b7ec2e Unique algorithm
Added unique() algorithm, tests and benchmarks. Removed unused variable
in scan_on_gpu() to remove warnings
2014-03-24 06:30:28 +05:30
Kyle Lutz
667aa9c200 Add buffer::clone() method 2014-03-20 23:31:41 -07:00
Kyle Lutz
0446e24baf Fix BOOST_COMPUTE_FUNCTION() with non-default-constructible types 2014-03-20 23:31:36 -07:00
Kyle Lutz
35eef1e6be Add test for inner_product() with counting_iterator 2014-03-20 23:17:27 -07:00
Kyle Lutz
8e086104a0 Add event::set_callback() method
This adds a method to the event class which allows the user to
register a callback function to be invoked when the event reaches
the specified state (e.g. when it completes).
2014-03-16 13:20:57 -07:00
Kyle Lutz
0c3a325554 Move transform_if() algorithm to experimental 2014-03-16 13:16:39 -07:00
Kyle Lutz
9bf22a41d1 Merge pull request #66 from roshanr95/rotate_copy
rotate_copy algorithm and test
2014-03-13 08:07:11 -07:00
Kyle Lutz
bae7432c04 Improve sort_by_key() performance 2014-03-12 23:40:57 -07:00
Kyle Lutz
cf8e972e55 Improve kernel::set_arg() method 2014-03-12 21:02:22 -07:00
Kyle Lutz
9e5bff9d83 Add SYSTEM to third-party include_directories() calls 2014-03-12 20:41:04 -07:00
Kyle Lutz
d03fab297d Merge pull request #63 from kylelutz/coveralls
Add coveralls.io integration
2014-03-12 19:06:41 -07:00
Kyle Lutz
524ce5c799 Add coveralls.io integration
This adds support for automatic code-coverage generation with
coveralls.io and Travis-CI.
2014-03-12 18:26:29 -07:00
roshanr
f1b7f39655 rotate_copy algorithm and test 2014-03-13 03:56:56 +05:30
Kyle Lutz
5fb6f94cea Merge pull request #62 from roshanr95/rotate
Rotate algorithm
2014-03-12 10:38:56 -07:00
roshanr
03edbbbdab Rotate algorithm 2014-03-12 22:41:30 +05:30
Kyle Lutz
83d104f24f Add BOOST_COMPUTE_CLOSURE() macro
This adds a new macro which allows users to create closure functions
which can capture C++ variables and make them available in OpenCL.
2014-03-08 18:44:03 -08:00
Kyle Lutz
dec92cc438 Add BOOST_COMPUTE_ADAPT_STRUCT() macro
This adds a new macro which allows the user to adapt a C++ struct
or class for use with OpenCL given its type, name, and members.

This allows for custom user-defined data-types to be used with the
Boost.Compute containers and algorithms.
2014-03-08 18:21:34 -08:00
Kyle Lutz
6f3f30bee9 Add enqueue_native_kernel() method to command_queue 2014-03-08 15:21:57 -08:00
Kyle Lutz
3b49cf14f8 Add wait_list class
This adds a wait_list class which contains a vector of OpenCL
events that can be waited on before executing further commands.
2014-03-08 14:09:41 -08:00
Kyle Lutz
71af014b3d Add mapped_view container 2014-03-08 13:17:55 -08:00
Kyle Lutz
b8de46d4de Add experimental directory
This adds an experimental directory which contains various
experimental algorithms and functions. The files and APIs
under this directory are experimental and unstable.
2014-03-08 13:02:06 -08:00
Kyle Lutz
9e0431006a Rearrange types tests 2014-03-08 12:55:11 -08:00
Kyle Lutz
dacdbf0ffd Bug in fill() with uchar4 2014-02-22 10:51:39 -08:00
Kyle Lutz
ccd6f21d98 Change vector constructors to take queue argument
This changes the vector<T> constructors which copy or initialize
data to take a queue argument used for performing the operations.

Previously they just took a context argument used to initialize the
buffer and then created a new command queue to use. This improves
performance by not requiring a new command queue and also fixes issues
when performing operations on a different command queue while the
vector was still being initialized.
2014-01-27 23:39:19 -08:00
Kyle Lutz
bc8aa0e9d5 Skip generate_pair test on AMD
This skips the generate_pair test on AMD which does not
properly support struct assignment. Before this patch the
test would fail with "UNREACHABLE executed!" and a SIGABRT.
2014-01-26 18:52:58 -08:00
Kyle Lutz
dc20f09d92 Add make_tuple() lambda function 2014-01-14 22:18:35 -08:00
Kyle Lutz
ea7c2bf2f4 Add make_pair() lambda function 2014-01-14 22:03:48 -08:00
Kyle Lutz
e313aae6f7 Rename lambda result test functions to check_lambda_result() 2014-01-14 21:48:33 -08:00
Kyle Lutz
72664c8de9 Add test for generate() with pair<T1, T2> 2014-01-14 21:31:51 -08:00
Kyle Lutz
1dd35de225 Fix sign comparison warnings in tests 2014-01-14 21:29:25 -08:00
Kyle Lutz
936d801466 Add support for host iterators to sort() 2014-01-13 18:27:52 -08:00
Denis Demidov
41d2052c2a Fix linkage problem with detail::getenv()
detail::getenv() function was not declared inline, which led to
`multiple definition` errors at link time when a program consisted of
multiple objects that included Boost.Compute headers.

Fixed the problem and added core.multiple_objects test.
2014-01-07 21:29:18 +04:00
Kyle Lutz
aad03486d9 Add interop support
This adds interoperability support between Boost.Compute and various
other C/C++ libraries (Eigen, OpenCV, OpenGL, Qt and VTK). This eases
development for users using external libraries with Boost.Compute.
2014-01-06 23:35:38 -08:00
Kyle Lutz
b47e74df6f Add is_fundamental type-trait 2014-01-06 23:04:36 -08:00
Kyle Lutz
eca81df028 Merge pull request #39 from ddemidov/offline-cache
Implements offline kernel caching
2014-01-06 22:47:52 -08:00
Denis Demidov
562f149b18 Implements offline kernel caching
See kylelutz/compute#21

This adds program::build_with_source() function that both creates and
builds the program for the given context with supplied source and
compile options. In case BOOST_COMPUTE_USE_OFFLINE_CACHE macro is
defined, it also saves the compiled program binary for reuse in the
offline cache located in $HOME/.boost_compute folder on UNIX-like
systems and in %APPDATA%/boost_compute folder on Windows.

All internal uses of program::create_with_source() followed by
program::build() are replaced with program::build_with_source().
2014-01-07 09:07:00 +04:00
Kyle Lutz
b17888b604 Move future header to async directory 2014-01-06 18:44:37 -08:00
Kyle Lutz
84b45b4394 Bump Boost version requirement to 1.48
This bumps the required Boost version to 1.48 as Boost.Compute
makes use of Boost.Move which was added in version 1.48.

See issue #37.
2014-01-05 18:53:19 -08:00
Kyle Lutz
e337f632da Add height() and width() methods to image2d 2014-01-05 18:36:29 -08:00
Denis Demidov
0c8a59ef84 Fix core.system test
The find_device check in core.system is invalid. It could fail when same
device is supported by several platforms. In my case this happens for
Intel CPU when both AMD and Intel platforms are installed. The CPU
returned by boost::compute::system::default_device() is served by the
AMD platform, and the CPU returned by
boost::compute::system::find_device(name) is served by Intel SDK. The
only thing that could be safely asserted here is that both devices have
the same name.
2013-12-27 11:26:25 +04:00
Kyle Lutz
0d9be38326 Fix issues with gather() algorithm
This fixes some issues with the gather algorithm and also
adds another test for it.
2013-12-21 15:34:29 -08:00
Kyle Lutz
ac1ff45eff Add reduce_on_gpu() algorithm
This adds a improved reduce() algorithm implementation for
GPUs. Also adds checks to accumulate() which allow it to
use the higher-performance reduce() algorithm if possible.
2013-12-21 10:56:55 -08:00
Kyle Lutz
cf473bebd3 Use BOOST_COMPUTE_FUNCTION() macro in tests
This replaces the usages of make_function_from_source() with
the BOOST_COMPUTE_FUNCTION() macro.
2013-12-07 15:26:07 -08:00
Kyle Lutz
2728282c19 Add merge_floats test
This adds a test case for merge() with float's.
2013-12-07 15:18:45 -08:00
Kyle Lutz
26612823a4 Add merge() overload with custom compare function
This adds a merge() function overload which uses a custom compare
function instead of the default less<T>() to compare the values.
2013-12-07 15:15:37 -08:00
Kyle Lutz
6b6f66b6ba Add reduce() overload without function argument
This adds adds an overload of the reduce() function which
uses plus<T>() as the reductor. This simplifies the common
case of calculating the sum for a range of values.
2013-12-07 15:02:04 -08:00
Kyle Lutz
ba9e64e316 Remove init argument from reduce()
This removes the init argument from reduce. This simplifies the
implementation and avoids copying a value from the host to the
device on every call to reduce.

If an initial value is required, the accumulate function can be
called instead.
2013-12-07 14:49:46 -08:00
Kyle Lutz
701bc8a5f3 Add nth_element() algorithm
This adds an implementation of the nth_element() algorithm. For
now the algorithm is trivially implemented by calling sort().
2013-11-15 20:51:13 -08:00
Kyle Lutz
0daa62e41f Add experimental copy_index_if() algorithm
This adds an experimental algorithm like copy_if() which copies
the index of the values for which predicate returns true instead
of the values themselves.
2013-11-15 20:30:30 -08:00
Kyle Lutz
953ebb4e26 Add variadic tuple support
This adds support for variadic tuples on C++11 compilers.
2013-11-15 20:07:39 -08:00
Kyle Lutz
844690070f Remove STL algorithm tests from vector<> test
This removes the STL algorithm tests from the vector<> test.
2013-11-15 19:41:12 -08:00
Kyle Lutz
b5ff4743bb Add field() function
This adds a new function which will return the named field
from a value. For example, this can be used to return one of
the components of a pair object or to swizzle a vector value.
2013-11-10 15:44:45 -08:00
Kyle Lutz
8213697307 Add BOOST_COMPUTE_FUNCTION() macro
This adds a new macro to ease the definition of custom user
functions. The BOOST_COMPUTE_FUNCTION() macro creates a new
boost::compute::function<> object with the provided return
type, argument types, function name and OpenCL source code.
2013-11-10 15:32:15 -08:00
Kyle Lutz
feb510a019 Add unpack() function adaptor
This adds a new unpack() function adaptor which converts
a function with N arguments to a function which takes a
single tuple argument with N components.

This is useful for calling built-in functions with the tuples
values returned from zip_iterator. This also removes the now
un-needed binary_transform_iterator.
2013-09-24 23:05:08 -04:00
Kyle Lutz
efa83c9420 Add test for calculating mean and standard deviation
This adds a test which uses reduce() and transform_reduce()
to calculate mean and standard deviation.
2013-09-24 22:50:02 -04:00
Kyle Lutz
736f3a17a6 Add min_and_max reduce() test
This adds a test for computing the minimum and maximum
values of a vector simultaneously using reduce() with a
custom reduction function.

Also fixes a bug in reduce() in which inplace_reduce() was
being used even if the input type and result type differed.
2013-09-24 22:47:16 -04:00
Kyle Lutz
44920c6443 Rename ext.get test to functional.get
This renames the ext.get test to function.get.
2013-09-24 22:37:32 -04:00