OSDN Git Service

CUDA
[eos/hostdependX86LINUX64.git] / util / X86LINUX64 / cuda-6.5 / include / thrust / system / detail / generic / transform_scan.h
1 /*
2  *  Copyright 2008-2013 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 #pragma once
19
20 #include <thrust/detail/config.h>
21 #include <thrust/system/detail/generic/tag.h>
22
23 namespace thrust
24 {
25 namespace system
26 {
27 namespace detail
28 {
29 namespace generic
30 {
31
32 template<typename ExecutionPolicy,
33          typename InputIterator,
34          typename OutputIterator,
35          typename UnaryFunction,
36          typename BinaryFunction>
37   OutputIterator transform_inclusive_scan(thrust::execution_policy<ExecutionPolicy> &exec,
38                                           InputIterator first,
39                                           InputIterator last,
40                                           OutputIterator result,
41                                           UnaryFunction unary_op,
42                                           BinaryFunction binary_op);
43
44 template<typename ExecutionPolicy,
45          typename InputIterator,
46          typename OutputIterator,
47          typename UnaryFunction,
48          typename T,
49          typename AssociativeOperator>
50   OutputIterator transform_exclusive_scan(thrust::execution_policy<ExecutionPolicy> &exec,
51                                           InputIterator first,
52                                           InputIterator last,
53                                           OutputIterator result,
54                                           UnaryFunction unary_op,
55                                           T init,
56                                           AssociativeOperator binary_op);
57
58 } // end namespace generic
59 } // end namespace detail
60 } // end namespace system
61 } // end namespace thrust
62
63 #include <thrust/system/detail/generic/transform_scan.inl>
64