## CUMSUM Cumulative Summation Function

Section: Elementary Functions

### Usage

Computes the cumulative sum of an n-dimensional array along a given dimension. The general syntax for its use is

      y = cumsum(x,d)

where `x` is a multidimensional array of numerical type, and `d` is the dimension along which to perform the cumulative sum. The output `y` is the same size of `x`. Integer types are promoted to `int32`. If the dimension `d` is not specified, then the cumulative sum is applied along the first non-singular dimension.

### Function Internals

The output is computed via

### Example

The default action is to perform the cumulative sum along the first non-singular dimension.

    --> A = [5,1,3;3,2,1;0,3,1]
    A =
      <int32>  - size: [3 3]

    Columns 1 to 3
     5  1  3
     3  2  1
     0  3  1
    --> cumsum(A)
    ans =
      <int32>  - size: [3 3]

    Columns 1 to 3
     5  1  3
     8  3  4
     8  6  5

To compute the cumulative sum along the columns:

    --> cumsum(A,2)
    ans =
      <int32>  - size: [3 3]

    Columns 1 to 3
     5  6  9
     3  5  6
     0  3  4

The cumulative sum also works along arbitrary dimensions

    --> B(:,:,1) = [5,2;8,9];
    --> B(:,:,2) = [1,0;3,0]
    B =
      <int32>  - size: [2 2 2]
    (:,:,1) =

    Columns 1 to 2
     5  2
     8  9
    (:,:,2) =

    Columns 1 to 2
     1  0
     3  0
    --> cumsum(B,3)
    ans =
      <int32>  - size: [2 2 2]
    (:,:,1) =

    Columns 1 to 2
      5   2
      8   9
    (:,:,2) =

    Columns 1 to 2
      6   2
     11   9