~ubuntu-branches/ubuntu/trusty/libthrust/trusty

« back to all changes in this revision

Viewing changes to detail/for_each.inl

  • Committer: Bazaar Package Importer
  • Author(s): Andreas Beckmann
  • Date: 2011-05-28 09:32:48 UTC
  • Revision ID: james.westby@ubuntu.com-20110528093248-np3euv5sj7fw3nyv
Tags: upstream-1.4.0
ImportĀ upstreamĀ versionĀ 1.4.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 *  Copyright 2008-2011 NVIDIA Corporation
 
3
 *
 
4
 *  Licensed under the Apache License, Version 2.0 (the "License");
 
5
 *  you may not use this file except in compliance with the License.
 
6
 *  You may obtain a copy of the License at
 
7
 *
 
8
 *      http://www.apache.org/licenses/LICENSE-2.0
 
9
 *
 
10
 *  Unless required by applicable law or agreed to in writing, software
 
11
 *  distributed under the License is distributed on an "AS IS" BASIS,
 
12
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
13
 *  See the License for the specific language governing permissions and
 
14
 *  limitations under the License.
 
15
 */
 
16
 
 
17
 
 
18
/*! \file for_each.inl
 
19
 *  \brief Inline file for for_each.h.
 
20
 */
 
21
 
 
22
#include <thrust/detail/dispatch/for_each.h>
 
23
#include <thrust/iterator/iterator_traits.h>
 
24
 
 
25
namespace thrust
 
26
{
 
27
 
 
28
namespace detail
 
29
{
 
30
 
 
31
 
 
32
template<typename OutputIterator,
 
33
         typename Size,
 
34
         typename UnaryFunction>
 
35
  OutputIterator for_each_n(OutputIterator first,
 
36
                            Size n,
 
37
                            UnaryFunction f)
 
38
{
 
39
  // dispatch on space
 
40
  return thrust::detail::dispatch::for_each_n(first, n, f,
 
41
          typename thrust::iterator_space<OutputIterator>::type());
 
42
} // end for_each_n()
 
43
 
 
44
template<typename InputIterator,
 
45
         typename UnaryFunction>
 
46
  InputIterator for_each(InputIterator first,
 
47
                         InputIterator last,
 
48
                         UnaryFunction f)
 
49
{
 
50
  return thrust::detail::dispatch::for_each(first, last, f,
 
51
      typename thrust::iterator_space<InputIterator>::type());
 
52
} // end for_each()
 
53
 
 
54
 
 
55
} // end detail
 
56
 
 
57
 
 
58
/////////////////
 
59
// Entry Point //
 
60
/////////////////
 
61
template<typename InputIterator,
 
62
         typename UnaryFunction>
 
63
void for_each(InputIterator first,
 
64
              InputIterator last,
 
65
              UnaryFunction f)
 
66
{
 
67
  thrust::detail::for_each(first, last, f);
 
68
} // end for_each()
 
69
 
 
70
 
 
71
} // end namespace thrust
 
72