summaryrefslogtreecommitdiff
path: root/Cython/Includes/libcpp/numeric.pxd
blob: 670c6cfe84e4c089d4347fe73035ea48b0ce8c4e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
cdef extern from "<numeric>" namespace "std" nogil:
    T inner_product[InputIt1, InputIt2, T](InputIt1 first1, InputIt1 last1, InputIt2 first2, T init)

    T inner_product[InputIt1, InputIt2, T, BinaryOperation1, BinaryOperation2](InputIt1 first1, InputIt1 last1,
                                                                               InputIt2 first2, T init,
                                                                               BinaryOperation1 op1,
                                                                               BinaryOperation2 op2)

    void iota[ForwardIt, T](ForwardIt first, ForwardIt last, T value)

    T accumulate[InputIt, T](InputIt first, InputIt last, T init)

    T accumulate[InputIt, T, BinaryOperation](InputIt first, InputIt last, T init, BinaryOperation op)

    void adjacent_difference[InputIt, OutputIt](InputIt in_first, InputIt in_last, OutputIt out_first)

    void adjacent_difference[InputIt, OutputIt, BinaryOperation](InputIt in_first, InputIt in_last, OutputIt out_first,
                                                                 BinaryOperation op)

    void partial_sum[InputIt, OutputIt](InputIt in_first, OutputIt in_last, OutputIt out_first)

    void partial_sum[InputIt, OutputIt, BinaryOperation](InputIt in_first, InputIt in_last, OutputIt out_first,
                                                         BinaryOperation op)

    
    T reduce[InputIt, T](InputIt first, InputIt last, T init)

    # ambiguous with next overload
    #T reduce[ExecutionPolicy, ForwardIt, T](ExecutionPolicy&& policy, 
    #    ForwardIt first, ForwardIt last, T init)

    T reduce[InputIt, T, BinaryOp](InputIt first, InputIt last, T init, BinaryOp binary_op)

    T reduce[ExecutionPolicy, ForwardIt, T, BinaryOp](ExecutionPolicy&& policy, 
        ForwardIt first, ForwardIt last, T init, BinaryOp binary_op)

    T transform_reduce[InputIt1, InputIt2, T](InputIt1 first1, InputIt1 last1, 
        InputIt2 first2, T init)

    T transform_reduce[InputIt1, InputIt2, T, BinaryReductionOp, BinaryTransformOp](
        InputIt1 first1, InputIt1 last1, InputIt2 first2, T init, 
        BinaryReductionOp reduce, BinaryTransformOp transform)

    T transform_reduce[InputIt, T, BinaryReductionOp, UnaryTransformOp](
        InputIt first, InputIt last, T init, BinaryReductionOp reduce, 
        UnaryTransformOp transform)

    # ambiguous with previous overload
    #T transform_reduce[ExecutionPolicy, ForwardIt1, ForwardIt2, T](
    #    ExecutionPolicy&& policy, ForwardIt1 first1, ForwardIt1 last1, 
    #    ForwardIt2 first2, T init)

    T transform_reduce[ExecutionPolicy, ForwardIt1, ForwardIt2, T, BinaryReductionOp, BinaryTransformOp](
        ExecutionPolicy&& policy, ForwardIt1 first1, ForwardIt1 last1, ForwardIt2 first2, T init, 
        BinaryReductionOp reduce, BinaryTransformOp transform)

    # ambiguous with second overload
    #T transform_reduce[ExecutionPolicy, ForwardIt, T, BinaryReductionOp, UnaryTransformOp](
    #    ExecutionPolicy&& policy, ForwardIt first, ForwardIt last, T init, BinaryReductionOp reduce, 
    #    UnaryTransformOp transform)

    OutputIt inclusive_scan[InputIt, OutputIt](InputIt first, InputIt last, OutputIt d_first)

    # ambiguous with next overload
    # ForwardIt2 inclusive_scan[ExecutionPolicy, ForwardIt1, ForwardIt2](
    #    ExecutionPolicy&& policy, ForwardIt1 first, ForwardIt1 last, 
    #    ForwardIt2 d_first)

    OutputIt inclusive_scan[InputIt, OutputIt, BinaryOperation](
        InputIt first, InputIt last, OutputIt d_first, BinaryOperation binary_op)

    # ambiguous with next overload
    # ForwardIt2 inclusive_scan[ExecutionPolicy, ForwardIt1, ForwardIt2, BinaryOperation](
    #   ExecutionPolicy&& policy, ForwardIt1 first, ForwardIt1 last, ForwardIt2 d_first, 
    #   BinaryOperation binary_op)

    OutputIt inclusive_scan[InputIt, OutputIt, BinaryOperation, T](
        InputIt first, InputIt last, OutputIt d_first, BinaryOperation binary_op, 
        T init)

    # 
    # ForwardIt2 inclusive_scan[ExecutionPolicy, ForwardIt1, ForwardIt2, BinaryOperation, T](
    #     ExecutionPolicy&& policy, ForwardIt1 first, ForwardIt1 last, ForwardIt2 d_first, 
    #     BinaryOperation binary_op, T init)

    OutputIt exclusive_scan[InputIt, OutputIt, T](InputIt first, InputIt last, 
        OutputIt d_first, T init)

    # ambiguous with next overload
    #ForwardIt2 exclusive_scan[ExecutionPolicy, ForwardIt1, ForwardIt2, T](
    #    ExecutionPolicy&& policy, ForwardIt1 first, ForwardIt1 last, 
    #    ForwardIt2 d_first, T init)

    OutputIt exclusive_scan[InputIt, OutputIt, T, BinaryOperation](
        InputIt first, InputIt last, OutputIt d_first, T init, BinaryOperation binary_op)

    ForwardIt2 exclusive_scan[ExecutionPolicy, ForwardIt1, ForwardIt2, T, BinaryOperation](
        ExecutionPolicy&& policy, ForwardIt1 first, ForwardIt1 last, ForwardIt2 d_first,
        T init, BinaryOperation binary_op)

    OutputIt transform_inclusive_scan[InputIt, OutputIt, BinaryOperation, UnaryOperation](
        InputIt first, InputIt last, OutputIt d_first, BinaryOperation binary_op, 
        UnaryOperation unary_op)

    # ambiguous with next overload
    # ForwardIt2 transform_inclusive_scan[ExecutionPolicy, ForwardIt1, ForwardIt2, BinaryOperation, UnaryOperation](
    #    ExecutionPolicy&& policy, ForwardIt1 first, ForwardIt1 last, ForwardIt2 d_first, 
    #    BinaryOperation binary_op, UnaryOperation unary_op)

    OutputIt transform_inclusive_scan[InputIt, OutputIt, BinaryOperation, UnaryOperation, T](
        InputIt first, InputIt last, OutputIt d_first, BinaryOperation binary_op, 
        UnaryOperation unary_op, T init)

    ForwardIt2 transform_inclusive_scan[ExecutionPolicy, ForwardIt1, ForwardIt2, BinaryOperation, UnaryOperation, T](
        ExecutionPolicy&& policy, ForwardIt1 first, ForwardIt1 last, ForwardIt2 d_first, 
        BinaryOperation binary_op, UnaryOperation unary_op, T init)

    OutputIt transform_exclusive_scan[InputIt, OutputIt, T, BinaryOperation, UnaryOperation](
        InputIt first, InputIt last, OutputIt d_first, T init, BinaryOperation binary_op, 
        UnaryOperation unary_op)

    ForwardIt2 transform_exclusive_scan[ExecutionPolicy, ForwardIt1, ForwardIt2, T, BinaryOperation, UnaryOperation](
        ExecutionPolicy&& policy, ForwardIt1 first, ForwardIt1 last, ForwardIt2 d_first, 
        T init, BinaryOperation binary_op, UnaryOperation unary_op)