| 104 | /// Space complexity: O(2n) |
| 105 | template<class InputIterator, class OutputIterator, class UnaryFunction, class Predicate> |
| 106 | inline OutputIterator transform_if(InputIterator first, |
| 107 | InputIterator last, |
| 108 | OutputIterator result, |
| 109 | UnaryFunction function, |
| 110 | Predicate predicate, |
| 111 | command_queue &queue = system::default_queue()) |
| 112 | { |
| 113 | BOOST_STATIC_ASSERT(is_device_iterator<InputIterator>::value); |
| 114 | BOOST_STATIC_ASSERT(is_device_iterator<OutputIterator>::value); |
| 115 | return detail::transform_if_impl( |
| 116 | first, last, result, function, predicate, false, queue |
| 117 | ); |
| 118 | } |
| 119 | |
| 120 | } // end compute namespace |
| 121 | } // end boost namespace |