[compute] 32/49: Merge pull request #497 from haahh/pr_find_extrema_supports_custom_comparision

Ghislain Vaillant ghisvail-guest at moszumanska.debian.org
Fri Dec 18 17:58:19 UTC 2015


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

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

commit cf5e40ee265f005b144c4e0dda945734188e8542
Merge: 057b220 e6b20e6
Author: Kyle Lutz <kyle.r.lutz at gmail.com>
Date:   Wed Aug 19 20:24:04 2015 -0700

    Merge pull request #497 from haahh/pr_find_extrema_supports_custom_comparision
    
    Support for custom comparison function in find_extrema()

 .../compute/algorithm/detail/find_extrema.hpp      |  21 +-
 .../algorithm/detail/find_extrema_with_atomics.hpp |  23 ++-
 ...ema_reduce.hpp => find_extrema_with_reduce.hpp} | 216 ++++++++++++++-------
 .../algorithm/detail/serial_find_extrema.hpp       |  21 +-
 include/boost/compute/algorithm/max_element.hpp    |  39 +++-
 include/boost/compute/algorithm/min_element.hpp    |  41 +++-
 include/boost/compute/algorithm/minmax_element.hpp |  25 ++-
 perf/perf_bolt_max_element.cpp                     |  19 +-
 perf/perf_max_element.cpp                          |  16 +-
 test/test_extrema.cpp                              |  34 ++++
 10 files changed, 351 insertions(+), 104 deletions(-)

diff --cc test/test_extrema.cpp
index b97d0d8,7d68667..98804bc
--- a/test/test_extrema.cpp
+++ b/test/test_extrema.cpp
@@@ -39,15 -39,49 +39,49 @@@ BOOST_AUTO_TEST_CASE(int_min_max
      BOOST_CHECK_EQUAL(*max_iter, 15);
  }
  
+ BOOST_AUTO_TEST_CASE(int2_min_max_custom_comparision_function)
+ {
+     using boost::compute::int2_;
+ 
+     boost::compute::vector<int2_> vector(context);
+     vector.push_back(int2_(1, 10), queue);
+     vector.push_back(int2_(2, -100), queue);
+     vector.push_back(int2_(3, 30), queue);
+     vector.push_back(int2_(4, 20), queue);
+     vector.push_back(int2_(5, 5), queue);
+     vector.push_back(int2_(6, -80), queue);
+     vector.push_back(int2_(7, 21), queue);
+     vector.push_back(int2_(8, -5), queue);
+ 
+     BOOST_COMPUTE_FUNCTION(bool, compare_second, (const int2_ a, const int2_ b),
+     {
+         return a.y < b.y;
+     });
+ 
+     boost::compute::vector<int2_>::iterator min_iter =
+         boost::compute::min_element(
+             vector.begin(), vector.end(), compare_second, queue
+          );
+     BOOST_CHECK(min_iter == vector.begin() + 1);
+     BOOST_CHECK_EQUAL(*min_iter, int2_(2, -100));
+ 
+     boost::compute::vector<int2_>::iterator max_iter =
+         boost::compute::max_element(
+             vector.begin(), vector.end(), compare_second, queue
+         );
+     BOOST_CHECK(max_iter == vector.begin() + 2);
+     BOOST_CHECK_EQUAL(*max_iter, int2_(3, 30));
+ }
+ 
  BOOST_AUTO_TEST_CASE(iota_min_max)
  {
 -    boost::compute::vector<int> vector(5000);
 +    boost::compute::vector<int> vector(5000, context);
  
      // fill with 0 -> 4999
 -    boost::compute::iota(vector.begin(), vector.end(), 0);
 +    boost::compute::iota(vector.begin(), vector.end(), 0, queue);
  
      boost::compute::vector<int>::iterator min_iter =
 -        boost::compute::min_element(vector.begin(), vector.end());
 +        boost::compute::min_element(vector.begin(), vector.end(), queue);
      BOOST_CHECK(min_iter == vector.begin());
      BOOST_CHECK_EQUAL(*min_iter, 0);
  

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



More information about the debian-science-commits mailing list