~ubuntu-branches/ubuntu/utopic/libthrust/utopic

« back to all changes in this revision

Viewing changes to detail/generate.inl

  • Committer: Package Import Robot
  • Author(s): Andreas Beckmann
  • Date: 2013-07-10 12:57:33 UTC
  • mfrom: (1.1.4)
  • Revision ID: package-import@ubuntu.com-20130710125733-my19jic71sqsabaj
Tags: 1.7.0-1
* New upstream release.  (Closes: #715362)
* Update watch file.

Show diffs side-by-side

added added

removed removed

Lines of Context:
24
24
#include <thrust/iterator/iterator_traits.h>
25
25
#include <thrust/system/detail/generic/select_system.h>
26
26
#include <thrust/system/detail/generic/generate.h>
27
 
#include <thrust/detail/adl_helper.h>
 
27
#include <thrust/system/detail/adl/generate.h>
28
28
 
29
29
namespace thrust
30
30
{
31
31
 
 
32
 
 
33
template<typename DerivedPolicy,
 
34
         typename ForwardIterator,
 
35
         typename Generator>
 
36
  void generate(const thrust::detail::execution_policy_base<DerivedPolicy> &exec,
 
37
                ForwardIterator first,
 
38
                ForwardIterator last,
 
39
                Generator gen)
 
40
{
 
41
  using thrust::system::detail::generic::generate;
 
42
  return generate(thrust::detail::derived_cast(thrust::detail::strip_const(exec)), first, last, gen);
 
43
} // end generate()
 
44
 
 
45
 
 
46
template<typename DerivedPolicy,
 
47
         typename OutputIterator,
 
48
         typename Size,
 
49
         typename Generator>
 
50
  OutputIterator generate_n(const thrust::detail::execution_policy_base<DerivedPolicy> &exec,
 
51
                            OutputIterator first,
 
52
                            Size n,
 
53
                            Generator gen)
 
54
{
 
55
  using thrust::system::detail::generic::generate_n;
 
56
  return generate_n(thrust::detail::derived_cast(thrust::detail::strip_const(exec)), first, n, gen);
 
57
} // end generate_n()
 
58
 
 
59
 
32
60
template<typename ForwardIterator,
33
61
         typename Generator>
34
62
  void generate(ForwardIterator first,
36
64
                Generator gen)
37
65
{
38
66
  using thrust::system::detail::generic::select_system;
39
 
  using thrust::system::detail::generic::generate;
40
 
 
41
 
  typedef typename thrust::iterator_system<ForwardIterator>::type type;
42
 
 
43
 
  return generate(select_system(type()), first, last, gen);
 
67
 
 
68
  typedef typename thrust::iterator_system<ForwardIterator>::type System;
 
69
 
 
70
  System system;
 
71
 
 
72
  return thrust::generate(select_system(system), first, last, gen);
44
73
} // end generate()
45
74
 
46
75
 
52
81
                            Generator gen)
53
82
{
54
83
  using thrust::system::detail::generic::select_system;
55
 
  using thrust::system::detail::generic::generate_n;
56
 
 
57
 
  typedef typename thrust::iterator_system<OutputIterator>::type type;
58
 
 
59
 
  return generate_n(select_system(type()), first, n, gen);
 
84
 
 
85
  typedef typename thrust::iterator_system<OutputIterator>::type System;
 
86
 
 
87
  System system;
 
88
 
 
89
  return thrust::generate_n(select_system(system), first, n, gen);
60
90
} // end generate_n()
61
91
 
 
92
 
62
93
} // end thrust
63
94