# tensorflow::ops::Cumsum

`#include <math_ops.h>`

Compute the cumulative sum of the tensor `x` along `axis`.

## Summary

By default, this op performs an inclusive cumsum, which means that the first element of the input is identical to the first element of the output:


```
tf.cumsum([a, b, c])  # => [a, a + b, a + b + c]
```

<br />

By setting the `exclusive` kwarg to `True`, an exclusive cumsum is performed instead:


```
tf.cumsum([a, b, c], exclusive=True)  # => [0, a, a + b]
```

<br />

By setting the `reverse` kwarg to `True`, the cumsum is performed in the opposite direction:


```
tf.cumsum([a, b, c], reverse=True)  # => [a + b + c, b + c, c]
```

<br />

This is more efficient than using separate `tf.reverse` ops.

The `reverse` and `exclusive` kwargs can also be combined:


```
tf.cumsum([a, b, c], exclusive=True, reverse=True)  # => [b + c, c, 0]
```

<br />

Arguments:

- scope: A [Scope](https://www.tensorflow.org/versions/r2.0/api_docs/cc/class/tensorflow/scope#classtensorflow_1_1_scope) object
- x: A `https://www.tensorflow.org/versions/r2.0/api_docs/cc/class/tensorflow/tensor#classtensorflow_1_1_tensor`. Must be one of the following types: `float32`, `float64`, `int64`, `int32`, `uint8`, `uint16`, `int16`, `int8`, `complex64`, `complex128`, `qint8`, `quint8`, `qint32`, `half`.
- axis: A `https://www.tensorflow.org/versions/r2.0/api_docs/cc/class/tensorflow/tensor#classtensorflow_1_1_tensor` of type `int32` (default: 0). Must be in the range `[-rank(x), rank(x))`.

<br />

Optional attributes (see `https://www.tensorflow.org/versions/r2.0/api_docs/cc/struct/tensorflow/ops/cumsum/attrs#structtensorflow_1_1ops_1_1_cumsum_1_1_attrs`):

- exclusive: If `True`, perform exclusive cumsum.
- reverse: A `bool` (default: False).

<br />

Returns:

- `https://www.tensorflow.org/versions/r2.0/api_docs/cc/class/tensorflow/output#classtensorflow_1_1_output`: The out tensor.

<br />

| ### Constructors and Destructors ||
|---|---|
| `https://www.tensorflow.org/versions/r2.0/api_docs/cc/class/tensorflow/ops/cumsum#classtensorflow_1_1ops_1_1_cumsum_1ac4bff34c1fffc1a64355bd97e38887d2(const ::https://www.tensorflow.org/versions/r2.0/api_docs/cc/class/tensorflow/scope#classtensorflow_1_1_scope & scope, ::https://www.tensorflow.org/versions/r2.0/api_docs/cc/class/tensorflow/input#classtensorflow_1_1_input x, ::https://www.tensorflow.org/versions/r2.0/api_docs/cc/class/tensorflow/input#classtensorflow_1_1_input axis)` ||
| `https://www.tensorflow.org/versions/r2.0/api_docs/cc/class/tensorflow/ops/cumsum#classtensorflow_1_1ops_1_1_cumsum_1afe84204de0e7a885385374174240fcc3(const ::https://www.tensorflow.org/versions/r2.0/api_docs/cc/class/tensorflow/scope#classtensorflow_1_1_scope & scope, ::https://www.tensorflow.org/versions/r2.0/api_docs/cc/class/tensorflow/input#classtensorflow_1_1_input x, ::https://www.tensorflow.org/versions/r2.0/api_docs/cc/class/tensorflow/input#classtensorflow_1_1_input axis, const https://www.tensorflow.org/versions/r2.0/api_docs/cc/struct/tensorflow/ops/cumsum/attrs#structtensorflow_1_1ops_1_1_cumsum_1_1_attrs & attrs)` ||

| ### Public attributes ||
|---|---|
| `https://www.tensorflow.org/versions/r2.0/api_docs/cc/class/tensorflow/ops/cumsum#classtensorflow_1_1ops_1_1_cumsum_1abe2a855b0b89aedaadef5b1ab2d495f6` | `https://www.tensorflow.org/versions/r2.0/api_docs/cc/class/tensorflow/operation#classtensorflow_1_1_operation` |
| `https://www.tensorflow.org/versions/r2.0/api_docs/cc/class/tensorflow/ops/cumsum#classtensorflow_1_1ops_1_1_cumsum_1aa1249678696c8bec40fc3737ff3af4b0` | `::https://www.tensorflow.org/versions/r2.0/api_docs/cc/class/tensorflow/output#classtensorflow_1_1_output` |

| ### Public functions ||
|---|---|
| `https://www.tensorflow.org/versions/r2.0/api_docs/cc/class/tensorflow/ops/cumsum#classtensorflow_1_1ops_1_1_cumsum_1a638d380af05abb4f7dbdafb4d578e5c4() const ` | `::tensorflow::Node *` |
| `https://www.tensorflow.org/versions/r2.0/api_docs/cc/class/tensorflow/ops/cumsum#classtensorflow_1_1ops_1_1_cumsum_1a433ea12bc76c446dca36009246b62bb4() const ` | ` `` ` |
| `https://www.tensorflow.org/versions/r2.0/api_docs/cc/class/tensorflow/ops/cumsum#classtensorflow_1_1ops_1_1_cumsum_1a273a98f7b496769e405300dc1b76addd() const ` | ` `` ` |

| ### Public static functions ||
|---|---|
| `https://www.tensorflow.org/versions/r2.0/api_docs/cc/class/tensorflow/ops/cumsum#classtensorflow_1_1ops_1_1_cumsum_1a405094be636726578ca6715ceeb29637(bool x)` | `https://www.tensorflow.org/versions/r2.0/api_docs/cc/struct/tensorflow/ops/cumsum/attrs#structtensorflow_1_1ops_1_1_cumsum_1_1_attrs` |
| `https://www.tensorflow.org/versions/r2.0/api_docs/cc/class/tensorflow/ops/cumsum#classtensorflow_1_1ops_1_1_cumsum_1affad4b03f430a883b021c21fafd4ddbf(bool x)` | `https://www.tensorflow.org/versions/r2.0/api_docs/cc/struct/tensorflow/ops/cumsum/attrs#structtensorflow_1_1ops_1_1_cumsum_1_1_attrs` |

| ### Structs ||
|---|---|
| [tensorflow::ops::Cumsum::Attrs](https://www.tensorflow.org/versions/r2.0/api_docs/cc/struct/tensorflow/ops/cumsum/attrs) | Optional attribute setters for [Cumsum](https://www.tensorflow.org/versions/r2.0/api_docs/cc/class/tensorflow/ops/cumsum#classtensorflow_1_1ops_1_1_cumsum). |

## Public attributes

### operation

```
Operation operation
```

### out

```
::tensorflow::Output out
```

## Public functions

### Cumsum

```
 Cumsum(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input x,
  ::tensorflow::Input axis
)
```

### Cumsum

```
 Cumsum(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input x,
  ::tensorflow::Input axis,
  const Cumsum::Attrs & attrs
)
```

### node

```
::tensorflow::Node * node() const 
```

### operator::tensorflow::Input

```
 operator::tensorflow::Input() const 
```

### operator::tensorflow::Output

```
 operator::tensorflow::Output() const 
```

## Public static functions

### Exclusive

```
Attrs Exclusive(
  bool x
)
```

### Reverse

```
Attrs Reverse(
  bool x
)
```