Next: , Previous: Trigonometry, Up: Arithmetic


17.4 Sums and Products

— Built-in Function: sum (x)
— Built-in Function: sum (x, dim)
— Built-in Function: sum (..., 'native')
— Built-in Function: sum (..., 'double')
— Built-in Function: sum (..., 'extra')

Sum of elements along dimension dim. If dim is omitted, it defaults to the first non-singleton dimension.

If the optional argument 'native' is given, then the sum is performed in the same type as the original argument, rather than in the default double type. For example:

          sum ([true, true])
            ⇒ 2
          sum ([true, true], 'native')
            ⇒ true

On the contrary, if 'double' is given, the sum is performed in double precision even for single precision inputs.

For double precision inputs, 'extra' indicates that a more accurate algorithm than straightforward summation is to be used. For single precision inputs, 'extra' is the same as 'double'. Otherwise, 'extra' has no effect.

See also: cumsum, sumsq, prod.

— Built-in Function: prod (x)
— Built-in Function: prod (x, dim)

Product of elements along dimension dim. If dim is omitted, it defaults to the first non-singleton dimension.

See also: cumprod, sum.

— Built-in Function: cumsum (x)
— Built-in Function: cumsum (x, dim)
— Built-in Function: cumsum (..., 'native')
— Built-in Function: cumsum (..., 'double')
— Built-in Function: cumsum (..., 'extra')

Cumulative sum of elements along dimension dim. If dim is omitted, it defaults to the first non-singleton dimension.

See sum for an explanation of the optional parameters 'native', 'double', and 'extra'.

See also: sum, cumprod.

— Built-in Function: cumprod (x)
— Built-in Function: cumprod (x, dim)

Cumulative product of elements along dimension dim. If dim is omitted, it defaults to the first non-singleton dimension.

See also: prod, cumsum.

— Built-in Function: sumsq (x)
— Built-in Function: sumsq (x, dim)

Sum of squares of elements along dimension dim. If dim is omitted, it defaults to the first non-singleton dimension.

This function is conceptually equivalent to computing

          sum (x .* conj (x), dim)

but it uses less memory and avoids calling conj if x is real.

See also: sum.